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);
 }
Пример #3
0
 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);
 }