]> gitweb.ps.run Git - toc/blobdiff - Toc.g4
generic grammar
[toc] / Toc.g4
diff --git a/Toc.g4 b/Toc.g4
index afe42094ffbae241b64550f1b37615e0d014b2d5..0c8b50174bc1b8096495396fe9be7e55e8746d30 100644 (file)
--- a/Toc.g4
+++ b/Toc.g4
@@ -16,17 +16,18 @@ typeModifier: '*' | ('[' (INT_LIT)? ']');
 \r
 \r
 funcDecl: 'func' func;\r
-func: funcName '(' parameter ')' (':' type) body;\r
+func: funcName genericDecl? '(' parameter ')' (':' type) body;\r
 parameter: (var (',' var)*)?;\r
 \r
 body: '{' stmt* '}';\r
 \r
 \r
-structDecl: 'struct' structName '{' structMember* '}';\r
+structDecl: 'struct' structName genericDecl? '{' structMember* '}';\r
 structMember: structVar | structMethod;\r
 structVar: var ';';\r
 structMethod: func;\r
 \r
+genericDecl: '<' typeName (',' typeName)* '>';\r
 \r
 stmt: varDecl ';'\r
     | ifStmt\r