public EnrichmentDescription(AEnrichmentDecl structDecl) { Parser parser = new Parser(structDecl); Fields = parser.Fields; Methods = parser.Methods; Constructors = parser.Constructors; Deconstructors = parser.Deconstructors; LineFrom = structDecl.GetToken().Line; LineTo = structDecl.GetEndToken().Line; type = structDecl.GetType(); type.Parent().RemoveChild(type); IsClass = structDecl.GetDimention() != null; Position = TextPoint.FromCompilerCoords(structDecl.GetToken()); }
public override void CaseAEnrichmentDecl(AEnrichmentDecl node) { if (node.GetDimention() != null) { bool prevFolding = folding; int prevValue = value; bool wasANewExp = isANewExp; folding = true; value = 0; node.GetDimention().Apply(this); node.SetIntDim(new TIntegerLiteral(value.ToString())); folding = prevFolding; value = prevValue; isANewExp = wasANewExp; } base.CaseAEnrichmentDecl(node); }
public override void CaseAEnrichmentDecl(AEnrichmentDecl node) { InAEnrichmentDecl(node); { Object[] temp = new Object[node.GetDecl().Count]; node.GetDecl().CopyTo(temp, 0); for (int i = temp.Length - 1; i >= 0; i--) { ((PDecl)temp[i]).Apply(this); } } if (node.GetType() != null) { node.GetType().Apply(this); } if (node.GetEndToken() != null) { node.GetEndToken().Apply(this); } if (node.GetIntDim() != null) { node.GetIntDim().Apply(this); } if (node.GetDimention() != null) { node.GetDimention().Apply(this); } if (node.GetToken() != null) { node.GetToken().Apply(this); } OutAEnrichmentDecl(node); }
public override void CaseAEnrichmentDecl(AEnrichmentDecl node) { if (node.GetDimention() != null && !data.IsLiteCompile) { //Find int dim foldIntegerConstants = true; isInANewExp = true;//If false, we dont require a value node.GetDimention().Apply(this); isInANewExp = false; foldIntegerConstants = false; if (foldingFailed) { errors.Add(new ErrorCollection.Error(node.GetToken(), LocRM.GetString("ErrorText167"))); throw new ParserException(node.GetToken(), "TypeLinking.CaseAStructDecl"); } node.SetIntDim(new TIntegerLiteral(integerConstant.ToString())); } base.CaseAEnrichmentDecl(node); }