Skip to content

Commit

Permalink
Add support for crystal language
Browse files Browse the repository at this point in the history
Heavily based on the Ruby lexer.
  • Loading branch information
Peter Leitzen committed Jun 7, 2018
1 parent a58789a commit fdb1798
Show file tree
Hide file tree
Showing 4 changed files with 541 additions and 0 deletions.
45 changes: 45 additions & 0 deletions lib/rouge/demos/crystal
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
lib LibC
WNOHANG = 0x00000001

@[ReturnsTwice]
fun fork : PidT
fun getpgid(pid : PidT) : PidT
fun kill(pid : PidT, signal : Int) : Int
fun getpid : PidT
fun getppid : PidT
fun exit(status : Int) : NoReturn

ifdef x86_64
alias ClockT = UInt64
else
alias ClockT = UInt32
end

SC_CLK_TCK = 3

struct Tms
utime : ClockT
stime : ClockT
cutime : ClockT
cstime : ClockT
end

fun times(buffer : Tms*) : ClockT
fun sysconf(name : Int) : Long
end

class Process
def self.exit(status = 0)
LibC.exit(status)
end

def self.pid
LibC.getpid
end

def self.getpgid(pid : Int32)
ret = LibC.getpgid(pid)
raise Errno.new(ret) if ret < 0
ret
end
end
Loading

0 comments on commit fdb1798

Please sign in to comment.