Exemplo n.º 1
0
 public SyntaxTreeConfiguration()
 {
     NodeTypeGroupList = new NodeTypeGoupList();
 }
Exemplo n.º 2
0
 /// <summary>
 /// Initialize the configuration
 /// </summary>
 public void Initialize()
 {
     NodeTypeGroupList = new NodeTypeGoupList
     {
         new NodeTypeGroup
         {
             Name = "High Level Node Types",
             NodeTypeList =
             new List<NodeBoolPair>
             {
                  new NodeBoolPair(NodeType.CompilationUnit,  true),
                  new NodeBoolPair(NodeType.SimpleProgram,  true),
                  new NodeBoolPair(NodeType.MultiFunctionalProgram, true),
                  new NodeBoolPair(NodeType.ImportDeclarations, true),
                  new NodeBoolPair(NodeType.TypeDeclarations, true),
                  new NodeBoolPair(NodeType.GlobalVariableDeclarations, true),
                  new NodeBoolPair(NodeType.StructDeclaration, true),
                  new NodeBoolPair(NodeType.MemberDeclaration, true),
                  new NodeBoolPair(NodeType.FunctionDeclarations, true),
                  new NodeBoolPair(NodeType.FunctionDeclaration, true),
                  new NodeBoolPair(NodeType.FormalParameterList, true),
                  new NodeBoolPair(NodeType.FormalParameter, true)
             }
         },
         new NodeTypeGroup
         {
             Name = "LoopStatements",
             NodeTypeList =
             new List<NodeBoolPair>
             {
                  new NodeBoolPair(NodeType.PForStatement, true),
                  new NodeBoolPair(NodeType.ForStatement, true),
                  new NodeBoolPair(NodeType.ForCondition, true),
                  new NodeBoolPair(NodeType.ForInitialization, true),
                  new NodeBoolPair(NodeType.ForUpdate, true),
                  new NodeBoolPair(NodeType.DoStatement, true),
                  new NodeBoolPair(NodeType.WhileStatement, true),
                  new NodeBoolPair(NodeType.PForEachStatement, true),
                  new NodeBoolPair(NodeType.ForEachStatement, true),
                  new NodeBoolPair(NodeType.ForEachInitialization, true),
                  new NodeBoolPair(NodeType.ForEachCollectionExpression, true),
                  new NodeBoolPair(NodeType.LoopStatement, true),
                  new NodeBoolPair(NodeType.LoopInitialization, true),
                  new NodeBoolPair(NodeType.LoopLimit, true),
                  new NodeBoolPair(NodeType.Condition, true),
                  new NodeBoolPair(NodeType.Core, true)
             }
         },
         new NodeTypeGroup
         {
             Name = "OtherStatements",
             NodeTypeList =
             new List<NodeBoolPair>
             {
                  new NodeBoolPair(NodeType.Block, true),
                  new NodeBoolPair(NodeType.Statement, true),
                  new NodeBoolPair(NodeType.IfStatement, true),
                  new NodeBoolPair(NodeType.IfBranch, true),
                  new NodeBoolPair(NodeType.ElseIfBranches, true),
                  new NodeBoolPair(NodeType.ConditionalBranch, true),
                  new NodeBoolPair(NodeType.ElseBranch, true),
                  new NodeBoolPair(NodeType.PDoStatement, true),
                  new NodeBoolPair(NodeType.AsynStatement, true),
                  new NodeBoolPair(NodeType.LockStatement, true),
                  new NodeBoolPair(NodeType.ReturnStatement, true),
                  new NodeBoolPair(NodeType.Return, true),
                  new NodeBoolPair(NodeType.Break, true),
                  new NodeBoolPair(NodeType.ExpressionStatement, true),
                  new NodeBoolPair(NodeType.VariableDeclarationStatement, true),
                  new NodeBoolPair(NodeType.VariableInitialization, true),
                  new NodeBoolPair(NodeType.VariableDeclaration, true)
             }
         },
         new NodeTypeGroup
         {
             Name = "Literals",
             NodeTypeList =
             new List<NodeBoolPair>
             {
                  new NodeBoolPair(NodeType.CharLiteral, true),
                  new NodeBoolPair(NodeType.StringLiteral, true),
                  new NodeBoolPair(NodeType.IntLiteral, true),
                  new NodeBoolPair(NodeType.DecimalLiteral, true),
                  new NodeBoolPair(NodeType.BoolLiteral, true),
                  new NodeBoolPair(NodeType.NullLiteral, true),
                  new NodeBoolPair(NodeType.InfinityLiteral, true)
             }
         },
         new NodeTypeGroup
         {
             Name = "Operators",
             NodeTypeList =
             new List<NodeBoolPair>
             {
                  new NodeBoolPair(NodeType.AssignmentOp, true),
                  new NodeBoolPair(NodeType.LogicalOrOp, true),
                  new NodeBoolPair(NodeType.LogicalAndOp, true),
                  new NodeBoolPair(NodeType.EqualityOp, true),
                  new NodeBoolPair(NodeType.RelationOp, true),
                  new NodeBoolPair(NodeType.AdditiveOp, true),
                  new NodeBoolPair(NodeType.MultiplicativeOp, true),
                  new NodeBoolPair(NodeType.UnaryOp, true)
             }
         },
         new NodeTypeGroup
         {
             Name = "Expressions",
             NodeTypeList =
             new List<NodeBoolPair>
             {
                  new NodeBoolPair(NodeType.Expression, true),
                  new NodeBoolPair(NodeType.Cast, true),
                  new NodeBoolPair(NodeType.PrefixUnaryOperation, true),
                  new NodeBoolPair(NodeType.Selector, true),
                  new NodeBoolPair(NodeType.MemberSelect, true),
                  new NodeBoolPair(NodeType.FunctionCall, true),
                  new NodeBoolPair(NodeType.MemberFunctionCall, true),
                  new NodeBoolPair(NodeType.Arguments, true),
                  new NodeBoolPair(NodeType.Indexing, true),
             }
         },
         new NodeTypeGroup
         {
             Name = "Other",
             NodeTypeList =
             new List<NodeBoolPair>
             {
                  new NodeBoolPair(NodeType.Identifier, true),
                  new NodeBoolPair(NodeType.DimensionMarker, true),
                  new NodeBoolPair(NodeType.DataTypeName, true),
                  new NodeBoolPair(NodeType.DataType, true),
                  new NodeBoolPair(NodeType.Type, true),
                  new NodeBoolPair(NodeType.Reference, true)
             }
         }
     };
 }
Exemplo n.º 3
0
 /// <summary>
 /// Load the configuration from file.
 /// If file does not exist initialize the configuration with default daten.
 /// </summary>
 /// <param name="fileName">The file where the configuration is stored.</param>
 public void Load(string fileName)
 {
     if (!File.Exists(fileName))
         Initialize();
     else
         NodeTypeGroupList = new ConfigSerializer().Load(fileName);
 }