Esempio n. 1
0
 ///--------------------------------------------------------------------------------
 /// <summary>This method sets up the AST node and its children in the AST.</summary>
 ///
 /// <param name="context">The parsing context.</param>
 /// <param name="treeNode">The corresponding node in the parse tree.</param>
 ///--------------------------------------------------------------------------------
 public override void Init(ParsingContext context, ParseTreeNode treeNode)
 {
     try
     {
         base.Init(context, treeNode);
         foreach (ParseTreeNode node in treeNode.ChildNodes)
         {
             if (node.AstNode is ModelPropertyNode)
             {
                 ModelProperty = node.AstNode as ModelPropertyNode;
                 ChildNodes.Add(node.AstNode as ModelPropertyNode);
             }
             else if (node.AstNode is LiteralNode)
             {
                 Literal = node.AstNode as LiteralNode;
                 ChildNodes.Add(node.AstNode as LiteralNode);
             }
             else if (node.AstNode is MathOperatorNode)
             {
                 MathOperator = node.AstNode as MathOperatorNode;
                 ChildNodes.Add(node.AstNode as MathOperatorNode);
             }
             else if (node.AstNode is ParameterNode)
             {
                 if (Parameter1 == null)
                 {
                     Parameter1 = node.AstNode as ParameterNode;
                     ChildNodes.Add(node.AstNode as ParameterNode);
                 }
                 else if (Parameter2 == null)
                 {
                     Parameter2 = node.AstNode as ParameterNode;
                     ChildNodes.Add(node.AstNode as ParameterNode);
                 }
             }
         }
     }
     catch (ApplicationAbortException)
     {
         throw;
     }
     catch (System.Exception ex)
     {
         ThrowASTException(ex, true);
     }
 }
 ///--------------------------------------------------------------------------------
 /// <summary>This method sets up the AST node and its children in the AST.</summary>
 ///
 /// <param name="context">The parsing context.</param>
 /// <param name="treeNode">The corresponding node in the parse tree.</param>
 ///--------------------------------------------------------------------------------
 public override void Init(ParsingContext context, ParseTreeNode treeNode)
 {
     try
     {
         base.Init(context, treeNode);
         foreach (ParseTreeNode node in treeNode.ChildNodes)
         {
             if (node.AstNode is LiteralNode)
             {
                 Literal = node.AstNode as LiteralNode;
                 ChildNodes.Add(node.AstNode as LiteralNode);
             }
             else if (node.AstNode is ModelPropertyNode)
             {
                 ModelProperty = node.AstNode as ModelPropertyNode;
                 ChildNodes.Add(node.AstNode as ModelPropertyNode);
             }
             else if (node.AstNode is ModelContextNode)
             {
                 ModelContext = node.AstNode as ModelContextNode;
                 ChildNodes.Add(node.AstNode as ModelContextNode);
             }
             else if (node.AstNode is CurrentItemNode)
             {
                 CurrentItem = node.AstNode as CurrentItemNode;
                 ChildNodes.Add(node.AstNode as CurrentItemNode);
             }
             else if (node.AstNode is SpecCurrentItemNode)
             {
                 SpecCurrentItem = node.AstNode as SpecCurrentItemNode;
                 ChildNodes.Add(node.AstNode as SpecCurrentItemNode);
             }
             else if (node.AstNode is ExpressionNode)
             {
                 if (Expression1 == null)
                 {
                     Expression1 = node.AstNode as ExpressionNode;
                 }
                 else
                 {
                     Expression2 = node.AstNode as ExpressionNode;
                 }
                 ChildNodes.Add(node.AstNode as ExpressionNode);
             }
             else if (node.AstNode is BinaryOperatorNode)
             {
                 BinaryOperator = node.AstNode as BinaryOperatorNode;
                 ChildNodes.Add(node.AstNode as BinaryOperatorNode);
             }
             else if (node.AstNode is MathOperatorNode)
             {
                 MathOperator = node.AstNode as MathOperatorNode;
                 ChildNodes.Add(node.AstNode as MathOperatorNode);
             }
         }
     }
     catch (ApplicationAbortException)
     {
         throw;
     }
     catch (System.Exception ex)
     {
         ThrowASTException(ex, true);
     }
 }