Fixed: AS3 direct editation/highlighter §§pop in class traits

Fixed: AS direct editation/highlighter §§pop can have getmember or call
This commit is contained in:
Jindra Petřík
2025-07-24 21:40:54 +02:00
parent 7559970c17
commit 1a4cc6614c
5 changed files with 10 additions and 2 deletions

View File

@@ -691,7 +691,7 @@ public class ActionScript3Parser {
//s = lex();
ParsedSymbol s = lex();
while (s.isType(SymbolType.NATIVE, SymbolType.STATIC, SymbolType.PUBLIC, SymbolType.PRIVATE, SymbolType.PROTECTED, SymbolType.OVERRIDE, SymbolType.FINAL, SymbolType.DYNAMIC, SymbolGroup.IDENTIFIER, SymbolType.INTERNAL, SymbolType.PREPROCESSOR)) {
loops: while (s.isType(SymbolType.NATIVE, SymbolType.STATIC, SymbolType.PUBLIC, SymbolType.PRIVATE, SymbolType.PROTECTED, SymbolType.OVERRIDE, SymbolType.FINAL, SymbolType.DYNAMIC, SymbolGroup.IDENTIFIER, SymbolType.INTERNAL, SymbolType.PREPROCESSOR)) {
if (s.type == SymbolType.FINAL) {
if (isFinal) {
throw new AVM2ParseException("Only one final keyword allowed", lexer.yyline());
@@ -780,6 +780,7 @@ public class ActionScript3Parser {
} else {
lexer.pushback(s);
break loops;
}
break;
}
@@ -2448,6 +2449,7 @@ public class ActionScript3Parser {
break;
case "pop":
ret = new PopItem(DIALECT, null, null);
allowMemberOrCall = true;
break;
case "goto": //TODO
case "multiname":

View File

@@ -626,7 +626,7 @@ public class ActionScript3SimpleParser implements SimpleParser {
parseMetadata(errors);
ParsedSymbol s = lex();
while (s.isType(SymbolType.NATIVE, SymbolType.STATIC, SymbolType.PUBLIC, SymbolType.PRIVATE, SymbolType.PROTECTED, SymbolType.OVERRIDE, SymbolType.FINAL, SymbolType.DYNAMIC, SymbolGroup.IDENTIFIER, SymbolType.INTERNAL, SymbolType.PREPROCESSOR)) {
loops: while (s.isType(SymbolType.NATIVE, SymbolType.STATIC, SymbolType.PUBLIC, SymbolType.PRIVATE, SymbolType.PROTECTED, SymbolType.OVERRIDE, SymbolType.FINAL, SymbolType.DYNAMIC, SymbolGroup.IDENTIFIER, SymbolType.INTERNAL, SymbolType.PREPROCESSOR)) {
if (s.type == SymbolType.FINAL) {
if (isFinal) {
errors.add(new SimpleParseException("Only one final keyword allowed", lexer.yyline(), s.position));
@@ -712,6 +712,7 @@ public class ActionScript3SimpleParser implements SimpleParser {
} else {
lexer.pushback(s);
break loops;
}
break;
}
@@ -1882,6 +1883,7 @@ public class ActionScript3SimpleParser implements SimpleParser {
break;
case "pop":
ret = true;
allowMemberOrCall = true;
break;
case "goto":
expectedType(errors, SymbolGroup.IDENTIFIER);

View File

@@ -1809,6 +1809,7 @@ public class ActionScript2Parser {
break;
case "pop":
ret = new PopItem(DIALECT, null, null);
allowMemberOrCall = true;
break;
case "strict":
s = lexer.lex();

View File

@@ -1340,6 +1340,7 @@ public class ActionScript2SimpleParser implements SimpleParser {
break;
case "pop":
ret = true;
allowMemberOrCall = true;
break;
case "strict":
s = lexer.lex();