///-------------------------------------------------------------------------------- /// <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); } }