public virtual Token Peek() { while (token == null) { token = GetToken(); Filter(); } return token; }
protected virtual void Unread(Token token) { String text = token.Text; int length = text.Length; for (int i = length - 1; i >= 0; i--) { eof = false; input.Unread(text[i]); } pos = token.Pos - 1; line = token.Line - 1; }
private void CheckPropertyAccessibility(APropertyDecl property, bool needSetter, Token token) { ErrorCollection.Error subError = new ErrorCollection.Error(property.GetName(), Util.GetAncestor<AASourceFile>(property), LocRM.GetString("ErrorText62")); if (!needSetter && property.GetGetter() == null) errors.Add(new ErrorCollection.Error(token, Util.GetAncestor<AASourceFile>(token), LocRM.GetString("ErrorText75"), false, subError)); if (needSetter && property.GetSetter() == null) errors.Add(new ErrorCollection.Error(token, Util.GetAncestor<AASourceFile>(token), LocRM.GetString("ErrorText75"), false, subError)); }
public virtual Token Next() { while (token == null) { token = GetToken(); Filter(); } Token result = token; token = null; return result; }
public static void GetTargets(string name, Token node, Node reciever, //Either null, AAName, or PExp PType returnType, //Either null, or Some type the method return type must be assignable to List<PType> argTypes, List<AMethodDecl> candidates, out bool matchArrayResize, List<AMethodDecl> implicitCandidates, List<AMethodDecl> matchingNames, out PExp baseExp, List<AMethodDecl> matchingDelegates, SharedData data, ErrorCollection errors ) { baseExp = null; matchArrayResize = false; if (reciever == null) {//A simple invoke //Look in current struct //Look in all visible namespaces //Look in library methods AStructDecl currentStruct = Util.GetAncestor<AStructDecl>(node); if (currentStruct != null) { foreach (AMethodDecl methodDecl in data.StructMethods[currentStruct]) { if (methodDecl.GetName().Text == name && methodDecl.GetFormals().Count == argTypes.Count && methodDecl.GetDelegate() == null) { matchingNames.Add(methodDecl); //Visibility if (methodDecl.GetVisibilityModifier() is APrivateVisibilityModifier && Util.GetAncestor<AStructDecl>(methodDecl) != currentStruct) continue; if (methodDecl.GetVisibilityModifier() is AProtectedVisibilityModifier && !Util.Extends(Util.GetAncestor<AStructDecl>(methodDecl), currentStruct, data)) continue; if (methodDecl.GetStatic() == null && Util.IsStaticContext(node)) continue; //Check return type if (returnType != null && !(returnType is AVoidType) && !Assignable(methodDecl.GetReturnType(), returnType)) continue; //Check that parameters are assignable bool add = true; bool matchImplicit = false; for (int i = 0; i < argTypes.Count; i++) { PType argType = argTypes[i]; AALocalDecl formal = (AALocalDecl) methodDecl.GetFormals()[i]; PType formalType = formal.GetType(); if (formal.GetOut() != null && !Assignable(formalType, argType) || formal.GetRef() != null && !(Assignable(argType, formalType) && Assignable(formalType, argType)) || formal.GetOut() == null && formal.GetRef() == null && !Assignable(argType, formalType)) { add = false; if (formal.GetOut() == null && formal.GetRef() == null && ImplicitAssignable(argType, formalType)) { matchImplicit = true; } else { matchImplicit = false; break; } } } if (!add && !matchImplicit) continue; if (candidates.Count == 0) {//Set base exp if (methodDecl.GetStatic() != null) { //Calling static method baseExp = null; } else if (currentStruct.GetClassToken() != null || Util.HasAncestor<AConstructorDecl>(node) || Util.HasAncestor<ADeconstructorDecl>(node)) {//Dynamic context baseExp = new ALvalueExp(new APointerLvalue(new TStar("*"), new ALvalueExp(new AThisLvalue(new TThis("this"))))); } else {//Struct method to struct method baseExp = null; } } if (add) candidates.Add(methodDecl); if (matchImplicit) implicitCandidates.Add(methodDecl); } } } if (candidates.Count + implicitCandidates.Count == 0) { //Global methods List<IList> visibleDecls = Util.GetVisibleDecls(node, true); AASourceFile currentFile = Util.GetAncestor<AASourceFile>(node); List<string> currentNamespace = Util.GetFullNamespace(node); foreach (IList declList in visibleDecls) { bool isSameFile = false; bool isSameNamespace = false; if (declList.Count > 0) { isSameFile = currentFile == Util.GetAncestor<AASourceFile>((PDecl) declList[0]); isSameNamespace = Util.NamespacesEquals(currentNamespace, Util.GetFullNamespace((PDecl) declList[0])); } foreach (PDecl decl in declList) { if (decl is AMethodDecl) { AMethodDecl methodDecl = (AMethodDecl) decl; if (methodDecl.GetName().Text == name && methodDecl.GetFormals().Count == argTypes.Count && methodDecl.GetDelegate() == null) { matchingNames.Add(methodDecl); //Visibility if (methodDecl.GetVisibilityModifier() is APrivateVisibilityModifier && !isSameNamespace) continue; if (methodDecl.GetStatic() != null && !isSameFile) continue; //Check return type if (returnType != null && !(returnType is AVoidType) && !Assignable(methodDecl.GetReturnType(), returnType)) continue; //Check that parameters are assignable bool add = true; bool matchImplicit = false; for (int i = 0; i < argTypes.Count; i++) { PType argType = argTypes[i]; AALocalDecl formal = (AALocalDecl)methodDecl.GetFormals()[i]; PType formalType = formal.GetType(); if (formal.GetOut() != null && !Assignable(formalType, argType) || formal.GetRef() != null && !(Assignable(argType, formalType) && Assignable(formalType, argType)) || formal.GetOut() == null && formal.GetRef() == null && !Assignable(argType, formalType)) { add = false; if (formal.GetOut() == null && formal.GetRef() == null && ImplicitAssignable(argType, formalType)) { matchImplicit = true; } else { matchImplicit = false; break; } } } if (!add && !matchImplicit) continue; if (add) candidates.Add(methodDecl); if (matchImplicit) implicitCandidates.Add(methodDecl); } } } } //Library methods foreach (AMethodDecl methodDecl in data.Libraries.Methods) { if (methodDecl.GetName().Text == name && methodDecl.GetFormals().Count == argTypes.Count && methodDecl.GetDelegate() == null) { matchingNames.Add(methodDecl); //Visibility //Okay, the library doesn't have any private methods. But hey. if (methodDecl.GetVisibilityModifier() is APrivateVisibilityModifier && currentNamespace.Count > 0) continue; if (methodDecl.GetStatic() != null) continue; //Check return type if (returnType != null && !(returnType is AVoidType) && !Assignable(methodDecl.GetReturnType(), returnType)) continue; //Check that parameters are assignable bool add = true; bool matchImplicit = false; for (int i = 0; i < argTypes.Count; i++) { PType argType = argTypes[i]; AALocalDecl formal = (AALocalDecl)methodDecl.GetFormals()[i]; PType formalType = formal.GetType(); if (formal.GetOut() != null && !Assignable(formalType, argType) || formal.GetRef() != null && !(Assignable(argType, formalType) && Assignable(formalType, argType)) || formal.GetOut() == null && formal.GetRef() == null && !Assignable(argType, formalType)) { add = false; if (formal.GetOut() == null && formal.GetRef() == null && ImplicitAssignable(argType, formalType)) { matchImplicit = true; } else { matchImplicit = false; break; } } } if (!add && !matchImplicit) continue; if (add) candidates.Add(methodDecl); if (matchImplicit) implicitCandidates.Add(methodDecl); } } } } else if (reciever is AAName) {//Lookup possibilities for reciever List<List<Node>>[] targets; List<ANamespaceDecl> namespaces = new List<ANamespaceDecl>(); bool reportedError; TypeLinking.GetTargets((AAName)reciever, out targets, namespaces, data, errors, out reportedError); if (reportedError) throw new ParserException(node, "TypeChecking.GetTargets"); AStructDecl currentStruct = Util.GetAncestor<AStructDecl>(node); int iteration; for (iteration = 0; iteration < targets.Length; iteration++) { List<Node> matchingList = null; foreach (List<Node> list in targets[iteration]) { Node last = list[list.Count - 1]; PType type = null; if (last is AALocalDecl) { type = ((AALocalDecl) last).GetType(); } else if (last is APropertyDecl) { type = ((APropertyDecl) last).GetType(); } else if (last is AFieldDecl) { type = ((AFieldDecl) last).GetType(); } else if (last is TIdentifier) { type = new ANamedType(new TIdentifier("int"), null); } if (last is AStructDecl) { //Special. Static only AStructDecl structDecl = ((AStructDecl)last); foreach (AMethodDecl methodDecl in data.StructMethods[structDecl]) { if (methodDecl.GetName().Text == name && methodDecl.GetFormals().Count == argTypes.Count && methodDecl.GetDelegate() == null) { matchingNames.Add(methodDecl); //Visibility if (methodDecl.GetVisibilityModifier() is APrivateVisibilityModifier && Util.GetAncestor<AStructDecl>(methodDecl) != currentStruct) continue; if (methodDecl.GetVisibilityModifier() is AProtectedVisibilityModifier && !Util.Extends(Util.GetAncestor<AStructDecl>(methodDecl), currentStruct, data)) continue; if (methodDecl.GetStatic() == null) continue; //Check return type if (returnType != null && !(returnType is AVoidType) && !Assignable(methodDecl.GetReturnType(), returnType)) continue; //Check that parameters are assignable bool add = true; bool matchImplicit = false; for (int j = 0; j < argTypes.Count; j++) { PType argType = argTypes[j]; AALocalDecl formal = (AALocalDecl)methodDecl.GetFormals()[j]; PType formalType = formal.GetType(); if (formal.GetOut() != null && !Assignable(formalType, argType) || formal.GetRef() != null && !(Assignable(argType, formalType) && Assignable(formalType, argType)) || formal.GetOut() == null && formal.GetRef() == null && !Assignable(argType, formalType)) { add = false; if (formal.GetOut() == null && formal.GetRef() == null && ImplicitAssignable(argType, formalType)) { matchImplicit = true; } else { matchImplicit = false; break; } } } if (!add && !matchImplicit) continue; if (candidates.Count == 0) {//Set base exp //Calling static method baseExp = null; } if (add) candidates.Add(methodDecl); if (matchImplicit) implicitCandidates.Add(methodDecl); } } } else { //Find methods based on baseType if (type is ANamedType && data.StructTypeLinks.ContainsKey((ANamedType) type) && !(data.Enums.ContainsKey(data.StructTypeLinks[(ANamedType) type]))) { //Non static only AStructDecl structDecl = data.StructTypeLinks[(ANamedType) type]; foreach (AMethodDecl methodDecl in data.StructMethods[structDecl]) { if (methodDecl.GetName().Text == name && methodDecl.GetFormals().Count == argTypes.Count && methodDecl.GetDelegate() == null) { matchingNames.Add(methodDecl); //Visibility if (methodDecl.GetVisibilityModifier() is APrivateVisibilityModifier && Util.GetAncestor<AStructDecl>(methodDecl) != currentStruct) continue; if (methodDecl.GetVisibilityModifier() is AProtectedVisibilityModifier && !Util.Extends(Util.GetAncestor<AStructDecl>(methodDecl), currentStruct, data)) continue; if (methodDecl.GetStatic() != null) continue; //Check return type if (returnType != null && !(returnType is AVoidType) && !Assignable(methodDecl.GetReturnType(), returnType)) continue; //Check that parameters are assignable bool add = true; bool matchImplicit = false; for (int j = 0; j < argTypes.Count; j++) { PType argType = argTypes[j]; AALocalDecl formal = (AALocalDecl)methodDecl.GetFormals()[j]; PType formalType = formal.GetType(); if (formal.GetOut() != null && !Assignable(formalType, argType) || formal.GetRef() != null && !(Assignable(argType, formalType) && Assignable(formalType, argType)) || formal.GetOut() == null && formal.GetRef() == null && !Assignable(argType, formalType)) { add = false; if (formal.GetOut() == null && formal.GetRef() == null && ImplicitAssignable(argType, formalType)) { matchImplicit = true; } else { matchImplicit = false; break; } } } if (!add && !matchImplicit) continue; if (candidates.Count == 0 && implicitCandidates.Count == 0) {//Set base exp baseExp = new ALvalueExp(TypeLinking.Link((AAName) reciever, node, list, data)); } if (add) candidates.Add(methodDecl); if (matchImplicit) implicitCandidates.Add(methodDecl); } } } else if (type is ANamedType && data.DelegateTypeLinks.ContainsKey((ANamedType)type)) { if (matchingDelegates != null && name == "Invoke") { AMethodDecl delegateDecl = data.DelegateTypeLinks[(ANamedType) type]; if (delegateDecl.GetFormals().Count == argTypes.Count) { matchingNames.Add(delegateDecl); //Check return type if (returnType != null && !(returnType is AVoidType) && !Assignable(delegateDecl.GetReturnType(), returnType)) continue; //Check that parameters are assignable bool add = true; bool matchImplicit = false; for (int j = 0; j < argTypes.Count; j++) { PType argType = argTypes[j]; AALocalDecl formal = (AALocalDecl)delegateDecl.GetFormals()[j]; PType formalType = formal.GetType(); if (formal.GetOut() != null && !Assignable(formalType, argType) || formal.GetRef() != null && !(Assignable(argType, formalType) && Assignable(formalType, argType)) || formal.GetOut() == null && formal.GetRef() == null && !Assignable(argType, formalType)) { add = false; if (formal.GetOut() == null && formal.GetRef() == null && ImplicitAssignable(argType, formalType)) { matchImplicit = true; } else { matchImplicit = false; break; } } } if (!add && !matchImplicit) continue; matchingDelegates.Add(delegateDecl); if (candidates.Count == 0 && implicitCandidates.Count == 0) {//Set base exp baseExp = new ALvalueExp(TypeLinking.Link((AAName)reciever, node, list, data)); } if (add) candidates.Add(delegateDecl); if (matchImplicit) implicitCandidates.Add(delegateDecl); } } } else { //Look for enrichments List<IList> visibleDecls = Util.GetVisibleDecls(node, true); AEnrichmentDecl currentEnrichment = Util.GetAncestor<AEnrichmentDecl>(node); foreach (IList declList in visibleDecls) { foreach (PDecl decl in declList) { if (decl is AEnrichmentDecl) { AEnrichmentDecl enrichment = (AEnrichmentDecl) decl; if (!Util.TypesEqual(type, enrichment.GetType(), data)) continue; foreach (PDecl enrichmentDecl in enrichment.GetDecl()) { if (enrichmentDecl is AMethodDecl) { AMethodDecl methodDecl = (AMethodDecl) enrichmentDecl; if (methodDecl.GetName().Text == name && methodDecl.GetFormals().Count == argTypes.Count && methodDecl.GetDelegate() == null) { matchingNames.Add(methodDecl); //Visibility if (methodDecl.GetVisibilityModifier() is APrivateVisibilityModifier && enrichment != currentEnrichment) continue; if (methodDecl.GetStatic() != null) continue; //Check return type if (returnType != null && !(returnType is AVoidType) && !Assignable(methodDecl.GetReturnType(), returnType)) continue; //Check that parameters are assignable bool add = true; bool matchImplicit = false; for (int j = 0; j < argTypes.Count; j++) { PType argType = argTypes[j]; AALocalDecl formal = (AALocalDecl)methodDecl.GetFormals()[j]; PType formalType = formal.GetType(); if (formal.GetOut() != null && !Assignable(formalType, argType) || formal.GetRef() != null && !(Assignable(argType, formalType) && Assignable(formalType, argType)) || formal.GetOut() == null && formal.GetRef() == null && !Assignable(argType, formalType)) { add = false; if (formal.GetOut() == null && formal.GetRef() == null && ImplicitAssignable(argType, formalType)) { matchImplicit = true; } else { matchImplicit = false; break; } } } if (!add && !matchImplicit) continue; if (candidates.Count == 0 && implicitCandidates.Count == 0) {//Set base exp baseExp = new ALvalueExp(TypeLinking.Link((AAName)reciever, node, list, data)); } if (add) candidates.Add(methodDecl); if (matchImplicit) implicitCandidates.Add(methodDecl); } } } } } } } } } if (candidates.Count + implicitCandidates.Count > 0) break; } if (iteration >= 2) {//The search continued to global variables. Look in namespaces as well AASourceFile currentFile = Util.GetAncestor<AASourceFile>(node); List<string> currentNamespace = Util.GetFullNamespace(node); foreach (ANamespaceDecl namespaceDecl in namespaces) { bool isSameFile = Util.GetAncestor<AASourceFile>(namespaceDecl) == currentFile; bool isSameNamespace = Util.NamespacesEquals(currentNamespace, Util.GetFullNamespace(namespaceDecl)); foreach (PDecl decl in namespaceDecl.GetDecl()) { if (decl is AMethodDecl) { AMethodDecl methodDecl = (AMethodDecl) decl; if (methodDecl.GetName().Text == name && methodDecl.GetFormals().Count == argTypes.Count && methodDecl.GetDelegate() == null) { matchingNames.Add(methodDecl); //Visibility if (methodDecl.GetVisibilityModifier() is APrivateVisibilityModifier && !isSameNamespace) continue; if (methodDecl.GetStatic() != null && !isSameFile) continue; //Check return type if (returnType != null && !(returnType is AVoidType) && !Assignable(methodDecl.GetReturnType(), returnType)) continue; //Check that parameters are assignable bool add = true; bool matchImplicit = false; for (int i = 0; i < argTypes.Count; i++) { PType argType = argTypes[i]; AALocalDecl formal = (AALocalDecl)methodDecl.GetFormals()[i]; PType formalType = formal.GetType(); if (formal.GetOut() != null && !Assignable(formalType, argType) || formal.GetRef() != null && !(Assignable(argType, formalType) && Assignable(formalType, argType)) || formal.GetOut() == null && formal.GetRef() == null && !Assignable(argType, formalType)) { add = false; if (formal.GetOut() == null && formal.GetRef() == null && ImplicitAssignable(argType, formalType)) { matchImplicit = true; } else { matchImplicit = false; break; } } } if (!add && !matchImplicit) continue; if (add) candidates.Add(methodDecl); if (matchImplicit) implicitCandidates.Add(methodDecl); } } } } } } else {//Get base type from exp, and find matching enrichment/struct PType type = data.ExpTypes[(PExp) reciever]; if (type is ADynamicArrayType && name == "Resize" && argTypes.Count == 1 && Assignable(argTypes[0], new ANamedType(new TIdentifier("int"), null))) { matchArrayResize = true; baseExp = (PExp) reciever; } AStructDecl currentStruct = Util.GetAncestor<AStructDecl>(node); if (type is ANamedType && data.StructTypeLinks.ContainsKey((ANamedType)type)) { //Non static only AStructDecl structDecl = data.StructTypeLinks[(ANamedType)type]; foreach (AMethodDecl methodDecl in data.StructMethods[structDecl]) { if (methodDecl.GetName().Text == name && methodDecl.GetFormals().Count == argTypes.Count && methodDecl.GetDelegate() == null) { matchingNames.Add(methodDecl); //Visibility if (methodDecl.GetVisibilityModifier() is APrivateVisibilityModifier && Util.GetAncestor<AStructDecl>(methodDecl) != currentStruct) continue; if (methodDecl.GetVisibilityModifier() is AProtectedVisibilityModifier && !Util.Extends(Util.GetAncestor<AStructDecl>(methodDecl), currentStruct, data)) continue; if (methodDecl.GetStatic() != null) continue; //Check return type if (returnType != null && !(returnType is AVoidType) && !Assignable(methodDecl.GetReturnType(), returnType)) continue; //Check that parameters are assignable bool add = true; bool matchImplicit = false; for (int j = 0; j < argTypes.Count; j++) { PType argType = argTypes[j]; AALocalDecl formal = (AALocalDecl)methodDecl.GetFormals()[j]; PType formalType = formal.GetType(); if (formal.GetOut() != null && !Assignable(formalType, argType) || formal.GetRef() != null && !(Assignable(argType, formalType) && Assignable(formalType, argType)) || formal.GetOut() == null && formal.GetRef() == null && !Assignable(argType, formalType)) { add = false; if (formal.GetOut() == null && formal.GetRef() == null && ImplicitAssignable(argType, formalType)) { matchImplicit = true; } else { matchImplicit = false; break; } } } if (!add && !matchImplicit) continue; if (candidates.Count == 0 && implicitCandidates.Count == 0) {//Set base exp baseExp = (PExp)reciever; } if (add) candidates.Add(methodDecl); if (matchImplicit) implicitCandidates.Add(methodDecl); } } } else if (type is ANamedType && data.DelegateTypeLinks.ContainsKey((ANamedType)type)) { if (matchingDelegates != null && name == "Invoke") { AMethodDecl delegateDecl = data.DelegateTypeLinks[(ANamedType)type]; if (delegateDecl.GetFormals().Count == argTypes.Count) { matchingNames.Add(delegateDecl); //Check return type if (!(returnType != null && !(returnType is AVoidType) && !Assignable(delegateDecl.GetReturnType(), returnType))) { //Check that parameters are assignable bool add = true; bool matchImplicit = false; for (int j = 0; j < argTypes.Count; j++) { PType argType = argTypes[j]; AALocalDecl formal = (AALocalDecl) delegateDecl.GetFormals()[j]; PType formalType = formal.GetType(); if (formal.GetOut() != null && !Assignable(formalType, argType) || formal.GetRef() != null && !(Assignable(argType, formalType) && Assignable(formalType, argType)) || formal.GetOut() == null && formal.GetRef() == null && !Assignable(argType, formalType)) { add = false; if (formal.GetOut() == null && formal.GetRef() == null && ImplicitAssignable(argType, formalType)) { matchImplicit = true; } else { matchImplicit = false; break; } } } if (add || matchImplicit) { matchingDelegates.Add(delegateDecl); if (candidates.Count == 0 && implicitCandidates.Count == 0) { //Set base exp baseExp = (PExp)reciever; } if (add) candidates.Add(delegateDecl); if (matchImplicit) implicitCandidates.Add(delegateDecl); } } } } } else { //Look for enrichments List<IList> visibleDecls = Util.GetVisibleDecls(node, true); AEnrichmentDecl currentEnrichment = Util.GetAncestor<AEnrichmentDecl>(node); foreach (IList declList in visibleDecls) { foreach (PDecl decl in declList) { if (decl is AEnrichmentDecl) { AEnrichmentDecl enrichment = (AEnrichmentDecl)decl; if (!Util.TypesEqual(type, enrichment.GetType(), data)) continue; foreach (PDecl enrichmentDecl in enrichment.GetDecl()) { if (enrichmentDecl is AMethodDecl) { AMethodDecl methodDecl = (AMethodDecl)enrichmentDecl; if (methodDecl.GetName().Text == name && methodDecl.GetFormals().Count == argTypes.Count && methodDecl.GetDelegate() == null) { matchingNames.Add(methodDecl); //Visibility if (methodDecl.GetVisibilityModifier() is APrivateVisibilityModifier && enrichment != currentEnrichment) continue; if (methodDecl.GetStatic() != null) continue; //Check return type if (returnType != null && !(returnType is AVoidType) && !Assignable(methodDecl.GetReturnType(), returnType)) continue; //Check that parameters are assignable bool add = true; bool matchImplicit = false; for (int j = 0; j < argTypes.Count; j++) { PType argType = argTypes[j]; AALocalDecl formal = (AALocalDecl)methodDecl.GetFormals()[j]; PType formalType = formal.GetType(); if (formal.GetOut() != null && !Assignable(formalType, argType) || formal.GetRef() != null && !(Assignable(argType, formalType) && Assignable(formalType, argType)) || formal.GetOut() == null && formal.GetRef() == null && !Assignable(argType, formalType)) { add = false; if (formal.GetOut() == null && formal.GetRef() == null && ImplicitAssignable(argType, formalType)) { matchImplicit = true; } else { matchImplicit = false; break; } } } if (!add && !matchImplicit) continue; if (candidates.Count == 0 && implicitCandidates.Count == 0) {//Set base exp baseExp = (PExp)reciever; } if (add) candidates.Add(methodDecl); if (matchImplicit) implicitCandidates.Add(methodDecl); } } } } } } } } int candidateCount = candidates.Count + (matchArrayResize ? 1 : 0); if (candidateCount + implicitCandidates.Count == 0 && !matchArrayResize) { List<ErrorCollection.Error> subErrors = new List<ErrorCollection.Error>(); foreach (AMethodDecl matchingName in matchingNames) { subErrors.Add(new ErrorCollection.Error(matchingName.GetName(), LocRM.GetString("ErrorText124"))); } errors.Add(new ErrorCollection.Error(node, LocRM.GetString("ErrorText125"), false, subErrors.ToArray())); throw new ParserException(node, "TypeChecking.GetTargets"); } if (candidateCount > 1) { List<ErrorCollection.Error> subErrors = new List<ErrorCollection.Error>(); foreach (AMethodDecl matchingName in candidates) { subErrors.Add(new ErrorCollection.Error(matchingName.GetName(), LocRM.GetString("ErrorText38"))); } if (matchArrayResize) subErrors.Add(new ErrorCollection.Error(node, LocRM.GetString("ErrorText126"))); errors.Add(new ErrorCollection.Error(node, LocRM.GetString("ErrorText127"), false, subErrors.ToArray())); throw new ParserException(node, "TypeChecking.GetTargets"); } if (candidateCount == 0 && implicitCandidates.Count > 1) { List<ErrorCollection.Error> subErrors = new List<ErrorCollection.Error>(); foreach (AMethodDecl matchingName in implicitCandidates) { subErrors.Add(new ErrorCollection.Error(matchingName.GetName(), LocRM.GetString("ErrorText38"))); } errors.Add(new ErrorCollection.Error(node, LocRM.GetString("ErrorText128"), false, subErrors.ToArray())); throw new ParserException(node, "TypeChecking.GetTargets"); } }
private void CheckAssignedOutParameters(IEnumerable<AALocalDecl> formals, Token token) { foreach (AALocalDecl formal in formals) { if (formal.GetOut() != null && !assignedToOutParams.Contains(formal)) { errors.Add(new ErrorCollection.Error(token ?? formal.GetName(), currentSourceFile, LocRM.GetString("ErrorText162"))); } } }
public override void CaseAArrayTempType(AArrayTempType node) { /*if (node.GetDimention() is ALvalueExp && ((ALvalueExp)node.GetDimention()).GetLvalue() is AAmbiguousNameLvalue) { AAmbiguousNameLvalue lvalue = (AAmbiguousNameLvalue) ((ALvalueExp) node.GetDimention()).GetLvalue(); ASimpleName name = (ASimpleName) lvalue.GetAmbiguous(); if (name.GetIdentifier().Text == "PlayerData") node = node; }*/ if (!isInANewExp && !data.IsLiteCompile) { bool wasFolding = foldIntegerConstants; bool foldFailedBefore = foldingFailed; foldIntegerConstants = true; foldingFailed = false; integerConstant = 0; integerConstantToken = node.GetToken(); CheckValidConstExp(node.GetDimention()); base.CaseAArrayTempType(node); foldIntegerConstants = false; if (!foldingFailed) node.SetIntDim(new TIntegerLiteral(integerConstant.ToString())); foldIntegerConstants = wasFolding; foldingFailed = foldFailedBefore; } else { base.CaseAArrayTempType(node); } }
public static TextPoint FromCompilerCoords(Token token) { return FromCompilerCoords(token.Line, token.Pos); }
public ParserException(Token token, String message) : base(message) { this.token = token; }
public Start Parse() { Push(0, null); IList ign = null; while(true) { while(Index(lexer.Peek()) == -1) { if(ign == null) { ign = new TypedList(NodeCast.Instance); } ign.Add(lexer.Next()); } if(ign != null) { ignoredTokens.SetIn(lexer.Peek(), ign); ign = null; } last_pos = lexer.Peek().Pos; last_line = lexer.Peek().Line; last_token = lexer.Peek(); int index = Index(lexer.Peek()); action[0] = actionTable[State()][0][1]; action[1] = actionTable[State()][0][2]; int low = 1; int high = actionTable[State()].Length - 1; while(low <= high) { int middle = (low + high) / 2; if(index < actionTable[State()][middle][0]) { high = middle - 1; } else if(index > actionTable[State()][middle][0]) { low = middle + 1; } else { action[0] = actionTable[State()][middle][1]; action[1] = actionTable[State()][middle][2]; break; } } switch(action[0]) { case SHIFT: { ArrayList list = new ArrayList(); list.Add(lexer.Next()); Push(action[1], list); last_shift = action[1]; } break; case REDUCE: switch(action[1]) { case 0: { ArrayList list = New0(); Push(GoTo(0), list); } break; case 1: { ArrayList list = New1(); Push(GoTo(0), list); } break; case 2: { ArrayList list = New2(); Push(GoTo(0), list); } break; case 3: { ArrayList list = New3(); Push(GoTo(0), list); } break; case 4: { ArrayList list = New4(); Push(GoTo(0), list); } break; case 5: { ArrayList list = New5(); Push(GoTo(0), list); } break; case 6: { ArrayList list = New6(); Push(GoTo(0), list); } break; case 7: { ArrayList list = New7(); Push(GoTo(0), list); } break; case 8: { ArrayList list = New8(); Push(GoTo(1), list); } break; case 9: { ArrayList list = New9(); Push(GoTo(2), list); } break; case 10: { ArrayList list = New10(); Push(GoTo(2), list); } break; case 11: { ArrayList list = New11(); Push(GoTo(3), list); } break; case 12: { ArrayList list = New12(); Push(GoTo(3), list); } break; case 13: { ArrayList list = New13(); Push(GoTo(3), list); } break; case 14: { ArrayList list = New14(); Push(GoTo(3), list); } break; case 15: { ArrayList list = New15(); Push(GoTo(3), list); } break; case 16: { ArrayList list = New16(); Push(GoTo(3), list); } break; case 17: { ArrayList list = New17(); Push(GoTo(3), list); } break; case 18: { ArrayList list = New18(); Push(GoTo(3), list); } break; case 19: { ArrayList list = New19(); Push(GoTo(3), list); } break; case 20: { ArrayList list = New20(); Push(GoTo(3), list); } break; case 21: { ArrayList list = New21(); Push(GoTo(3), list); } break; case 22: { ArrayList list = New22(); Push(GoTo(3), list); } break; case 23: { ArrayList list = New23(); Push(GoTo(3), list); } break; case 24: { ArrayList list = New24(); Push(GoTo(3), list); } break; case 25: { ArrayList list = New25(); Push(GoTo(4), list); } break; case 26: { ArrayList list = New26(); Push(GoTo(4), list); } break; case 27: { ArrayList list = New27(); Push(GoTo(4), list); } break; case 28: { ArrayList list = New28(); Push(GoTo(4), list); } break; case 29: { ArrayList list = New29(); Push(GoTo(5), list); } break; case 30: { ArrayList list = New30(); Push(GoTo(5), list); } break; case 31: { ArrayList list = New31(); Push(GoTo(6), list); } break; case 32: { ArrayList list = New32(); Push(GoTo(6), list); } break; case 33: { ArrayList list = New33(); Push(GoTo(7), list); } break; case 34: { ArrayList list = New34(); Push(GoTo(8), list); } break; case 35: { ArrayList list = New35(); Push(GoTo(8), list); } break; case 36: { ArrayList list = New36(); Push(GoTo(8), list); } break; case 37: { ArrayList list = New37(); Push(GoTo(8), list); } break; case 38: { ArrayList list = New38(); Push(GoTo(9), list); } break; case 39: { ArrayList list = New39(); Push(GoTo(9), list); } break; case 40: { ArrayList list = New40(); Push(GoTo(9), list); } break; case 41: { ArrayList list = New41(); Push(GoTo(9), list); } break; case 42: { ArrayList list = New42(); Push(GoTo(9), list); } break; case 43: { ArrayList list = New43(); Push(GoTo(9), list); } break; case 44: { ArrayList list = New44(); Push(GoTo(9), list); } break; case 45: { ArrayList list = New45(); Push(GoTo(9), list); } break; case 46: { ArrayList list = New46(); Push(GoTo(9), list); } break; case 47: { ArrayList list = New47(); Push(GoTo(9), list); } break; case 48: { ArrayList list = New48(); Push(GoTo(9), list); } break; case 49: { ArrayList list = New49(); Push(GoTo(9), list); } break; case 50: { ArrayList list = New50(); Push(GoTo(9), list); } break; case 51: { ArrayList list = New51(); Push(GoTo(9), list); } break; case 52: { ArrayList list = New52(); Push(GoTo(9), list); } break; case 53: { ArrayList list = New53(); Push(GoTo(9), list); } break; case 54: { ArrayList list = New54(); Push(GoTo(10), list); } break; case 55: { ArrayList list = New55(); Push(GoTo(10), list); } break; case 56: { ArrayList list = New56(); Push(GoTo(11), list); } break; case 57: { ArrayList list = New57(); Push(GoTo(11), list); } break; case 58: { ArrayList list = New58(); Push(GoTo(11), list); } break; case 59: { ArrayList list = New59(); Push(GoTo(11), list); } break; case 60: { ArrayList list = New60(); Push(GoTo(11), list); } break; case 61: { ArrayList list = New61(); Push(GoTo(11), list); } break; case 62: { ArrayList list = New62(); Push(GoTo(11), list); } break; case 63: { ArrayList list = New63(); Push(GoTo(11), list); } break; case 64: { ArrayList list = New64(); Push(GoTo(11), list); } break; case 65: { ArrayList list = New65(); Push(GoTo(11), list); } break; case 66: { ArrayList list = New66(); Push(GoTo(11), list); } break; case 67: { ArrayList list = New67(); Push(GoTo(11), list); } break; case 68: { ArrayList list = New68(); Push(GoTo(11), list); } break; case 69: { ArrayList list = New69(); Push(GoTo(11), list); } break; case 70: { ArrayList list = New70(); Push(GoTo(12), list); } break; case 71: { ArrayList list = New71(); Push(GoTo(13), list); } break; case 72: { ArrayList list = New72(); Push(GoTo(14), list); } break; case 73: { ArrayList list = New73(); Push(GoTo(14), list); } break; case 74: { ArrayList list = New74(); Push(GoTo(14), list); } break; case 75: { ArrayList list = New75(); Push(GoTo(14), list); } break; case 76: { ArrayList list = New76(); Push(GoTo(15), list); } break; case 77: { ArrayList list = New77(); Push(GoTo(15), list); } break; case 78: { ArrayList list = New78(); Push(GoTo(15), list); } break; case 79: { ArrayList list = New79(); Push(GoTo(15), list); } break; case 80: { ArrayList list = New80(); Push(GoTo(15), list); } break; case 81: { ArrayList list = New81(); Push(GoTo(15), list); } break; case 82: { ArrayList list = New82(); Push(GoTo(15), list); } break; case 83: { ArrayList list = New83(); Push(GoTo(15), list); } break; case 84: { ArrayList list = New84(); Push(GoTo(16), list); } break; case 85: { ArrayList list = New85(); Push(GoTo(17), list); } break; case 86: { ArrayList list = New86(); Push(GoTo(18), list); } break; case 87: { ArrayList list = New87(); Push(GoTo(19), list); } break; case 88: { ArrayList list = New88(); Push(GoTo(20), list); } break; case 89: { ArrayList list = New89(); Push(GoTo(20), list); } break; case 90: { ArrayList list = New90(); Push(GoTo(21), list); } break; case 91: { ArrayList list = New91(); Push(GoTo(21), list); } break; case 92: { ArrayList list = New92(); Push(GoTo(22), list); } break; case 93: { ArrayList list = New93(); Push(GoTo(22), list); } break; case 94: { ArrayList list = New94(); Push(GoTo(22), list); } break; case 95: { ArrayList list = New95(); Push(GoTo(23), list); } break; case 96: { ArrayList list = New96(); Push(GoTo(23), list); } break; case 97: { ArrayList list = New97(); Push(GoTo(23), list); } break; case 98: { ArrayList list = New98(); Push(GoTo(23), list); } break; case 99: { ArrayList list = New99(); Push(GoTo(24), list); } break; case 100: { ArrayList list = New100(); Push(GoTo(25), list); } break; case 101: { ArrayList list = New101(); Push(GoTo(25), list); } break; case 102: { ArrayList list = New102(); Push(GoTo(25), list); } break; case 103: { ArrayList list = New103(); Push(GoTo(25), list); } break; case 104: { ArrayList list = New104(); Push(GoTo(25), list); } break; case 105: { ArrayList list = New105(); Push(GoTo(25), list); } break; case 106: { ArrayList list = New106(); Push(GoTo(25), list); } break; case 107: { ArrayList list = New107(); Push(GoTo(25), list); } break; case 108: { ArrayList list = New108(); Push(GoTo(26), list); } break; case 109: { ArrayList list = New109(); Push(GoTo(27), list); } break; case 110: { ArrayList list = New110(); Push(GoTo(27), list); } break; case 111: { ArrayList list = New111(); Push(GoTo(27), list); } break; case 112: { ArrayList list = New112(); Push(GoTo(27), list); } break; case 113: { ArrayList list = New113(); Push(GoTo(27), list); } break; case 114: { ArrayList list = New114(); Push(GoTo(27), list); } break; case 115: { ArrayList list = New115(); Push(GoTo(27), list); } break; case 116: { ArrayList list = New116(); Push(GoTo(27), list); } break; case 117: { ArrayList list = New117(); Push(GoTo(28), list); } break; case 118: { ArrayList list = New118(); Push(GoTo(28), list); } break; case 119: { ArrayList list = New119(); Push(GoTo(29), list); } break; case 120: { ArrayList list = New120(); Push(GoTo(29), list); } break; case 121: { ArrayList list = New121(); Push(GoTo(30), list); } break; case 122: { ArrayList list = New122(); Push(GoTo(30), list); } break; case 123: { ArrayList list = New123(); Push(GoTo(30), list); } break; case 124: { ArrayList list = New124(); Push(GoTo(30), list); } break; case 125: { ArrayList list = New125(); Push(GoTo(31), list); } break; case 126: { ArrayList list = New126(); Push(GoTo(31), list); } break; case 127: { ArrayList list = New127(); Push(GoTo(32), list); } break; case 128: { ArrayList list = New128(); Push(GoTo(32), list); } break; case 129: { ArrayList list = New129(); Push(GoTo(32), list); } break; case 130: { ArrayList list = New130(); Push(GoTo(32), list); } break; case 131: { ArrayList list = New131(); Push(GoTo(33), list); } break; case 132: { ArrayList list = New132(); Push(GoTo(34), list); } break; case 133: { ArrayList list = New133(); Push(GoTo(34), list); } break; case 134: { ArrayList list = New134(); Push(GoTo(35), list); } break; case 135: { ArrayList list = New135(); Push(GoTo(35), list); } break; case 136: { ArrayList list = New136(); Push(GoTo(36), list); } break; case 137: { ArrayList list = New137(); Push(GoTo(36), list); } break; case 138: { ArrayList list = New138(); Push(GoTo(36), list); } break; case 139: { ArrayList list = New139(); Push(GoTo(36), list); } break; case 140: { ArrayList list = New140(); Push(GoTo(36), list); } break; case 141: { ArrayList list = New141(); Push(GoTo(36), list); } break; case 142: { ArrayList list = New142(); Push(GoTo(36), list); } break; case 143: { ArrayList list = New143(); Push(GoTo(36), list); } break; case 144: { ArrayList list = New144(); Push(GoTo(36), list); } break; case 145: { ArrayList list = New145(); Push(GoTo(36), list); } break; case 146: { ArrayList list = New146(); Push(GoTo(36), list); } break; case 147: { ArrayList list = New147(); Push(GoTo(36), list); } break; case 148: { ArrayList list = New148(); Push(GoTo(37), list); } break; case 149: { ArrayList list = New149(); Push(GoTo(37), list); } break; case 150: { ArrayList list = New150(); Push(GoTo(37), list); } break; case 151: { ArrayList list = New151(); Push(GoTo(37), list); } break; case 152: { ArrayList list = New152(); Push(GoTo(37), list); } break; case 153: { ArrayList list = New153(); Push(GoTo(37), list); } break; case 154: { ArrayList list = New154(); Push(GoTo(37), list); } break; case 155: { ArrayList list = New155(); Push(GoTo(37), list); } break; case 156: { ArrayList list = New156(); Push(GoTo(38), list); } break; case 157: { ArrayList list = New157(); Push(GoTo(38), list); } break; case 158: { ArrayList list = New158(); Push(GoTo(38), list); } break; case 159: { ArrayList list = New159(); Push(GoTo(38), list); } break; case 160: { ArrayList list = New160(); Push(GoTo(39), list); } break; case 161: { ArrayList list = New161(); Push(GoTo(39), list); } break; case 162: { ArrayList list = New162(); Push(GoTo(39), list); } break; case 163: { ArrayList list = New163(); Push(GoTo(39), list); } break; case 164: { ArrayList list = New164(); Push(GoTo(39), list); } break; case 165: { ArrayList list = New165(); Push(GoTo(39), list); } break; case 166: { ArrayList list = New166(); Push(GoTo(39), list); } break; case 167: { ArrayList list = New167(); Push(GoTo(39), list); } break; case 168: { ArrayList list = New168(); Push(GoTo(39), list); } break; case 169: { ArrayList list = New169(); Push(GoTo(39), list); } break; case 170: { ArrayList list = New170(); Push(GoTo(39), list); } break; case 171: { ArrayList list = New171(); Push(GoTo(39), list); } break; case 172: { ArrayList list = New172(); Push(GoTo(39), list); } break; case 173: { ArrayList list = New173(); Push(GoTo(39), list); } break; case 174: { ArrayList list = New174(); Push(GoTo(39), list); } break; case 175: { ArrayList list = New175(); Push(GoTo(39), list); } break; case 176: { ArrayList list = New176(); Push(GoTo(39), list); } break; case 177: { ArrayList list = New177(); Push(GoTo(39), list); } break; case 178: { ArrayList list = New178(); Push(GoTo(39), list); } break; case 179: { ArrayList list = New179(); Push(GoTo(39), list); } break; case 180: { ArrayList list = New180(); Push(GoTo(39), list); } break; case 181: { ArrayList list = New181(); Push(GoTo(39), list); } break; case 182: { ArrayList list = New182(); Push(GoTo(39), list); } break; case 183: { ArrayList list = New183(); Push(GoTo(39), list); } break; case 184: { ArrayList list = New184(); Push(GoTo(39), list); } break; case 185: { ArrayList list = New185(); Push(GoTo(39), list); } break; case 186: { ArrayList list = New186(); Push(GoTo(39), list); } break; case 187: { ArrayList list = New187(); Push(GoTo(39), list); } break; case 188: { ArrayList list = New188(); Push(GoTo(39), list); } break; case 189: { ArrayList list = New189(); Push(GoTo(39), list); } break; case 190: { ArrayList list = New190(); Push(GoTo(39), list); } break; case 191: { ArrayList list = New191(); Push(GoTo(39), list); } break; case 192: { ArrayList list = New192(); Push(GoTo(39), list); } break; case 193: { ArrayList list = New193(); Push(GoTo(39), list); } break; case 194: { ArrayList list = New194(); Push(GoTo(39), list); } break; case 195: { ArrayList list = New195(); Push(GoTo(39), list); } break; case 196: { ArrayList list = New196(); Push(GoTo(39), list); } break; case 197: { ArrayList list = New197(); Push(GoTo(39), list); } break; case 198: { ArrayList list = New198(); Push(GoTo(39), list); } break; case 199: { ArrayList list = New199(); Push(GoTo(39), list); } break; case 200: { ArrayList list = New200(); Push(GoTo(39), list); } break; case 201: { ArrayList list = New201(); Push(GoTo(39), list); } break; case 202: { ArrayList list = New202(); Push(GoTo(39), list); } break; case 203: { ArrayList list = New203(); Push(GoTo(39), list); } break; case 204: { ArrayList list = New204(); Push(GoTo(39), list); } break; case 205: { ArrayList list = New205(); Push(GoTo(39), list); } break; case 206: { ArrayList list = New206(); Push(GoTo(39), list); } break; case 207: { ArrayList list = New207(); Push(GoTo(39), list); } break; case 208: { ArrayList list = New208(); Push(GoTo(39), list); } break; case 209: { ArrayList list = New209(); Push(GoTo(39), list); } break; case 210: { ArrayList list = New210(); Push(GoTo(39), list); } break; case 211: { ArrayList list = New211(); Push(GoTo(39), list); } break; case 212: { ArrayList list = New212(); Push(GoTo(39), list); } break; case 213: { ArrayList list = New213(); Push(GoTo(39), list); } break; case 214: { ArrayList list = New214(); Push(GoTo(39), list); } break; case 215: { ArrayList list = New215(); Push(GoTo(39), list); } break; case 216: { ArrayList list = New216(); Push(GoTo(39), list); } break; case 217: { ArrayList list = New217(); Push(GoTo(39), list); } break; case 218: { ArrayList list = New218(); Push(GoTo(39), list); } break; case 219: { ArrayList list = New219(); Push(GoTo(39), list); } break; case 220: { ArrayList list = New220(); Push(GoTo(39), list); } break; case 221: { ArrayList list = New221(); Push(GoTo(39), list); } break; case 222: { ArrayList list = New222(); Push(GoTo(39), list); } break; case 223: { ArrayList list = New223(); Push(GoTo(39), list); } break; case 224: { ArrayList list = New224(); Push(GoTo(40), list); } break; case 225: { ArrayList list = New225(); Push(GoTo(41), list); } break; case 226: { ArrayList list = New226(); Push(GoTo(42), list); } break; case 227: { ArrayList list = New227(); Push(GoTo(42), list); } break; case 228: { ArrayList list = New228(); Push(GoTo(43), list); } break; case 229: { ArrayList list = New229(); Push(GoTo(43), list); } break; case 230: { ArrayList list = New230(); Push(GoTo(43), list); } break; case 231: { ArrayList list = New231(); Push(GoTo(43), list); } break; case 232: { ArrayList list = New232(); Push(GoTo(43), list); } break; case 233: { ArrayList list = New233(); Push(GoTo(43), list); } break; case 234: { ArrayList list = New234(); Push(GoTo(43), list); } break; case 235: { ArrayList list = New235(); Push(GoTo(43), list); } break; case 236: { ArrayList list = New236(); Push(GoTo(44), list); } break; case 237: { ArrayList list = New237(); Push(GoTo(45), list); } break; case 238: { ArrayList list = New238(); Push(GoTo(45), list); } break; case 239: { ArrayList list = New239(); Push(GoTo(46), list); } break; case 240: { ArrayList list = New240(); Push(GoTo(46), list); } break; case 241: { ArrayList list = New241(); Push(GoTo(47), list); } break; case 242: { ArrayList list = New242(); Push(GoTo(47), list); } break; case 243: { ArrayList list = New243(); Push(GoTo(47), list); } break; case 244: { ArrayList list = New244(); Push(GoTo(47), list); } break; case 245: { ArrayList list = New245(); Push(GoTo(48), list); } break; case 246: { ArrayList list = New246(); Push(GoTo(49), list); } break; case 247: { ArrayList list = New247(); Push(GoTo(49), list); } break; case 248: { ArrayList list = New248(); Push(GoTo(50), list); } break; case 249: { ArrayList list = New249(); Push(GoTo(50), list); } break; case 250: { ArrayList list = New250(); Push(GoTo(50), list); } break; case 251: { ArrayList list = New251(); Push(GoTo(51), list); } break; case 252: { ArrayList list = New252(); Push(GoTo(51), list); } break; case 253: { ArrayList list = New253(); Push(GoTo(52), list); } break; case 254: { ArrayList list = New254(); Push(GoTo(53), list); } break; case 255: { ArrayList list = New255(); Push(GoTo(54), list); } break; case 256: { ArrayList list = New256(); Push(GoTo(55), list); } break; case 257: { ArrayList list = New257(); Push(GoTo(56), list); } break; case 258: { ArrayList list = New258(); Push(GoTo(56), list); } break; case 259: { ArrayList list = New259(); Push(GoTo(57), list); } break; case 260: { ArrayList list = New260(); Push(GoTo(58), list); } break; case 261: { ArrayList list = New261(); Push(GoTo(59), list); } break; case 262: { ArrayList list = New262(); Push(GoTo(59), list); } break; case 263: { ArrayList list = New263(); Push(GoTo(59), list); } break; case 264: { ArrayList list = New264(); Push(GoTo(59), list); } break; case 265: { ArrayList list = New265(); Push(GoTo(60), list); } break; case 266: { ArrayList list = New266(); Push(GoTo(60), list); } break; case 267: { ArrayList list = New267(); Push(GoTo(61), list); } break; case 268: { ArrayList list = New268(); Push(GoTo(62), list); } break; case 269: { ArrayList list = New269(); Push(GoTo(63), list); } break; case 270: { ArrayList list = New270(); Push(GoTo(64), list); } break; case 271: { ArrayList list = New271(); Push(GoTo(64), list); } break; case 272: { ArrayList list = New272(); Push(GoTo(64), list); } break; case 273: { ArrayList list = New273(); Push(GoTo(64), list); } break; case 274: { ArrayList list = New274(); Push(GoTo(64), list); } break; case 275: { ArrayList list = New275(); Push(GoTo(64), list); } break; case 276: { ArrayList list = New276(); Push(GoTo(64), list); } break; case 277: { ArrayList list = New277(); Push(GoTo(65), list); } break; case 278: { ArrayList list = New278(); Push(GoTo(66), list); } break; case 279: { ArrayList list = New279(); Push(GoTo(66), list); } break; case 280: { ArrayList list = New280(); Push(GoTo(67), list); } break; case 281: { ArrayList list = New281(); Push(GoTo(67), list); } break; case 282: { ArrayList list = New282(); Push(GoTo(68), list); } break; case 283: { ArrayList list = New283(); Push(GoTo(68), list); } break; case 284: { ArrayList list = New284(); Push(GoTo(69), list); } break; case 285: { ArrayList list = New285(); Push(GoTo(69), list); } break; case 286: { ArrayList list = New286(); Push(GoTo(70), list); } break; case 287: { ArrayList list = New287(); Push(GoTo(71), list); } break; case 288: { ArrayList list = New288(); Push(GoTo(72), list); } break; case 289: { ArrayList list = New289(); Push(GoTo(72), list); } break; case 290: { ArrayList list = New290(); Push(GoTo(72), list); } break; case 291: { ArrayList list = New291(); Push(GoTo(72), list); } break; case 292: { ArrayList list = New292(); Push(GoTo(73), list); } break; case 293: { ArrayList list = New293(); Push(GoTo(73), list); } break; case 294: { ArrayList list = New294(); Push(GoTo(73), list); } break; case 295: { ArrayList list = New295(); Push(GoTo(73), list); } break; case 296: { ArrayList list = New296(); Push(GoTo(73), list); } break; case 297: { ArrayList list = New297(); Push(GoTo(73), list); } break; case 298: { ArrayList list = New298(); Push(GoTo(73), list); } break; case 299: { ArrayList list = New299(); Push(GoTo(74), list); } break; case 300: { ArrayList list = New300(); Push(GoTo(75), list); } break; case 301: { ArrayList list = New301(); Push(GoTo(76), list); } break; case 302: { ArrayList list = New302(); Push(GoTo(76), list); } break; case 303: { ArrayList list = New303(); Push(GoTo(77), list); } break; case 304: { ArrayList list = New304(); Push(GoTo(78), list); } break; case 305: { ArrayList list = New305(); Push(GoTo(79), list); } break; case 306: { ArrayList list = New306(); Push(GoTo(80), list); } break; case 307: { ArrayList list = New307(); Push(GoTo(81), list); } break; case 308: { ArrayList list = New308(); Push(GoTo(82), list); } break; case 309: { ArrayList list = New309(); Push(GoTo(83), list); } break; case 310: { ArrayList list = New310(); Push(GoTo(83), list); } break; case 311: { ArrayList list = New311(); Push(GoTo(84), list); } break; case 312: { ArrayList list = New312(); Push(GoTo(84), list); } break; case 313: { ArrayList list = New313(); Push(GoTo(85), list); } break; case 314: { ArrayList list = New314(); Push(GoTo(85), list); } break; case 315: { ArrayList list = New315(); Push(GoTo(86), list); } break; case 316: { ArrayList list = New316(); Push(GoTo(86), list); } break; case 317: { ArrayList list = New317(); Push(GoTo(87), list); } break; case 318: { ArrayList list = New318(); Push(GoTo(88), list); } break; case 319: { ArrayList list = New319(); Push(GoTo(89), list); } break; case 320: { ArrayList list = New320(); Push(GoTo(89), list); } break; case 321: { ArrayList list = New321(); Push(GoTo(89), list); } break; case 322: { ArrayList list = New322(); Push(GoTo(89), list); } break; case 323: { ArrayList list = New323(); Push(GoTo(89), list); } break; case 324: { ArrayList list = New324(); Push(GoTo(89), list); } break; case 325: { ArrayList list = New325(); Push(GoTo(89), list); } break; case 326: { ArrayList list = New326(); Push(GoTo(89), list); } break; case 327: { ArrayList list = New327(); Push(GoTo(90), list); } break; case 328: { ArrayList list = New328(); Push(GoTo(90), list); } break; case 329: { ArrayList list = New329(); Push(GoTo(90), list); } break; case 330: { ArrayList list = New330(); Push(GoTo(91), list); } break; case 331: { ArrayList list = New331(); Push(GoTo(91), list); } break; case 332: { ArrayList list = New332(); Push(GoTo(92), list); } break; case 333: { ArrayList list = New333(); Push(GoTo(93), list); } break; case 334: { ArrayList list = New334(); Push(GoTo(93), list); } break; case 335: { ArrayList list = New335(); Push(GoTo(94), list); } break; case 336: { ArrayList list = New336(); Push(GoTo(94), list); } break; case 337: { ArrayList list = New337(); Push(GoTo(94), list); } break; case 338: { ArrayList list = New338(); Push(GoTo(94), list); } break; case 339: { ArrayList list = New339(); Push(GoTo(94), list); } break; case 340: { ArrayList list = New340(); Push(GoTo(94), list); } break; case 341: { ArrayList list = New341(); Push(GoTo(94), list); } break; case 342: { ArrayList list = New342(); Push(GoTo(94), list); } break; case 343: { ArrayList list = New343(); Push(GoTo(94), list); } break; case 344: { ArrayList list = New344(); Push(GoTo(94), list); } break; case 345: { ArrayList list = New345(); Push(GoTo(95), list); } break; case 346: { ArrayList list = New346(); Push(GoTo(95), list); } break; case 347: { ArrayList list = New347(); Push(GoTo(96), list); } break; case 348: { ArrayList list = New348(); Push(GoTo(96), list); } break; case 349: { ArrayList list = New349(); Push(GoTo(96), list); } break; case 350: { ArrayList list = New350(); Push(GoTo(96), list); } break; case 351: { ArrayList list = New351(); Push(GoTo(96), list); } break; case 352: { ArrayList list = New352(); Push(GoTo(96), list); } break; case 353: { ArrayList list = New353(); Push(GoTo(96), list); } break; case 354: { ArrayList list = New354(); Push(GoTo(96), list); } break; case 355: { ArrayList list = New355(); Push(GoTo(96), list); } break; case 356: { ArrayList list = New356(); Push(GoTo(96), list); } break; case 357: { ArrayList list = New357(); Push(GoTo(96), list); } break; case 358: { ArrayList list = New358(); Push(GoTo(96), list); } break; case 359: { ArrayList list = New359(); Push(GoTo(96), list); } break; case 360: { ArrayList list = New360(); Push(GoTo(97), list); } break; case 361: { ArrayList list = New361(); Push(GoTo(97), list); } break; case 362: { ArrayList list = New362(); Push(GoTo(97), list); } break; case 363: { ArrayList list = New363(); Push(GoTo(97), list); } break; case 364: { ArrayList list = New364(); Push(GoTo(97), list); } break; case 365: { ArrayList list = New365(); Push(GoTo(97), list); } break; case 366: { ArrayList list = New366(); Push(GoTo(97), list); } break; case 367: { ArrayList list = New367(); Push(GoTo(97), list); } break; case 368: { ArrayList list = New368(); Push(GoTo(97), list); } break; case 369: { ArrayList list = New369(); Push(GoTo(97), list); } break; case 370: { ArrayList list = New370(); Push(GoTo(97), list); } break; case 371: { ArrayList list = New371(); Push(GoTo(98), list); } break; case 372: { ArrayList list = New372(); Push(GoTo(99), list); } break; case 373: { ArrayList list = New373(); Push(GoTo(100), list); } break; case 374: { ArrayList list = New374(); Push(GoTo(100), list); } break; case 375: { ArrayList list = New375(); Push(GoTo(101), list); } break; case 376: { ArrayList list = New376(); Push(GoTo(101), list); } break; case 377: { ArrayList list = New377(); Push(GoTo(102), list); } break; case 378: { ArrayList list = New378(); Push(GoTo(102), list); } break; case 379: { ArrayList list = New379(); Push(GoTo(102), list); } break; case 380: { ArrayList list = New380(); Push(GoTo(102), list); } break; case 381: { ArrayList list = New381(); Push(GoTo(102), list); } break; case 382: { ArrayList list = New382(); Push(GoTo(102), list); } break; case 383: { ArrayList list = New383(); Push(GoTo(102), list); } break; case 384: { ArrayList list = New384(); Push(GoTo(102), list); } break; case 385: { ArrayList list = New385(); Push(GoTo(102), list); } break; case 386: { ArrayList list = New386(); Push(GoTo(102), list); } break; case 387: { ArrayList list = New387(); Push(GoTo(102), list); } break; case 388: { ArrayList list = New388(); Push(GoTo(102), list); } break; case 389: { ArrayList list = New389(); Push(GoTo(102), list); } break; case 390: { ArrayList list = New390(); Push(GoTo(102), list); } break; case 391: { ArrayList list = New391(); Push(GoTo(102), list); } break; case 392: { ArrayList list = New392(); Push(GoTo(102), list); } break; case 393: { ArrayList list = New393(); Push(GoTo(102), list); } break; case 394: { ArrayList list = New394(); Push(GoTo(102), list); } break; case 395: { ArrayList list = New395(); Push(GoTo(102), list); } break; case 396: { ArrayList list = New396(); Push(GoTo(102), list); } break; case 397: { ArrayList list = New397(); Push(GoTo(102), list); } break; case 398: { ArrayList list = New398(); Push(GoTo(102), list); } break; case 399: { ArrayList list = New399(); Push(GoTo(102), list); } break; case 400: { ArrayList list = New400(); Push(GoTo(102), list); } break; case 401: { ArrayList list = New401(); Push(GoTo(102), list); } break; case 402: { ArrayList list = New402(); Push(GoTo(102), list); } break; case 403: { ArrayList list = New403(); Push(GoTo(103), list); } break; case 404: { ArrayList list = New404(); Push(GoTo(103), list); } break; case 405: { ArrayList list = New405(); Push(GoTo(104), list); } break; case 406: { ArrayList list = New406(); Push(GoTo(104), list); } break; case 407: { ArrayList list = New407(); Push(GoTo(104), list); } break; case 408: { ArrayList list = New408(); Push(GoTo(104), list); } break; case 409: { ArrayList list = New409(); Push(GoTo(104), list); } break; case 410: { ArrayList list = New410(); Push(GoTo(104), list); } break; case 411: { ArrayList list = New411(); Push(GoTo(104), list); } break; case 412: { ArrayList list = New412(); Push(GoTo(104), list); } break; case 413: { ArrayList list = New413(); Push(GoTo(104), list); } break; case 414: { ArrayList list = New414(); Push(GoTo(104), list); } break; case 415: { ArrayList list = New415(); Push(GoTo(104), list); } break; case 416: { ArrayList list = New416(); Push(GoTo(104), list); } break; case 417: { ArrayList list = New417(); Push(GoTo(104), list); } break; case 418: { ArrayList list = New418(); Push(GoTo(104), list); } break; case 419: { ArrayList list = New419(); Push(GoTo(104), list); } break; case 420: { ArrayList list = New420(); Push(GoTo(104), list); } break; case 421: { ArrayList list = New421(); Push(GoTo(105), list); } break; case 422: { ArrayList list = New422(); Push(GoTo(105), list); } break; case 423: { ArrayList list = New423(); Push(GoTo(105), list); } break; case 424: { ArrayList list = New424(); Push(GoTo(105), list); } break; case 425: { ArrayList list = New425(); Push(GoTo(105), list); } break; case 426: { ArrayList list = New426(); Push(GoTo(105), list); } break; case 427: { ArrayList list = New427(); Push(GoTo(105), list); } break; case 428: { ArrayList list = New428(); Push(GoTo(105), list); } break; case 429: { ArrayList list = New429(); Push(GoTo(105), list); } break; case 430: { ArrayList list = New430(); Push(GoTo(105), list); } break; case 431: { ArrayList list = New431(); Push(GoTo(105), list); } break; case 432: { ArrayList list = New432(); Push(GoTo(105), list); } break; case 433: { ArrayList list = New433(); Push(GoTo(105), list); } break; case 434: { ArrayList list = New434(); Push(GoTo(106), list); } break; case 435: { ArrayList list = New435(); Push(GoTo(106), list); } break; case 436: { ArrayList list = New436(); Push(GoTo(106), list); } break; case 437: { ArrayList list = New437(); Push(GoTo(106), list); } break; case 438: { ArrayList list = New438(); Push(GoTo(106), list); } break; case 439: { ArrayList list = New439(); Push(GoTo(106), list); } break; case 440: { ArrayList list = New440(); Push(GoTo(106), list); } break; case 441: { ArrayList list = New441(); Push(GoTo(106), list); } break; case 442: { ArrayList list = New442(); Push(GoTo(106), list); } break; case 443: { ArrayList list = New443(); Push(GoTo(106), list); } break; case 444: { ArrayList list = New444(); Push(GoTo(106), list); } break; case 445: { ArrayList list = New445(); Push(GoTo(106), list); } break; case 446: { ArrayList list = New446(); Push(GoTo(106), list); } break; case 447: { ArrayList list = New447(); Push(GoTo(106), list); } break; case 448: { ArrayList list = New448(); Push(GoTo(107), list); } break; case 449: { ArrayList list = New449(); Push(GoTo(107), list); } break; case 450: { ArrayList list = New450(); Push(GoTo(107), list); } break; case 451: { ArrayList list = New451(); Push(GoTo(107), list); } break; case 452: { ArrayList list = New452(); Push(GoTo(107), list); } break; case 453: { ArrayList list = New453(); Push(GoTo(108), list); } break; case 454: { ArrayList list = New454(); Push(GoTo(108), list); } break; case 455: { ArrayList list = New455(); Push(GoTo(108), list); } break; case 456: { ArrayList list = New456(); Push(GoTo(108), list); } break; case 457: { ArrayList list = New457(); Push(GoTo(108), list); } break; case 458: { ArrayList list = New458(); Push(GoTo(109), list); } break; case 459: { ArrayList list = New459(); Push(GoTo(110), list); } break; case 460: { ArrayList list = New460(); Push(GoTo(110), list); } break; case 461: { ArrayList list = New461(); Push(GoTo(110), list); } break; case 462: { ArrayList list = New462(); Push(GoTo(111), list); } break; case 463: { ArrayList list = New463(); Push(GoTo(111), list); } break; case 464: { ArrayList list = New464(); Push(GoTo(111), list); } break; case 465: { ArrayList list = New465(); Push(GoTo(111), list); } break; case 466: { ArrayList list = New466(); Push(GoTo(111), list); } break; case 467: { ArrayList list = New467(); Push(GoTo(111), list); } break; case 468: { ArrayList list = New468(); Push(GoTo(111), list); } break; case 469: { ArrayList list = New469(); Push(GoTo(111), list); } break; case 470: { ArrayList list = New470(); Push(GoTo(111), list); } break; case 471: { ArrayList list = New471(); Push(GoTo(111), list); } break; case 472: { ArrayList list = New472(); Push(GoTo(111), list); } break; case 473: { ArrayList list = New473(); Push(GoTo(111), list); } break; case 474: { ArrayList list = New474(); Push(GoTo(111), list); } break; case 475: { ArrayList list = New475(); Push(GoTo(111), list); } break; case 476: { ArrayList list = New476(); Push(GoTo(111), list); } break; case 477: { ArrayList list = New477(); Push(GoTo(111), list); } break; case 478: { ArrayList list = New478(); Push(GoTo(112), list); } break; case 479: { ArrayList list = New479(); Push(GoTo(112), list); } break; case 480: { ArrayList list = New480(); Push(GoTo(112), list); } break; case 481: { ArrayList list = New481(); Push(GoTo(112), list); } break; case 482: { ArrayList list = New482(); Push(GoTo(113), list); } break; case 483: { ArrayList list = New483(); Push(GoTo(113), list); } break; case 484: { ArrayList list = New484(); Push(GoTo(113), list); } break; case 485: { ArrayList list = New485(); Push(GoTo(114), list); } break; case 486: { ArrayList list = New486(); Push(GoTo(114), list); } break; case 487: { ArrayList list = New487(); Push(GoTo(114), list); } break; case 488: { ArrayList list = New488(); Push(GoTo(115), list); } break; case 489: { ArrayList list = New489(); Push(GoTo(115), list); } break; case 490: { ArrayList list = New490(); Push(GoTo(115), list); } break; case 491: { ArrayList list = New491(); Push(GoTo(115), list); } break; case 492: { ArrayList list = New492(); Push(GoTo(115), list); } break; case 493: { ArrayList list = New493(); Push(GoTo(116), list); } break; case 494: { ArrayList list = New494(); Push(GoTo(116), list); } break; case 495: { ArrayList list = New495(); Push(GoTo(116), list); } break; case 496: { ArrayList list = New496(); Push(GoTo(117), list); } break; case 497: { ArrayList list = New497(); Push(GoTo(117), list); } break; case 498: { ArrayList list = New498(); Push(GoTo(118), list); } break; case 499: { ArrayList list = New499(); Push(GoTo(118), list); } break; case 500: { ArrayList list = New500(); Push(GoTo(119), list); } break; case 501: { ArrayList list = New501(); Push(GoTo(119), list); } break; case 502: { ArrayList list = New502(); Push(GoTo(120), list); } break; case 503: { ArrayList list = New503(); Push(GoTo(120), list); } break; case 504: { ArrayList list = New504(); Push(GoTo(121), list); } break; case 505: { ArrayList list = New505(); Push(GoTo(121), list); } break; case 506: { ArrayList list = New506(); Push(GoTo(122), list); } break; case 507: { ArrayList list = New507(); Push(GoTo(122), list); } break; case 508: { ArrayList list = New508(); Push(GoTo(123), list); } break; case 509: { ArrayList list = New509(); Push(GoTo(123), list); } break; case 510: { ArrayList list = New510(); Push(GoTo(123), list); } break; case 511: { ArrayList list = New511(); Push(GoTo(123), list); } break; case 512: { ArrayList list = New512(); Push(GoTo(123), list); } break; case 513: { ArrayList list = New513(); Push(GoTo(123), list); } break; case 514: { ArrayList list = New514(); Push(GoTo(123), list); } break; case 515: { ArrayList list = New515(); Push(GoTo(123), list); } break; case 516: { ArrayList list = New516(); Push(GoTo(123), list); } break; case 517: { ArrayList list = New517(); Push(GoTo(124), list); } break; case 518: { ArrayList list = New518(); Push(GoTo(124), list); } break; case 519: { ArrayList list = New519(); Push(GoTo(124), list); } break; case 520: { ArrayList list = New520(); Push(GoTo(124), list); } break; case 521: { ArrayList list = New521(); Push(GoTo(124), list); } break; case 522: { ArrayList list = New522(); Push(GoTo(124), list); } break; case 523: { ArrayList list = New523(); Push(GoTo(124), list); } break; case 524: { ArrayList list = New524(); Push(GoTo(124), list); } break; case 525: { ArrayList list = New525(); Push(GoTo(124), list); } break; case 526: { ArrayList list = New526(); Push(GoTo(124), list); } break; case 527: { ArrayList list = New527(); Push(GoTo(124), list); } break; case 528: { ArrayList list = New528(); Push(GoTo(124), list); } break; case 529: { ArrayList list = New529(); Push(GoTo(124), list); } break; case 530: { ArrayList list = New530(); Push(GoTo(124), list); } break; case 531: { ArrayList list = New531(); Push(GoTo(124), list); } break; case 532: { ArrayList list = New532(); Push(GoTo(124), list); } break; case 533: { ArrayList list = New533(); Push(GoTo(124), list); } break; case 534: { ArrayList list = New534(); Push(GoTo(124), list); } break; case 535: { ArrayList list = New535(); Push(GoTo(124), list); } break; case 536: { ArrayList list = New536(); Push(GoTo(124), list); } break; case 537: { ArrayList list = New537(); Push(GoTo(124), list); } break; case 538: { ArrayList list = New538(); Push(GoTo(124), list); } break; case 539: { ArrayList list = New539(); Push(GoTo(124), list); } break; case 540: { ArrayList list = New540(); Push(GoTo(124), list); } break; case 541: { ArrayList list = New541(); Push(GoTo(124), list); } break; case 542: { ArrayList list = New542(); Push(GoTo(124), list); } break; case 543: { ArrayList list = New543(); Push(GoTo(124), list); } break; case 544: { ArrayList list = New544(); Push(GoTo(124), list); } break; case 545: { ArrayList list = New545(); Push(GoTo(124), list); } break; case 546: { ArrayList list = New546(); Push(GoTo(124), list); } break; case 547: { ArrayList list = New547(); Push(GoTo(124), list); } break; case 548: { ArrayList list = New548(); Push(GoTo(125), list); } break; case 549: { ArrayList list = New549(); Push(GoTo(125), list); } break; case 550: { ArrayList list = New550(); Push(GoTo(126), list); } break; case 551: { ArrayList list = New551(); Push(GoTo(126), list); } break; case 552: { ArrayList list = New552(); Push(GoTo(127), list); } break; case 553: { ArrayList list = New553(); Push(GoTo(127), list); } break; case 554: { ArrayList list = New554(); Push(GoTo(128), list); } break; case 555: { ArrayList list = New555(); Push(GoTo(128), list); } break; case 556: { ArrayList list = New556(); Push(GoTo(129), list); } break; case 557: { ArrayList list = New557(); Push(GoTo(129), list); } break; case 558: { ArrayList list = New558(); Push(GoTo(130), list); } break; case 559: { ArrayList list = New559(); Push(GoTo(130), list); } break; case 560: { ArrayList list = New560(); Push(GoTo(130), list); } break; case 561: { ArrayList list = New561(); Push(GoTo(130), list); } break; case 562: { ArrayList list = New562(); Push(GoTo(131), list); } break; case 563: { ArrayList list = New563(); Push(GoTo(132), list); } break; case 564: { ArrayList list = New564(); Push(GoTo(132), list); } break; case 565: { ArrayList list = New565(); Push(GoTo(132), list); } break; case 566: { ArrayList list = New566(); Push(GoTo(132), list); } break; case 567: { ArrayList list = New567(); Push(GoTo(132), list); } break; case 568: { ArrayList list = New568(); Push(GoTo(132), list); } break; case 569: { ArrayList list = New569(); Push(GoTo(133), list); } break; case 570: { ArrayList list = New570(); Push(GoTo(133), list); } break; case 571: { ArrayList list = New571(); Push(GoTo(134), list); } break; case 572: { ArrayList list = New572(); Push(GoTo(134), list); } break; case 573: { ArrayList list = New573(); Push(GoTo(134), list); } break; case 574: { ArrayList list = New574(); Push(GoTo(134), list); } break; case 575: { ArrayList list = New575(); Push(GoTo(134), list); } break; case 576: { ArrayList list = New576(); Push(GoTo(134), list); } break; case 577: { ArrayList list = New577(); Push(GoTo(134), list); } break; case 578: { ArrayList list = New578(); Push(GoTo(134), list); } break; case 579: { ArrayList list = New579(); Push(GoTo(134), list); } break; case 580: { ArrayList list = New580(); Push(GoTo(134), list); } break; case 581: { ArrayList list = New581(); Push(GoTo(134), list); } break; case 582: { ArrayList list = New582(); Push(GoTo(134), list); } break; case 583: { ArrayList list = New583(); Push(GoTo(134), list); } break; case 584: { ArrayList list = New584(); Push(GoTo(134), list); } break; case 585: { ArrayList list = New585(); Push(GoTo(134), list); } break; case 586: { ArrayList list = New586(); Push(GoTo(134), list); } break; case 587: { ArrayList list = New587(); Push(GoTo(134), list); } break; case 588: { ArrayList list = New588(); Push(GoTo(134), list); } break; case 589: { ArrayList list = New589(); Push(GoTo(134), list); } break; case 590: { ArrayList list = New590(); Push(GoTo(134), list); } break; case 591: { ArrayList list = New591(); Push(GoTo(134), list); } break; case 592: { ArrayList list = New592(); Push(GoTo(134), list); } break; case 593: { ArrayList list = New593(); Push(GoTo(134), list); } break; case 594: { ArrayList list = New594(); Push(GoTo(135), list); } break; case 595: { ArrayList list = New595(); Push(GoTo(135), list); } break; case 596: { ArrayList list = New596(); Push(GoTo(136), list); } break; case 597: { ArrayList list = New597(); Push(GoTo(136), list); } break; case 598: { ArrayList list = New598(); Push(GoTo(137), list); } break; case 599: { ArrayList list = New599(); Push(GoTo(137), list); } break; case 600: { ArrayList list = New600(); Push(GoTo(138), list); } break; case 601: { ArrayList list = New601(); Push(GoTo(138), list); } break; case 602: { ArrayList list = New602(); Push(GoTo(139), list); } break; case 603: { ArrayList list = New603(); Push(GoTo(139), list); } break; case 604: { ArrayList list = New604(); Push(GoTo(140), list); } break; case 605: { ArrayList list = New605(); Push(GoTo(140), list); } break; case 606: { ArrayList list = New606(); Push(GoTo(141), list); } break; case 607: { ArrayList list = New607(); Push(GoTo(141), list); } break; case 608: { ArrayList list = New608(); Push(GoTo(142), list); } break; case 609: { ArrayList list = New609(); Push(GoTo(142), list); } break; } break; case ACCEPT: { EOF node2 = (EOF) lexer.Next(); PSourceFile node1 = (PSourceFile) ((ArrayList)Pop())[0]; Start node = new Start(node1, node2); return node; } case ERROR: throw new ParserException(last_token, "[" + last_line + "," + last_pos + LocRM.GetString("ErrorText220") + errorMessages[errors[action[1]]]); } } }
public Error(Token pos, AASourceFile sourceFile, string message, bool warning = false, params TreeNode[] children) { this.pos = new TextPoint(pos.Line - 1, pos.Pos - 1); FileName = sourceFile == null || sourceFile.GetName() == null ? "Library file" : sourceFile.GetName().Text; Message = message; Warning = warning; Text = ToString(); if (children.Length > 0) Nodes.AddRange(children); SelectedImageIndex = ImageIndex = warning ? 1 : 0; }
public Error(Token pos, string message, bool warning = false, params TreeNode[] children) : this(pos, Util.GetAncestor<AASourceFile>(pos), message, warning, children) { }
public Error(Token pos, string fileName, string message, bool warning = false) { this.pos = new TextPoint(pos.Line - 1, pos.Pos - 1); FileName = fileName; Message = message; Warning = warning; Text = ToString(); SelectedImageIndex = ImageIndex = warning ? 1 : 0; }