From faf36d22336319772aaa8af3b4be59295f3ee88c Mon Sep 17 00:00:00 2001 From: idrissrio <riouakidriss@hotmail.it> Date: Thu, 23 Apr 2020 09:48:26 +0200 Subject: [PATCH] [parser] Improve handling of multiple interfaces in implements statement fixes #324 --- ChangeLog | 5 +++++ src/javacc/jrag/Jrag.jjt | 13 ++++--------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 65db7c22..65bc1be5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -11,6 +11,11 @@ * Fixed aspect parsing issue for Java 8 array constructor references. See https://bitbucket.org/jastadd/jastadd2/issues/323/parsing-of-array-constructor-references +2020-05-08 Idriss Riouak <idriss.riouak@cs.lth.se> + + * Improve parsing of multiple interfaces in implements statement. + See https://bitbucket.org/jastadd/jastadd2/issues/324/parsing-after-implements + 2019-11-29 Jesper Öqvist <jesper.oqvist@cs.lth.se> * Deprecated some old options: lazyMaps, private, traceVisitCheck, diff --git a/src/javacc/jrag/Jrag.jjt b/src/javacc/jrag/Jrag.jjt index aafdc642..c349e8a1 100644 --- a/src/javacc/jrag/Jrag.jjt +++ b/src/javacc/jrag/Jrag.jjt @@ -1434,20 +1434,15 @@ void CollectionContribution(): void AspectAddInterface() : { - Token first, last; Token targetName; - SimpleNode nameList; + SimpleNode name; } { - targetName = <IDENTIFIER> { first = token; } + targetName = <IDENTIFIER> "implements" - nameList = TypeNameList() + name = ClassOrInterfaceType(){ root.addInterface(name, targetName.image, fileName); } + ( "," name = ClassOrInterfaceType() { root.addInterface(name, targetName.image, fileName); } )* ";" - { - last = token; - root.addInterface(nameList, targetName.image, fileName); - } - } void AspectExtendInterface() : -- GitLab