diff options
| author | Patrick Schönberger | 2021-08-02 16:19:30 +0200 |
|---|---|---|
| committer | Patrick Schönberger | 2021-08-02 16:19:30 +0200 |
| commit | 17fac686375c2823d22415e32e5b7e63bbfe7c54 (patch) | |
| tree | aa19aee9660d1d188a6f166c0010b017b68e752c /Toc.g4 | |
| parent | c70926cf67a044a662b2587edb585c2c45c52902 (diff) | |
| download | toc-17fac686375c2823d22415e32e5b7e63bbfe7c54.tar.gz toc-17fac686375c2823d22415e32e5b7e63bbfe7c54.zip | |
generic grammar
Diffstat (limited to 'Toc.g4')
| -rw-r--r-- | Toc.g4 | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -16,17 +16,18 @@ typeModifier: '*' | ('[' (INT_LIT)? ']'); funcDecl: 'func' func;
-func: funcName '(' parameter ')' (':' type) body;
+func: funcName genericDecl? '(' parameter ')' (':' type) body;
parameter: (var (',' var)*)?;
body: '{' stmt* '}';
-structDecl: 'struct' structName '{' structMember* '}';
+structDecl: 'struct' structName genericDecl? '{' structMember* '}';
structMember: structVar | structMethod;
structVar: var ';';
structMethod: func;
+genericDecl: '<' typeName (',' typeName)* '>';
stmt: varDecl ';'
| ifStmt
|
