From 7b56e49af685471ce5cae6f3521536f8f7d39a16 Mon Sep 17 00:00:00 2001 From: Anmol Gautam Date: Thu, 11 Jul 2019 23:29:44 +0530 Subject: [PATCH] added comments --- examples/comment.truck | 7 +++++++ truck/lexer.py | 8 ++++++++ vim/syntax/truck.vim | 8 ++++++-- 3 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 examples/comment.truck diff --git a/examples/comment.truck b/examples/comment.truck new file mode 100644 index 0000000..a814cfe --- /dev/null +++ b/examples/comment.truck @@ -0,0 +1,7 @@ +/* this is a comment */ + +/* + * but comments cannot be nested + */ + +println(/* value 1 */ 10 + /* value 2 */ 20) diff --git a/truck/lexer.py b/truck/lexer.py index 8223c1d..c1bf86b 100644 --- a/truck/lexer.py +++ b/truck/lexer.py @@ -36,6 +36,14 @@ def next(self): current = self.source[self.index] + if current == '/' and self.source[self.index + 1] == '*': + self.index += 2 + while not (current == '*' and self.source[self.index + 1] == '/'): + self.index += 1 + current = self.source[self.index] + self.index += 2 + return self.next() + if current in self.symbols: self.value = current self.index += 1 diff --git a/vim/syntax/truck.vim b/vim/syntax/truck.vim index bbb9c90..d0358ed 100644 --- a/vim/syntax/truck.vim +++ b/vim/syntax/truck.vim @@ -33,9 +33,13 @@ syntax match truckOpreator "\v\*" syntax match truckOpreator "\v\/" highlight link truckOperator Operator -syntax match truckString "\v\".*\"" -syntax match truckString "\v\'.*\'" +syntax region truckString start=/\v"/ skip=/\v\\./ end=/\v"/ +syntax region truckString start=/\v'/ skip=/\v\\./ end=/\v'/ highlight link truckString String syntax match truckNumber "\v\d+" highlight link truckNumber Number + +syntax region truckComment start=/\v\/\*/ end=/\v\*\// +highlight link truckComment Comment +