From 3fe23df959c4345fdacae3973b21b82aa7ecbec1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesper=20=C3=96qvist?= <jesper.oqvist@cs.lth.se> Date: Thu, 4 Feb 2021 17:21:58 +0100 Subject: [PATCH] [parsing] Allow default keyword as modifier fixes #320 --- src/javacc/jrag/ClassBodyDeclUnparser.java | 6 ---- src/javacc/jrag/Jrag.jjt | 42 ++++++++++------------ src/javacc/jrag/SignatureUnparser.java | 6 ---- src/javacc/jrag/Unparser.java | 8 ----- 4 files changed, 18 insertions(+), 44 deletions(-) diff --git a/src/javacc/jrag/ClassBodyDeclUnparser.java b/src/javacc/jrag/ClassBodyDeclUnparser.java index e5613c03..1488b95d 100644 --- a/src/javacc/jrag/ClassBodyDeclUnparser.java +++ b/src/javacc/jrag/ClassBodyDeclUnparser.java @@ -154,12 +154,6 @@ public class ClassBodyDeclUnparser implements JragParserVisitor { public Object visit(ASTAspectInterfaceInhAttributeDeclaration self, Object data) { return unparseSimple(self, (StringBuffer) data); } - public Object visit(ASTAspectInterfaceMethodDeclarationLookahead self, Object data) { - return unparseSimple(self, (StringBuffer) data); - } - public Object visit(ASTAspectInterfaceMethodDeclaration self, Object data) { - return unparseSimple(self, (StringBuffer) data); - } public Object visit(ASTAspectInterfaceFieldDeclaration self, Object data) { return unparseSimple(self, (StringBuffer) data); } diff --git a/src/javacc/jrag/Jrag.jjt b/src/javacc/jrag/Jrag.jjt index 1c949828..294ea317 100644 --- a/src/javacc/jrag/Jrag.jjt +++ b/src/javacc/jrag/Jrag.jjt @@ -552,6 +552,12 @@ String Modifiers() : if (buf.length() > 0) buf.append(" "); buf.append(token.image); } + | + "default" + { + if (buf.length() > 0) buf.append(" "); + buf.append(token.image); + } | annotation = Annotation() { @@ -746,7 +752,9 @@ void AspectInterfaceDeclaration() : } void AspectInterfaceMemberDeclaration() : -{} +{ + String modifiers; +} { LOOKAHEAD( Modifiers() "class" ) AspectNestedClassDeclaration() @@ -760,10 +768,15 @@ void AspectInterfaceMemberDeclaration() : LOOKAHEAD("inh") AspectInterfaceInhAttributeDeclaration() | - LOOKAHEAD( AspectInterfaceMethodDeclarationLookahead() ) - AspectInterfaceMethodDeclaration() -| - AspectInterfaceFieldDeclaration() + modifiers = Modifiers() + ( + LOOKAHEAD( AspectType() JavaIdentifier() ( "[" "]" )* ( "," | "=" | ";" ) ) + FieldDeclaration(modifiers) + { root.addClassBodyDecl(jjtThis, className, fileName, enclosingAspect); } + | + MethodDeclaration(modifiers) + { root.addClassBodyDecl(jjtThis, className, fileName, enclosingAspect); } + ) } void AspectInterfaceSynAttributeDeclaration() : @@ -860,25 +873,6 @@ void AspectInterfaceInhAttributeDeclaration() : } } -void AspectInterfaceMethodDeclarationLookahead() : -{} -{ - ( "public" | "protected" | "private" | "static" | "abstract" | "final" | "native" | "synchronized" )* - AspectResultType() JavaIdentifier() "(" -} - -void AspectInterfaceMethodDeclaration() : -{ - Token t; -} -{ - ( "public" | "protected" | "private" | "static" | "abstract" | "final" | "native" | "synchronized" )* - AspectResultType() MethodDeclarator() [ "throws" NameList() ] - ";" { - root.addClassBodyDecl(jjtThis, className, fileName, enclosingAspect); - } -} - void AspectInterfaceFieldDeclaration() : { Token t; diff --git a/src/javacc/jrag/SignatureUnparser.java b/src/javacc/jrag/SignatureUnparser.java index 751caa7a..7e794a45 100644 --- a/src/javacc/jrag/SignatureUnparser.java +++ b/src/javacc/jrag/SignatureUnparser.java @@ -53,12 +53,6 @@ public class SignatureUnparser implements JragParserVisitor { public Object visit(ASTAspectInterfaceInhAttributeDeclaration node, Object data) { return ""; } - public Object visit(ASTAspectInterfaceMethodDeclarationLookahead node, Object data) { - return ""; - } - public Object visit(ASTAspectInterfaceMethodDeclaration node, Object data) { - return ""; - } public Object visit(ASTAspectInterfaceFieldDeclaration node, Object data) { return ""; } diff --git a/src/javacc/jrag/Unparser.java b/src/javacc/jrag/Unparser.java index fa1bca6f..93044e1c 100644 --- a/src/javacc/jrag/Unparser.java +++ b/src/javacc/jrag/Unparser.java @@ -194,14 +194,6 @@ public class Unparser implements JragParserVisitor { Unparser.unparseSimple(this, self, (StringBuffer) data); return null; } - public Object visit(ASTAspectInterfaceMethodDeclarationLookahead self, Object data) { - Unparser.unparseSimple(this, self, (StringBuffer) data); - return null; - } - public Object visit(ASTAspectInterfaceMethodDeclaration self, Object data) { - Unparser.unparseSimple(this, self, (StringBuffer) data); - return null; - } public Object visit(ASTAspectInterfaceFieldDeclaration self, Object data) { Unparser.unparseSimple(this, self, (StringBuffer) data); return null; -- GitLab