diff --git a/src/main/grammar/Aspect.bnf b/src/main/grammar/Aspect.bnf index 1bd54a8a035025a82dcca39fbdb23ac6e17bfe29..2f032fec7d8b043f663ad814d794786c3acef3f2 100644 --- a/src/main/grammar/Aspect.bnf +++ b/src/main/grammar/Aspect.bnf @@ -197,7 +197,7 @@ method_declarator ::= java_identifier formal_parameters (LBRACKET RBRACKET)* formal_parameters ::= LPAREN ( formal_parameter ( COMMA formal_parameter )* )? RPAREN -formal_parameter ::= FINAL? type DOTS? variable_declarator_id +formal_parameter ::= FINAL? type ELLIPSIS? variable_declarator_id constructor_declaration ::= type_parameters? java_identifier formal_parameters (THROWS name_list)? LBRACE explicit_constructor_invocation? block_statement* RBRACE @@ -361,7 +361,7 @@ throw_statement ::= THROW expression SEMICOLON synchronized_statement ::= SYNCHRONIZED LPAREN expression RPAREN block -try_statement ::= TRY ( LPAREN local_variable_declaration ( SEMICOLON local_variable_declaration )* SEMICOLON? RPAREN )? block ( CATCH LPAREN FINAL? type ( BIT_OR FINAL type )* variable_declarator_id RPAREN block )* ( FINALLY block )? +try_statement ::= TRY ( LPAREN local_variable_declaration ( SEMICOLON local_variable_declaration )* SEMICOLON? RPAREN )? block ( CATCH LPAREN FINAL? type ( BIT_OR FINAL? type )* variable_declarator_id RPAREN block )* ( FINALLY block )? // TODO maybe change order! annotation ::= ( normal_annotation | single_member_annotation | marker_annotation ) @@ -409,4 +409,4 @@ parameter_name ::= IDENTIFIER method_name ::= IDENTIFIER // unused keywords must still appear somewhere -unused_keywords ::= GOTO | CONST ELLIPSIS | PACKAGE +unused_keywords ::= GOTO | CONST | PACKAGE diff --git a/src/main/grammar/Grammar.flex b/src/main/grammar/Grammar.flex index 43ff67a073b74d98a95e1c5b589851d320f1e483..cd7b52116e902a37816c8025be782de2aacdbb44 100644 --- a/src/main/grammar/Grammar.flex +++ b/src/main/grammar/Grammar.flex @@ -18,7 +18,7 @@ import com.intellij.psi.TokenType; WhiteSpace = [ ] | \t | \f | \n | \r | \r\n -ID = [a-zA-Z$_][a-zA-Z0-9$_]* +ID = [:jletter:] [:jletterdigit:]* MultiLineComment = [/][*][^*]+[*]+([^*/][^*]*[*]+)*[/] DocComment = [/][*][*][^*]*[*]+([^*/][^*]*[*]+)*[/] SingleLineComment = [/][/] [^\n\r]* (\n | \r | \r\n) diff --git a/src/main/java/org/jastadd/tooling/aspect/AspectSyntaxHighlighter.java b/src/main/java/org/jastadd/tooling/aspect/AspectSyntaxHighlighter.java index 1c91d8e82aa7345cbd9be27b016d4abe2323e331..9dea0a1f55c52e23d822242fc5b3a52793ab6034 100644 --- a/src/main/java/org/jastadd/tooling/aspect/AspectSyntaxHighlighter.java +++ b/src/main/java/org/jastadd/tooling/aspect/AspectSyntaxHighlighter.java @@ -51,7 +51,7 @@ public class AspectSyntaxHighlighter extends SyntaxHighlighterBase { AspectTypes.NE, AspectTypes.ORASSIGN, AspectTypes.XOR, AspectTypes.XORASSIGN, AspectTypes.STAR, AspectTypes.STARASSIGN, AspectTypes.REM, AspectTypes.REMASSIGN, AspectTypes.SC_AND, AspectTypes.SC_OR, AspectTypes.AMPERSAND, AspectTypes.RSIGNEDSHIFTASSIGN, AspectTypes.RUNSIGNEDSHIFTASSIGN, AspectTypes.TILDE, - AspectTypes.BANG, AspectTypes.ARROW, AspectTypes.DOTS); + AspectTypes.BANG, AspectTypes.ARROW, AspectTypes.ELLIPSIS); public static final TextAttributesKey OPERATOR = createTextAttributesKey("JASTADD_OPERATOR", DefaultLanguageHighlighterColors.OPERATION_SIGN); private static final TextAttributesKey[] OPERATOR_KEYS = new TextAttributesKey[]{OPERATOR};