From 17fac686375c2823d22415e32e5b7e63bbfe7c54 Mon Sep 17 00:00:00 2001 From: Patrick Schönberger Date: Mon, 2 Aug 2021 16:19:30 +0200 Subject: generic grammar --- Toc.g4 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Toc.g4') 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 -- cgit v1.2.3