Fixed: AS3 direct editation - Allow some special words (like override) as identifiers

This commit is contained in:
Jindra Petřík
2025-07-20 20:19:40 +02:00
parent 5eec9d4c98
commit a422b33f17
3 changed files with 19 additions and 10 deletions

View File

@@ -2713,18 +2713,22 @@ public class ActionScript3Parser {
ret = name(allOpenedNamespaces, thisType, pkg, needsActivation, false, openedNamespaces, registerVars, inFunction, inMethod, variables, importedClasses, abc);
allowMemberOrCall = true;
//var = memberOrCall(allOpenedNamespaces, thisType, pkg, needsActivation, importedClasses, openedNamespaces, var, registerVars, inFunction, inMethod, variables);
//ret = var;
break;
default:
GraphTargetItem excmd = expressionCommands(s, registerVars, inFunction, inMethod, -1, variables);
if (excmd != null) {
//?
ret = excmd;
allowMemberOrCall = true; //?
break;
if (s.isType(SymbolGroup.IDENTIFIER)) {
lexer.pushback(s);
ret = name(allOpenedNamespaces, thisType, pkg, needsActivation, false, openedNamespaces, registerVars, inFunction, inMethod, variables, importedClasses, abc);
allowMemberOrCall = true;
} else {
GraphTargetItem excmd = expressionCommands(s, registerVars, inFunction, inMethod, -1, variables);
if (excmd != null) {
//?
ret = excmd;
allowMemberOrCall = true; //?
break;
}
lexer.pushback(s);
}
lexer.pushback(s);
}
if (allowMemberOrCall && ret != null) {
ret = memberOrCall(allOpenedNamespaces, thisType, pkg, needsActivation, importedClasses, openedNamespaces, ret, registerVars, inFunction, inMethod, variables, abc);

View File

@@ -47,7 +47,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Stack;
/**
@@ -2123,6 +2122,11 @@ public class ActionScript3SimpleParser implements SimpleParser {
break;
default:
lexer.pushback(s);
if (s.isType(SymbolGroup.IDENTIFIER)) {
lastVarName = name(errors, thisType, needsActivation, openedNamespaces, registerVars, inFunction, inMethod, isStatic, variables, importedClasses, abc);
ret = true;
allowMemberOrCall = true;
}
}
if (allowMemberOrCall && ret) {
memberOrCall(lastVarName, errors, thisType, needsActivation, importedClasses, openedNamespaces, ret, registerVars, inFunction, inMethod, isStatic, variables, abc);