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.
Add "guessing" specs for crystal lang
  • Loading branch information
Peter Leitzen committed Jun 7, 2018
1 parent a58789a commit 3fe00d1
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 3fe00d1

Please sign in to comment.