abouttreesummaryrefslogcommitdiff
path: root/Toc.g4
diff options
context:
space:
mode:
authorPatrick Schönberger2021-08-03 12:08:12 +0200
committerPatrick Schönberger2021-08-03 12:08:12 +0200
commit71a20a4f3d4e5f5278f7d004af710af89dfd7ebc (patch)
tree4227c1cc0c0310a4b73f3b30b5ac1ee7c90b274e /Toc.g4
parent17fac686375c2823d22415e32e5b7e63bbfe7c54 (diff)
downloadtoc-71a20a4f3d4e5f5278f7d004af710af89dfd7ebc.tar.gz
toc-71a20a4f3d4e5f5278f7d004af710af89dfd7ebc.zip
add namespace, private struct member grammar, change bracket style
Diffstat (limited to 'Toc.g4')
-rw-r--r--Toc.g46
1 files changed, 5 insertions, 1 deletions
diff --git a/Toc.g4 b/Toc.g4
index 0c8b501..0f2f613 100644
--- a/Toc.g4
+++ b/Toc.g4
@@ -5,8 +5,11 @@ prog: (decl)+ EOF;
decl: varDecl ';'
| funcDecl
| structDecl
+ | namespaceDecl
;
+namespaceDecl: 'namespace' typeName '{' decl* '}';
+
varDecl: 'var' var;
var: varName (':' type) ('=' expr)?;
varInit: varName (':' type) ('=' expr);
@@ -23,9 +26,10 @@ body: '{' stmt* '}';
structDecl: 'struct' structName genericDecl? '{' structMember* '}';
-structMember: structVar | structMethod;
+structMember: privateDecl? structVar | structMethod;
structVar: var ';';
structMethod: func;
+privateDecl: 'private';
genericDecl: '<' typeName (',' typeName)* '>';