diff options
| author | Patrick Schönberger | 2021-08-04 17:46:48 +0200 |
|---|---|---|
| committer | Patrick Schönberger | 2021-08-04 17:46:48 +0200 |
| commit | c2ba7425955ae538e220cec79d9124756d1b4c8b (patch) | |
| tree | 95ae57095eaf15a8914edf0eda6a7d842ec2f10d /Toc.g4 | |
| parent | 7f83e1b208e87e3808b268303bb633a8fda203f5 (diff) | |
| download | toc-c2ba7425955ae538e220cec79d9124756d1b4c8b.tar.gz toc-c2ba7425955ae538e220cec79d9124756d1b4c8b.zip | |
function resolution, pre generics
Diffstat (limited to 'Toc.g4')
| -rw-r--r-- | Toc.g4 | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -20,7 +20,7 @@ typeModifier: '*' | ('[' (INT_LIT)? ']'); namespaceSpecifier: typeName '::';
funcDecl: 'func' func;
-func: funcName genericDecl? '(' parameter ')' (':' type) body;
+func: funcName genericDecl? '(' parameter ')' (':' type) (body | ';');
parameter: (var (',' var)*)?;
body: '{' stmt* '}';
@@ -72,7 +72,7 @@ expr: namespaceSpecifier* funcName '(' (expr (',' expr)*)? ')' #funcExpr | namespaceSpecifier* varName #identifierExpr
;
-literal: INT_LIT | DECIMAL_LIT | STRING_LIT | BOOL_LIT;
+literal: INT_LIT | DECIMAL_LIT | StringLit | BOOL_LIT;
funcName: NAME;
varName: NAME;
@@ -92,8 +92,15 @@ binary_op: INT_LIT: ('+' | '-')? [0-9]+;
DECIMAL_LIT: ('+' | '-')* [0-9]+ '.' [0-9]+;
-STRING_LIT: '"' [^"]* '"';
BOOL_LIT: 'true' | 'false';
+StringLit: '"' CharSeq '"';
+
+fragment CharSeq: Char+;
+fragment Char: ~["\\\r\n]
+ | '\\' ['"?abfnrtv\\]
+ | '\\\n'
+ | '\\\r\n'
+ ;
NAME: ([a-z] | [A-Z] | [0-9])+;
WS: [ \t\r\n]+ -> skip;
|
