Highlighter - AS3 arguments variable, fixed dotted identifiers

This commit is contained in:
Jindra Petřík
2025-05-31 10:23:44 +02:00
parent df9791ebda
commit 458214106b
3 changed files with 11 additions and 8 deletions

View File

@@ -461,10 +461,11 @@ public class ActionScript3SimpleParser implements SimpleParser {
if (hasRest) {
subvariables.add(new Variable(true, paramNames.get(paramNames.size() - 1), paramPositions.get(paramNames.size() - 1)));
}
subvariables.add(new Variable(true, "arguments", -1)); //??? FIXME
Reference<Boolean> needsActivation2 = new Reference<>(false);
if (!isInterface && !isNative) {
expectedType(errors, SymbolType.CURLY_OPEN);
s = lex();
expected(errors, s, lexer.yyline(), SymbolType.CURLY_OPEN);
subvariables.add(new Variable(true, "arguments", -s.position - 1));
commands(errors, thisType, needsActivation2, importedClasses, openedNamespaces, new Stack<>(), new HashMap<>(), new HashMap<>(), true, isMethod, isStatic, 0, subvariables, abc);
expectedType(errors, SymbolType.CURLY_CLOSE);
} else {

View File

@@ -83,7 +83,7 @@ public interface SimpleParser {
positionToStatic.put(v.position, v.isStatic != null ? v.isStatic : isStatic);
} else {
if (!privateVarFullNameToDefinitionPosition.containsKey(v.name)
&& !privateVarNameToDefinitionPosition.containsKey(v.getFirstName())) {
&& !privateVarNameToDefinitionPosition.containsKey(v.name)) {
parentVarFullNameToDefinitionPosition.put(v.name, -v.position - 1);
parentVarNameToDefinitionPosition.put(v.getLastName(), -v.position - 1);
privateVarFullNameToDefinitionPosition.put(v.name, -v.position - 1);
@@ -100,7 +100,7 @@ public interface SimpleParser {
if (privateVarFullNameToDefinitionPosition.containsKey(v.name)) {
definitionPos = privateVarFullNameToDefinitionPosition.get(v.name);
} else {
definitionPos = privateVarNameToDefinitionPosition.get(v.getFirstName());
definitionPos = privateVarNameToDefinitionPosition.get(v.name);
}
boolean staticDefinition = definitionPos >= 0 ? positionToStatic.get(definitionPos) : true;
if (!(!staticDefinition && isStatic)) {
@@ -137,7 +137,7 @@ public interface SimpleParser {
positionToStatic.put(v.position, v.isStatic != null ? v.isStatic : isStatic);
} else {
if (!privateVarFullNameToDefinitionPosition.containsKey(v.name)
&& !privateVarNameToDefinitionPosition.containsKey(v.getFirstName())) {
&& !privateVarNameToDefinitionPosition.containsKey(v.name)) {
parentVarFullNameToDefinitionPosition.put(v.name, -v.position - 1);
parentVarNameToDefinitionPosition.put(v.getFirstName(), -v.position - 1);
privateVarFullNameToDefinitionPosition.put(v.name, -v.position - 1);
@@ -154,7 +154,7 @@ public interface SimpleParser {
if (privateVarFullNameToDefinitionPosition.containsKey(v.name)) {
definitionPos = privateVarFullNameToDefinitionPosition.get(v.name);
} else {
definitionPos = privateVarNameToDefinitionPosition.get(v.getFirstName());
definitionPos = privateVarNameToDefinitionPosition.get(v.name);
}
boolean staticDefinition = definitionPos >= 0 ? positionToStatic.get(definitionPos) : true;
if (!(!staticDefinition && isStatic)) {