From af0637377ec72d8029c14c04ff9bfb9e05c7f7f7 Mon Sep 17 00:00:00 2001 From: "Frank.R.Wu" Date: Sun, 31 Oct 2021 23:07:15 +0800 Subject: [PATCH] feat: update event mechanism add event type local and global, clients have to use contractID and topic to subscribe local event; allow clients to subscribe topics (will not be recorded) --- input/JavaScriptLexer.g4 | 11 ++++++++--- input/YJSParser.g4 | 8 ++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/input/JavaScriptLexer.g4 b/input/JavaScriptLexer.g4 index ad92354..c7d17c3 100644 --- a/input/JavaScriptLexer.g4 +++ b/input/JavaScriptLexer.g4 @@ -138,15 +138,20 @@ Throw: 'throw'; Delete: 'delete'; In: 'in'; Try: 'try'; -Event: 'event'; -AtToken: '@'; +Event: 'event'; +AtToken: '@'; /// Event Semantics -AtLeastOnce: 'AT_LEAST_ONCE'; +AtLeastOnce: 'AT_LEAST_ONCE'; AtMostOnce: 'AT_MOST_ONCE'; OnlyOnce: 'ONLY_ONCE'; +// Event Global or Local + +Global: 'global'; +Local: 'local'; + /// Future Reserved Words Class: 'class'; diff --git a/input/YJSParser.g4 b/input/YJSParser.g4 index 03f29f1..e8e01a5 100644 --- a/input/YJSParser.g4 +++ b/input/YJSParser.g4 @@ -69,9 +69,13 @@ eventSemantics |OnlyOnce ; eventDeclaration - :Event eventSemantics? Identifier SemiColon -// |Event eventSemantics? Identifier '(' annotationArgs? ')' SemiColon + :Event eventGlobalOrLocal? Identifier SemiColon + |Event eventGlobalOrLocal? Identifier '(' eventSemantics? ')' SemiColon ; +eventGlobalOrLocal + :Global + |Local + ; sourceElement : statement ;