abouttreesummaryrefslogcommitdiff
path: root/Toc.g4
diff options
context:
space:
mode:
Diffstat (limited to 'Toc.g4')
-rw-r--r--Toc.g45
1 files changed, 3 insertions, 2 deletions
diff --git a/Toc.g4 b/Toc.g4
index afe4209..0c8b501 100644
--- a/Toc.g4
+++ b/Toc.g4
@@ -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