protected override void Expand(Node node)
        {
            var best = new Node(null, int.MaxValue, 0);

            var node1 = AddNode(node, (-1, 0));
            var node2 = AddNode(node, (1, 0));
            var node3 = AddNode(node, (0, -1));
            var node4 = AddNode(node, (0, 1));

            if (node1 != null && node1.H < best.H)
            {
                best = node1;
            }
            if (node2 != null && node2.H < best.H)
            {
                best = node2;
            }
            if (node3 != null && node3.H < best.H)
            {
                best = node3;
            }
            if (node4 != null && node4.H < best.H)
            {
                best = node4;
            }

            if (best.Board != null)
            {
                _nextNode = best;
            }
            else
            {
                _nextNode = null;
            }
        }
Example #2
0
 protected override void Expand(Node node)
 {
     AddNode(node, (-1, 0));
     AddNode(node, (1, 0));
     AddNode(node, (0, -1));
     AddNode(node, (0, 1));
 }
        public void Visit(AddNode node)
        {
            var right = Nodes.Pop();
            var left  = Nodes.Pop();

            Nodes.Push(new AddNode(left, right));
        }
        public AddNode Plus()
        {
            AddNode addNode = new AddNode();

            Match(TokenType.PLUS);
            return(addNode);
        }
Example #5
0
        public override ASTNode VisitArithmetic([NotNull] CoolParser.ArithmeticContext context)
        {
            ArithmeticOperation operators;

            switch (context.op.Text)
            {
            case "*":
                operators = new MulNode(context);
                break;

            case "/":
                operators = new DivNode(context);
                break;

            case "+":
                operators = new AddNode(context);
                break;

            case "-":
                operators = new SubNode(context);
                break;

            default:
                throw new NotSupportedException();
            }

            operators.LeftOperand  = Visit(context.expression(0)) as ExpressionNode;     // LEFT EXPRESSION
            operators.RightOperand = Visit(context.expression(1)) as ExpressionNode;     //RIGHT EXPRESSION

            return(operators);
        }
Example #6
0
        private ExpressionNode EP(ExpressionNode param)
        {
            if (currentToken.Type == TokenTypes.Sum)
            {
                currentToken = lexer.GetNextToken();
                var tValue = T();
                var node   = new AddNode {
                    LeftOperand = param, RightOperand = tValue
                };

                return(EP(node));
            }
            else if (currentToken.Type == TokenTypes.Sub)
            {
                currentToken = lexer.GetNextToken();
                var tValue = T();
                var node   = new SubNode {
                    LeftOperand = param, RightOperand = tValue
                };

                return(EP(node));
            }
            else
            {
                return(param);
            }
        }
Example #7
0
        private static (EquationNode part1, EquationNode part2) GenerateEquationTrees(IList <string> equation)
        {
            var(lhs1, lhs2) = GetNextNode(equation);

            while (equation.Count > 0)
            {
                var op = GetNextOpCode(equation);
                var(rhs1, rhs2) = GetNextNode(equation);

                switch (op)
                {
                case "*":
                    lhs1 = new MultNode(lhs1, rhs1);
                    lhs2 = new MultNode(lhs2, rhs2);
                    break;

                case "+":
                    lhs1 = new AddNode(lhs1, rhs1);

                    if (!lhs2.IsBracketNode && lhs2.GetType() == typeof(MultNode))
                    {
                        var multNode = (MultNode)lhs2;
                        multNode.Rhs = new AddNode(multNode.Rhs, rhs2);
                    }
                    else
                    {
                        lhs2 = new AddNode(lhs2, rhs2);
                    }
                    break;
                }
            }

            return(lhs1, lhs2);
        }
Example #8
0
        public override NodeViewModel CreateModel()
        {
            CombinerNode result = null;

            switch (combineType)
            {
            case CombinerType.Add:
                result = new AddNode();
                break;

            case CombinerType.Max:
                result = new MaxNode();
                break;

            case CombinerType.Min:
                result = new MinNode();
                break;

            case CombinerType.Multiply:
                result = new MultiplyNode();
                break;

            case CombinerType.Power:
                result = new PowerNode();
                break;
            }

            result.Name     = name;
            result.Position = pos;

            return(result);
        }
Example #9
0
        private AstNode Expression()
        {
            // EXPRESSION = TERM (ADD | SUBTRACT TERM)* (COMPARISON TERM)

            var node = Term();

            var ops = new[] { Tokens.Add, Tokens.Subtract };

            while (ops.Contains(_currentToken.Type))
            {
                var token = _currentToken;
                Eat(token.Type);
                if (token.Type == Tokens.Add)
                {
                    node = new AddNode(node, Term());
                }
                else if (token.Type == Tokens.Subtract)
                {
                    node = new SubtractNode(node, Term());
                }
            }

            if (Tokens.IsComparison(_currentToken.Type))
            {
                var token = _currentToken;
                if (token.Type == Tokens.Equal)
                {
                    Eat(Tokens.Equal);
                    node = new EqualToNode(node, Term());
                }
                else if (token.Type == Tokens.NotEqual)
                {
                    Eat(Tokens.NotEqual);
                    node = new NotEqualToNode(node, Term());
                }
                else if (token.Type == Tokens.GreaterThan)
                {
                    Eat(Tokens.GreaterThan);
                    node = new GreaterThanNode(node, Term());
                }
                else if (token.Type == Tokens.GreaterThanOrEqualTo)
                {
                    Eat(Tokens.GreaterThanOrEqualTo);
                    node = new GreaterThanOrEqualToNode(node, Term());
                }
                else if (token.Type == Tokens.LessThan)
                {
                    Eat(Tokens.LessThan);
                    node = new LessThanNode(node, Term());
                }
                else if (token.Type == Tokens.LessThanOrEqualTo)
                {
                    Eat(Tokens.LessThanOrEqualTo);
                    node = new LessThanOrEqualToNode(node, Term());
                }
            }

            return(node);
        }
        public void AddSourceFilesWithGlob_UpdatesState()
        {
            var files = new List <string> {
                TEST_DIR + "*"
            };
            var node = new AddNode(FileType.SOURCE, files);

            Assert.True(node.Accept(visitor));
            Assert.True(files.SequenceEqual(state.SourceFiles), ExpectedEqualSequencesMessage(files, state.SourceFiles));
        }
        public void AddNode()
        {
            int
                val1   = 10,
                val2   = 20,
                result = val1 + val2;
            var node   = new AddNode(new ConstantNode(val1), new ConstantNode(val2));

            Assert.AreEqual(node.Value, result);
        }
Example #12
0
        /// <summary>
        /// Attempts to add or remove a node from the addnode list.
        ///Or try a connection to a node once.
        ///Nodes added using addnode (or -connect) are protected from DoS disconnection and are not required to be
        ///full nodes/support SegWit as other outbound peers are(though such peers will not be synced from).
        /// </summary>
        /// <param name="node">The node.</param>
        /// <param name="command">'add' to add a node to the list, 'remove' to remove a node from the list, 'onetry' to try a connection to the node once.</param>
        /// <returns></returns>
        public async Task <string> AddNode(string node, NodeCommand command)
        {
            AddNode addNode = new AddNode()
            {
                Node = node, NodeCommand = command
            };
            string response = await httpRequest.SendReq(MethodName.addnode, addNode);

            return(response);
        }
Example #13
0
        public async Task AddTest()
        {
            //var orderInfo = new OrderInfo();
            var addReq = new AddOrderReq
            {
                coupon_id  = "coupon100",
                title      = "²âÊÔ¶©µ¥",
                source_ids = "s_1"
            };

            var addNode = new AddNode();
            var idRes   = await addNode.Process(addReq, 0);
        }
Example #14
0
        public DomainId <IAstNode> CreateAdditionOperation(
            string definition,
            DomainId <ICalculationNode> leftExpression,
            DomainId <ICalculationNode> rightExpression)
        {
            var addNode = new AddNode(
                m_ids.Next,
                definition,
                leftExpression,
                rightExpression);

            return(DomainItemRegistration <IAddNode>(addNode));
        }
Example #15
0
        private object Visit(AddNode node)
        {
            dynamic left  = Visit(node.Left);
            dynamic right = Visit(node.Right);

            try
            {
                return(left + right);
            }
            catch (Exception error)
            {
                ReportError(error);
                return(null);
            }
        }
Example #16
0
        void SimExpr(out QueryNode node)
        {
            QueryNode term;

            Term(out term);
            node = term;
            while (la.kind == 8 || la.kind == 13)
            {
                AddOp();
                node = new AddNode();
                node.Add(term);
                Term(out term);
                node.Add(term);
            }
        }
Example #17
0
 /// <summary>
 /// Callback for the 'add node' context menu option.
 /// </summary>
 /// <param name="sender">Sender object.</param>
 /// <param name="args">Event data.</param>
 private void OnAddNode(object sender, EventArgs args)
 {
     try
     {
         // todo: set location to context menu location
         var node = new Node {
             Name = graphView.DirectedGraph.NextNodeID()
         };
         StateNode newNode = new StateNode(node);
         AddNode?.Invoke(this, new AddNodeEventArgs(newNode));
     }
     catch (Exception err)
     {
         ShowError(err);
     }
 }
        void GraphHelper_GraphPostLoadComplete()
        {
            _menu = new GenericMenu();

            GraphHelper.NodeRegister.ForEach(entry =>
            {
                // Format into a folder using slashes, if one is defined.
                var formattedName = entry.Folder != string.Empty ? string.Format("{0}/{1}", entry.Folder, entry.Name) : entry.Name;

                _menu.AddItem(new GUIContent(formattedName), false, () => AddNode.InvokeSafe(new AddNodeEvent(entry)));
            });

            _menu.AddSeparator("");

            _menu.AddItem(new GUIContent("Remove All Nodes"), false, () => ClearNodes.InvokeSafe());
        }
        public override bool Visit(AddNode addNode)
        {
            var successful = true;

            foreach (var fileGlob in addNode.FileGlobs)
            {
                if (!File.Exists(fileGlob))
                {
                    // TODO: We only support adding full paths for now
                    successful = false;
                    continue;
                }
                interpreterState.SourceFiles.Add(fileGlob);
                @out.Info("Added " + fileGlob + " to source");
            }
            return(successful);
        }
Example #20
0
        public void TestAddNode()
        {
            // Arrange
            var node1      = new ConstNode(5);
            var node2      = new ConstNode(4);
            var addNode    = new AddNode(node1, node2);
            var dictionary = new Dictionary <char, double>()
            {
                { 'x', 5 }
            };

            // Act
            var result = addNode.Eval(dictionary);

            // Assert
            Assert.Equal(9, result);
        }
Example #21
0
        public object Visit(AddNode node)
        {
            return(this.Calculate(node.Value1, node.Value2,
                                  (v1, v2) => v1 + v2,
                                  (v1, v2) => v1 + v2,
                                  HandleError));

            object HandleError(object v1, object v2, Exception exception)
            {
                if (v1 is string || v2 is string)
                {
                    return(ValueHelper.ToString(v1, _culture) + ValueHelper.ToString(v2, _culture));
                }

                throw new InvalidOperationException($"[{v1 ?? "(null)"} + {v2 ?? "(null)"}] failed!", exception);
            }
        }
Example #22
0
        public void Add(T value)
        {
            //First way: the Tree is empty.

            if (_head == null)
            {
                _head = new BinaryTreeNode <T>(value);
                AddNode?.Invoke("The Head created");
            }

            /*Second way: Tree is not empty, as result we use recursive
             * algoritm to find the place for adiing a new NODE*/
            else
            {
                AddTo(_head, value);
                AddNode?.Invoke("The Node added");
            }
            _count++;
        }
        public void MutFileMutlipleCommands_CorrectTree()
        {
            var mutFileText = "add test \"tst.cs\",'tst2.js' list test";
            var parser      = BuildParser(mutFileText);
            var tree        = parser.mutFile();
            var ast         = tree.Accept(new MutASTCreatorVisitor());

            var fileGlob = new List <string> {
                "\"tst.cs\"", "'tst2.js'"
            };
            var addCommand  = new AddNode(FileType.TEST, fileGlob);
            var listCommand = new ListNode(FileType.TEST);
            var commandList = new List <MutASTNode> {
                addCommand, listCommand
            };
            var mutFile = new MutFileNode(commandList);

            Assert.AreEqual(mutFile, ast);
        }
Example #24
0
        protected override AbstractMaterialNode CreateNode(ShaderGraphBuilder builder, MaterialExpressionAdd unrealNode)
        {
            var node = new AddNode()
            {
                previewExpanded = !unrealNode.Collapsed
            };

            if (unrealNode.A == null)
            {
                node.FindInputSlot <DynamicVectorMaterialSlot>(0).value = new Vector4(unrealNode.ConstA, 0);
            }

            if (unrealNode.B == null)
            {
                node.FindInputSlot <DynamicVectorMaterialSlot>(1).value = new Vector4(unrealNode.ConstB, 0);
            }

            return(node);
        }
Example #25
0
        public static void GraphTest()
        {
            var n      = new AddNode();
            var n2     = new NumberInputNode();
            var numer  = 152.2;
            var exNum  = new ExternalNumber(numer);
            var exData = new ExternalData(exNum);

            n2.ConnectToData(new List <ExternalData>()
            {
                exData
            });

            Print(n2.OutputSockets[0].Data);
            exNum.RequestChange(130);
            Print(n2.OutputSockets[0].Data);

            n.InputSockets[0].ConnectTo(n2.OutputSockets[0]);
        }
Example #26
0
File: U4Test.cs Project: mholub/u4
    // Use this for initialization
    void Start()
    {
        Patch p = new Patch();
        ValueNode<float> v1 = new ValueNode<float>();
        p.AddNode(v1);
        v1.Output.Value = 15;

        v2 = new ValueNode<float>();
        p.AddNode(v2);

        AddNode sum = new AddNode();
        p.AddNode(sum);

        p.Connect(v1.Output, sum.A);
        p.Connect(v2.Output, sum.B);

        patchEvaluator = new PatchEvaluator(p);
        patchEvaluator.Evaluate();
    }
Example #27
0
        public AstRoot Parse(ICollection <Token> tokens, ICollection <FunctionInfo> validFunctions)
        {
            if (tokens == null)
            {
                throw new ArgumentNullException(nameof(tokens));
            }
            IAstNode program = null;
            var      context = new ParserContext(tokens, validFunctions);

            while (!context.Stream.Eof)
            {
                IAstNode currInstr;
                if (TryParseTextBlock(context, out var textBlockInstr))
                {
                    currInstr = textBlockInstr;
                }
                else if (TryParseBindingBlock(context, out var stmtInstr))
                {
                    currInstr = stmtInstr;
                }
                else
                {
                    throw new ParserException("Syntax error!", context.Stream);
                }

                if (program != null)
                {
                    program = new AddNode(program, currInstr);
                }
                else
                {
                    program = currInstr;
                }
            }

            foreach (var token in tokens)
            {
                Debug.WriteLine(token);
            }
            return(new AstRoot(program));
        }
Example #28
0
        private void AddNodeMethod(MeshNode Pnode)
        {
            if (this.treeView1.InvokeRequired)
            {
                AddNode d = new AddNode(AddNodeMethod);
                this.Invoke(d, (object)Pnode);
            }
            else
            {
                if (this.treeView1.Nodes.Count > 0)
                {
                    TreeNode[] TempNodes = this.treeView1.Nodes.Find(Pnode.IpAddress, false);

                    if (TempNodes.Count() > 0)
                    {
                        if (!Pnode.MacAddress.Equals(TempNodes[0].Nodes[0].ToString()))
                        {
                            TreeNode UpdateNode = new TreeNode(Pnode.MacAddress);
                            TempNodes[0].Nodes.Clear();
                            TempNodes[0].Nodes.Add(UpdateNode);
                        }
                    }
                    else
                    {
                        TreeNode NewTreenode = this.treeView1.Nodes.Add(Pnode.IpAddress, Pnode.IpAddress);
                        TreeNode SubNode     = NewTreenode.Nodes.Add(Pnode.MacAddress, Pnode.MacAddress);
                    }
                }
                else
                {
                    TreeNode NewTreenode = this.treeView1.Nodes.Add(Pnode.IpAddress, Pnode.IpAddress);
                    TreeNode SubNode     = NewTreenode.Nodes.Add(Pnode.MacAddress, Pnode.MacAddress);
                }
            }


            // myListBox.Items.Add(myStr1 + myStr2);
            //AddNode myAddNodeDelegate = new AddNode(AddNodeMethod);
        }
Example #29
0
        private static void TestExpTree()
        {
            AddNode <Real> root = new AddNode <Real>();

            MultiplyNode <Real> c1 = new MultiplyNode <Real>();
            SubtractNode <Real> c2 = new SubtractNode <Real>();
            DivideNode <Real>   c3 = new DivideNode <Real>();

            root.LeftChild  = c1;
            root.RightChild = c2;

            c1.LeftChild  = new ConstantNode <Real>(2);
            c1.RightChild = c3;

            c2.LeftChild  = new ConstantNode <Real>(7);
            c2.RightChild = new ConstantNode <Real>(4);

            c3.LeftChild  = new ConstantNode <Real>(8);
            c3.RightChild = new ConstantNode <Real>(16);

            Console.WriteLine(root.ToString() + " = " + root.Evaluate());
        }
Example #30
0
        private Node ParseAdditive()
        {
            var lNode = this.ParseMultiplicative();

            while (this.AreMoreTokens)
            {
                if (this.currentToken.Equals(TokenType.Symbol, "+"))
                {
                    this.ReadNextToken();
                    lNode = new AddNode(lNode, this.ParseMultiplicative());
                }
                else if (this.currentToken.Equals(TokenType.Symbol, "-"))
                {
                    this.ReadNextToken();
                    lNode = new SubtractNode(lNode, this.ParseMultiplicative());
                }
                else
                {
                    break;
                }
            }

            return(lNode);
        }
Example #31
0
        private Node ParseAdditive()
        {
            var lNode = this.ParseMultiplicative();

            while (this.AreMoreTokens)
            {
                if (this.currentToken.Equals(TokenType.Symbol, "+"))
                {
                    this.ReadNextToken();
                    lNode = new AddNode(lNode, this.ParseMultiplicative());
                }
                else if (this.currentToken.Equals(TokenType.Symbol, "-"))
                {
                    this.ReadNextToken();
                    lNode = new SubtractNode(lNode, this.ParseMultiplicative());
                }
                else
                {
                    break;
                }
            }

            return lNode;
        }
Example #32
0
    // $ANTLR end "definition"


    // $ANTLR start "expression"
    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:270:1: expression returns [AbstractNode node] : ( ^( '+' a= expression b= expression ) | ^( '-' a= expression b= expression ) | ^( '*' a= expression b= expression ) | ^( '/' a= expression b= expression ) | ^( '%' a= expression b= expression ) | ^( '^' a= expression b= expression ) | ^( INT_NEGATE a= expression ) | ^( BOOL_NEGATE a= expression ) | ^( '<' a= expression b= expression ) | ^( '<=' a= expression b= expression ) | ^( '>' a= expression b= expression ) | ^( '>=' a= expression b= expression ) | ^( '!=' a= expression b= expression ) | ^( '==' a= expression b= expression ) | ^( '&&' a= expression b= expression ) | ^( '||' a= expression b= expression ) | ^( '?' a= expression b= expression c= expression ) | IntAtom | FloatAtom | BooleanAtom | ^( STRING StringAtom ) | LayerAtom | OriginAtom | LoopTypeAtom | LoopTriggerAtom | Null | instantiateClass | lookup | unaryExpression );
    public AbstractNode expression() // throws RecognitionException [1]
    {   
        AbstractNode node = default(AbstractNode);

        CommonTree IntAtom36 = null;
        CommonTree FloatAtom37 = null;
        CommonTree BooleanAtom38 = null;
        CommonTree StringAtom39 = null;
        CommonTree LayerAtom40 = null;
        CommonTree OriginAtom41 = null;
        CommonTree LoopTypeAtom42 = null;
        CommonTree LoopTriggerAtom43 = null;
        CommonTree Null44 = null;
        AbstractNode a = default(AbstractNode);

        AbstractNode b = default(AbstractNode);

        AbstractNode c = default(AbstractNode);

        AbstractNode instantiateClass45 = default(AbstractNode);

        AbstractNode lookup46 = default(AbstractNode);

        AbstractNode unaryExpression47 = default(AbstractNode);


        try 
    	{
            // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:271:2: ( ^( '+' a= expression b= expression ) | ^( '-' a= expression b= expression ) | ^( '*' a= expression b= expression ) | ^( '/' a= expression b= expression ) | ^( '%' a= expression b= expression ) | ^( '^' a= expression b= expression ) | ^( INT_NEGATE a= expression ) | ^( BOOL_NEGATE a= expression ) | ^( '<' a= expression b= expression ) | ^( '<=' a= expression b= expression ) | ^( '>' a= expression b= expression ) | ^( '>=' a= expression b= expression ) | ^( '!=' a= expression b= expression ) | ^( '==' a= expression b= expression ) | ^( '&&' a= expression b= expression ) | ^( '||' a= expression b= expression ) | ^( '?' a= expression b= expression c= expression ) | IntAtom | FloatAtom | BooleanAtom | ^( STRING StringAtom ) | LayerAtom | OriginAtom | LoopTypeAtom | LoopTriggerAtom | Null | instantiateClass | lookup | unaryExpression )
            int alt16 = 29;
            switch ( input.LA(1) ) 
            {
            case 72:
            	{
                alt16 = 1;
                }
                break;
            case 73:
            	{
                alt16 = 2;
                }
                break;
            case 74:
            	{
                alt16 = 3;
                }
                break;
            case 75:
            	{
                alt16 = 4;
                }
                break;
            case 76:
            	{
                alt16 = 5;
                }
                break;
            case 77:
            	{
                alt16 = 6;
                }
                break;
            case INT_NEGATE:
            	{
                alt16 = 7;
                }
                break;
            case BOOL_NEGATE:
            	{
                alt16 = 8;
                }
                break;
            case 68:
            	{
                alt16 = 9;
                }
                break;
            case 70:
            	{
                alt16 = 10;
                }
                break;
            case 69:
            	{
                alt16 = 11;
                }
                break;
            case 71:
            	{
                alt16 = 12;
                }
                break;
            case 67:
            	{
                alt16 = 13;
                }
                break;
            case 66:
            	{
                alt16 = 14;
                }
                break;
            case 65:
            	{
                alt16 = 15;
                }
                break;
            case 64:
            	{
                alt16 = 16;
                }
                break;
            case 62:
            	{
                alt16 = 17;
                }
                break;
            case IntAtom:
            	{
                alt16 = 18;
                }
                break;
            case FloatAtom:
            	{
                alt16 = 19;
                }
                break;
            case BooleanAtom:
            	{
                alt16 = 20;
                }
                break;
            case STRING:
            	{
                alt16 = 21;
                }
                break;
            case LayerAtom:
            	{
                alt16 = 22;
                }
                break;
            case OriginAtom:
            	{
                alt16 = 23;
                }
                break;
            case LoopTypeAtom:
            	{
                alt16 = 24;
                }
                break;
            case LoopTriggerAtom:
            	{
                alt16 = 25;
                }
                break;
            case Null:
            	{
                alt16 = 26;
                }
                break;
            case CLASS:
            	{
                alt16 = 27;
                }
                break;
            case LOOKUP:
            	{
                alt16 = 28;
                }
                break;
            case VARINC:
            case VARDEC:
            	{
                alt16 = 29;
                }
                break;
            	default:
            	    NoViableAltException nvae_d16s0 =
            	        new NoViableAltException("", 16, 0, input);

            	    throw nvae_d16s0;
            }

            switch (alt16) 
            {
                case 1 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:271:4: ^( '+' a= expression b= expression )
                    {
                    	Match(input,72,FOLLOW_72_in_expression828); 

                    	Match(input, Token.DOWN, null); 
                    	PushFollow(FOLLOW_expression_in_expression832);
                    	a = expression();
                    	state.followingStackPointer--;

                    	PushFollow(FOLLOW_expression_in_expression836);
                    	b = expression();
                    	state.followingStackPointer--;


                    	Match(input, Token.UP, null); 
                    	 node = new AddNode(a, b); 

                    }
                    break;
                case 2 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:272:4: ^( '-' a= expression b= expression )
                    {
                    	Match(input,73,FOLLOW_73_in_expression845); 

                    	Match(input, Token.DOWN, null); 
                    	PushFollow(FOLLOW_expression_in_expression849);
                    	a = expression();
                    	state.followingStackPointer--;

                    	PushFollow(FOLLOW_expression_in_expression853);
                    	b = expression();
                    	state.followingStackPointer--;


                    	Match(input, Token.UP, null); 
                    	 node = new SubNode(a, b); 

                    }
                    break;
                case 3 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:273:4: ^( '*' a= expression b= expression )
                    {
                    	Match(input,74,FOLLOW_74_in_expression862); 

                    	Match(input, Token.DOWN, null); 
                    	PushFollow(FOLLOW_expression_in_expression866);
                    	a = expression();
                    	state.followingStackPointer--;

                    	PushFollow(FOLLOW_expression_in_expression870);
                    	b = expression();
                    	state.followingStackPointer--;


                    	Match(input, Token.UP, null); 
                    	 node = new MultNode(a, b); 

                    }
                    break;
                case 4 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:274:4: ^( '/' a= expression b= expression )
                    {
                    	Match(input,75,FOLLOW_75_in_expression879); 

                    	Match(input, Token.DOWN, null); 
                    	PushFollow(FOLLOW_expression_in_expression883);
                    	a = expression();
                    	state.followingStackPointer--;

                    	PushFollow(FOLLOW_expression_in_expression887);
                    	b = expression();
                    	state.followingStackPointer--;


                    	Match(input, Token.UP, null); 
                    	 node = new DivNode(a, b); 

                    }
                    break;
                case 5 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:275:4: ^( '%' a= expression b= expression )
                    {
                    	Match(input,76,FOLLOW_76_in_expression896); 

                    	Match(input, Token.DOWN, null); 
                    	PushFollow(FOLLOW_expression_in_expression900);
                    	a = expression();
                    	state.followingStackPointer--;

                    	PushFollow(FOLLOW_expression_in_expression904);
                    	b = expression();
                    	state.followingStackPointer--;


                    	Match(input, Token.UP, null); 
                    	 node = new ModNode(a, b); 

                    }
                    break;
                case 6 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:276:4: ^( '^' a= expression b= expression )
                    {
                    	Match(input,77,FOLLOW_77_in_expression913); 

                    	Match(input, Token.DOWN, null); 
                    	PushFollow(FOLLOW_expression_in_expression917);
                    	a = expression();
                    	state.followingStackPointer--;

                    	PushFollow(FOLLOW_expression_in_expression921);
                    	b = expression();
                    	state.followingStackPointer--;


                    	Match(input, Token.UP, null); 
                    	 node = new PowNode(a, b); 

                    }
                    break;
                case 7 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:277:4: ^( INT_NEGATE a= expression )
                    {
                    	Match(input,INT_NEGATE,FOLLOW_INT_NEGATE_in_expression930); 

                    	Match(input, Token.DOWN, null); 
                    	PushFollow(FOLLOW_expression_in_expression934);
                    	a = expression();
                    	state.followingStackPointer--;


                    	Match(input, Token.UP, null); 
                    	 node = new NegateIntNode(a); 

                    }
                    break;
                case 8 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:278:4: ^( BOOL_NEGATE a= expression )
                    {
                    	Match(input,BOOL_NEGATE,FOLLOW_BOOL_NEGATE_in_expression943); 

                    	Match(input, Token.DOWN, null); 
                    	PushFollow(FOLLOW_expression_in_expression947);
                    	a = expression();
                    	state.followingStackPointer--;


                    	Match(input, Token.UP, null); 
                    	 node = new NegateBoolNode(a); 

                    }
                    break;
                case 9 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:279:4: ^( '<' a= expression b= expression )
                    {
                    	Match(input,68,FOLLOW_68_in_expression956); 

                    	Match(input, Token.DOWN, null); 
                    	PushFollow(FOLLOW_expression_in_expression960);
                    	a = expression();
                    	state.followingStackPointer--;

                    	PushFollow(FOLLOW_expression_in_expression964);
                    	b = expression();
                    	state.followingStackPointer--;


                    	Match(input, Token.UP, null); 
                    	 node = new LowerThanNode(a, b); 

                    }
                    break;
                case 10 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:280:4: ^( '<=' a= expression b= expression )
                    {
                    	Match(input,70,FOLLOW_70_in_expression973); 

                    	Match(input, Token.DOWN, null); 
                    	PushFollow(FOLLOW_expression_in_expression977);
                    	a = expression();
                    	state.followingStackPointer--;

                    	PushFollow(FOLLOW_expression_in_expression981);
                    	b = expression();
                    	state.followingStackPointer--;


                    	Match(input, Token.UP, null); 
                    	 node = new LowerThanEqualsNode(a, b); 

                    }
                    break;
                case 11 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:281:4: ^( '>' a= expression b= expression )
                    {
                    	Match(input,69,FOLLOW_69_in_expression990); 

                    	Match(input, Token.DOWN, null); 
                    	PushFollow(FOLLOW_expression_in_expression994);
                    	a = expression();
                    	state.followingStackPointer--;

                    	PushFollow(FOLLOW_expression_in_expression998);
                    	b = expression();
                    	state.followingStackPointer--;


                    	Match(input, Token.UP, null); 
                    	 node = new GreaterThanNode(a, b); 

                    }
                    break;
                case 12 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:282:4: ^( '>=' a= expression b= expression )
                    {
                    	Match(input,71,FOLLOW_71_in_expression1007); 

                    	Match(input, Token.DOWN, null); 
                    	PushFollow(FOLLOW_expression_in_expression1011);
                    	a = expression();
                    	state.followingStackPointer--;

                    	PushFollow(FOLLOW_expression_in_expression1015);
                    	b = expression();
                    	state.followingStackPointer--;


                    	Match(input, Token.UP, null); 
                    	 node = new GreaterThanEqualsNode(a, b); 

                    }
                    break;
                case 13 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:283:4: ^( '!=' a= expression b= expression )
                    {
                    	Match(input,67,FOLLOW_67_in_expression1024); 

                    	Match(input, Token.DOWN, null); 
                    	PushFollow(FOLLOW_expression_in_expression1028);
                    	a = expression();
                    	state.followingStackPointer--;

                    	PushFollow(FOLLOW_expression_in_expression1032);
                    	b = expression();
                    	state.followingStackPointer--;


                    	Match(input, Token.UP, null); 
                    	 node = new NotEqualsNode(a, b); 

                    }
                    break;
                case 14 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:284:4: ^( '==' a= expression b= expression )
                    {
                    	Match(input,66,FOLLOW_66_in_expression1041); 

                    	Match(input, Token.DOWN, null); 
                    	PushFollow(FOLLOW_expression_in_expression1045);
                    	a = expression();
                    	state.followingStackPointer--;

                    	PushFollow(FOLLOW_expression_in_expression1049);
                    	b = expression();
                    	state.followingStackPointer--;


                    	Match(input, Token.UP, null); 
                    	 node = new EqualsNode(a, b); 

                    }
                    break;
                case 15 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:285:4: ^( '&&' a= expression b= expression )
                    {
                    	Match(input,65,FOLLOW_65_in_expression1058); 

                    	Match(input, Token.DOWN, null); 
                    	PushFollow(FOLLOW_expression_in_expression1062);
                    	a = expression();
                    	state.followingStackPointer--;

                    	PushFollow(FOLLOW_expression_in_expression1066);
                    	b = expression();
                    	state.followingStackPointer--;


                    	Match(input, Token.UP, null); 
                    	 node = new AndNode(a, b); 

                    }
                    break;
                case 16 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:286:4: ^( '||' a= expression b= expression )
                    {
                    	Match(input,64,FOLLOW_64_in_expression1075); 

                    	Match(input, Token.DOWN, null); 
                    	PushFollow(FOLLOW_expression_in_expression1079);
                    	a = expression();
                    	state.followingStackPointer--;

                    	PushFollow(FOLLOW_expression_in_expression1083);
                    	b = expression();
                    	state.followingStackPointer--;


                    	Match(input, Token.UP, null); 
                    	 node = new OrNode(a, b); 

                    }
                    break;
                case 17 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:287:4: ^( '?' a= expression b= expression c= expression )
                    {
                    	Match(input,62,FOLLOW_62_in_expression1092); 

                    	Match(input, Token.DOWN, null); 
                    	PushFollow(FOLLOW_expression_in_expression1096);
                    	a = expression();
                    	state.followingStackPointer--;

                    	PushFollow(FOLLOW_expression_in_expression1100);
                    	b = expression();
                    	state.followingStackPointer--;

                    	PushFollow(FOLLOW_expression_in_expression1104);
                    	c = expression();
                    	state.followingStackPointer--;


                    	Match(input, Token.UP, null); 
                    	 node = new ConditionalNode(a, b, c); 

                    }
                    break;
                case 18 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:288:6: IntAtom
                    {
                    	IntAtom36=(CommonTree)Match(input,IntAtom,FOLLOW_IntAtom_in_expression1114); 
                    	 node = new AtomNode(int.Parse(((IntAtom36 != null) ? IntAtom36.Text : null), System.Globalization.CultureInfo.InvariantCulture), ValType.Integer, IntAtom36.Line); 

                    }
                    break;
                case 19 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:289:4: FloatAtom
                    {
                    	FloatAtom37=(CommonTree)Match(input,FloatAtom,FOLLOW_FloatAtom_in_expression1121); 
                    	 node = new AtomNode(Double.Parse(((FloatAtom37 != null) ? FloatAtom37.Text : null), System.Globalization.CultureInfo.InvariantCulture), ValType.Double,  FloatAtom37.Line); 

                    }
                    break;
                case 20 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:290:6: BooleanAtom
                    {
                    	BooleanAtom38=(CommonTree)Match(input,BooleanAtom,FOLLOW_BooleanAtom_in_expression1130); 
                    	 node = new AtomNode(Boolean.Parse(((BooleanAtom38 != null) ? BooleanAtom38.Text : null)), ValType.Boolean, BooleanAtom38.Line); 

                    }
                    break;
                case 21 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:291:4: ^( STRING StringAtom )
                    {
                    	Match(input,STRING,FOLLOW_STRING_in_expression1138); 

                    	Match(input, Token.DOWN, null); 
                    	StringAtom39=(CommonTree)Match(input,StringAtom,FOLLOW_StringAtom_in_expression1140); 

                    	Match(input, Token.UP, null); 
                    	 node = new AtomNode((((StringAtom39 != null) ? StringAtom39.Text : null)).Substring(1, (((StringAtom39 != null) ? StringAtom39.Text : null)).Length-2), ValType.String, StringAtom39.Line); 

                    }
                    break;
                case 22 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:292:4: LayerAtom
                    {
                    	LayerAtom40=(CommonTree)Match(input,LayerAtom,FOLLOW_LayerAtom_in_expression1148); 
                    	 node = new AtomNode(((LayerAtom40 != null) ? LayerAtom40.Text : null), ValType.Layer, LayerAtom40.Line); 

                    }
                    break;
                case 23 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:293:4: OriginAtom
                    {
                    	OriginAtom41=(CommonTree)Match(input,OriginAtom,FOLLOW_OriginAtom_in_expression1155); 
                    	 node = new AtomNode(((OriginAtom41 != null) ? OriginAtom41.Text : null), ValType.Origin, OriginAtom41.Line); 

                    }
                    break;
                case 24 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:294:4: LoopTypeAtom
                    {
                    	LoopTypeAtom42=(CommonTree)Match(input,LoopTypeAtom,FOLLOW_LoopTypeAtom_in_expression1162); 
                    	 node = new AtomNode(((LoopTypeAtom42 != null) ? LoopTypeAtom42.Text : null), ValType.LoopType, LoopTypeAtom42.Line); 

                    }
                    break;
                case 25 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:295:4: LoopTriggerAtom
                    {
                    	LoopTriggerAtom43=(CommonTree)Match(input,LoopTriggerAtom,FOLLOW_LoopTriggerAtom_in_expression1169); 
                    	 node = new AtomNode(((LoopTriggerAtom43 != null) ? LoopTriggerAtom43.Text : null), ValType.LoopTrigger, LoopTriggerAtom43.Line); 

                    }
                    break;
                case 26 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:297:4: Null
                    {
                    	Null44=(CommonTree)Match(input,Null,FOLLOW_Null_in_expression1178); 
                    	 node = new AtomNode(((Null44 != null) ? Null44.Text : null), ValType.Null,  Null44.Line); 

                    }
                    break;
                case 27 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:298:4: instantiateClass
                    {
                    	PushFollow(FOLLOW_instantiateClass_in_expression1185);
                    	instantiateClass45 = instantiateClass();
                    	state.followingStackPointer--;

                    	 node = instantiateClass45; 

                    }
                    break;
                case 28 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:299:4: lookup
                    {
                    	PushFollow(FOLLOW_lookup_in_expression1192);
                    	lookup46 = lookup();
                    	state.followingStackPointer--;

                    	 node = lookup46; 

                    }
                    break;
                case 29 :
                    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGLTreeWalker.g:300:4: unaryExpression
                    {
                    	PushFollow(FOLLOW_unaryExpression_in_expression1199);
                    	unaryExpression47 = unaryExpression();
                    	state.followingStackPointer--;

                    	 node = unaryExpression47; 

                    }
                    break;

            }
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return node;
    }
Example #33
0
 private void buttonAdd_Click(object sender, EventArgs e)
 {
     AddNode?.Invoke(this, EventArgs.Empty);
 }
    // $ANTLR start "additiveExpression"
    // JavaScript.g:302:1: additiveExpression : multiplicativeExpression ( ( ( LT )* ( '+' | '-' ) additiveExpression )=> ( LT )* ( '+' | '-' ) additiveExpression | ) ;
    public JavaScriptParser.additiveExpression_return additiveExpression() // throws RecognitionException [1]
    {   
        JavaScriptParser.additiveExpression_return retval = new JavaScriptParser.additiveExpression_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken LT357 = null;
        IToken char_literal358 = null;
        IToken char_literal359 = null;
        JavaScriptParser.multiplicativeExpression_return multiplicativeExpression356 = default(JavaScriptParser.multiplicativeExpression_return);

        JavaScriptParser.additiveExpression_return additiveExpression360 = default(JavaScriptParser.additiveExpression_return);


        object LT357_tree=null;
        object char_literal358_tree=null;
        object char_literal359_tree=null;

        try 
    	{
            // JavaScript.g:303:2: ( multiplicativeExpression ( ( ( LT )* ( '+' | '-' ) additiveExpression )=> ( LT )* ( '+' | '-' ) additiveExpression | ) )
            // JavaScript.g:303:4: multiplicativeExpression ( ( ( LT )* ( '+' | '-' ) additiveExpression )=> ( LT )* ( '+' | '-' ) additiveExpression | )
            {
            	root_0 = (object)adaptor.GetNilNode();

            	PushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression2725);
            	multiplicativeExpression356 = multiplicativeExpression();
            	state.followingStackPointer--;
            	if (state.failed) return retval;
            	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, multiplicativeExpression356.Tree);
            	// JavaScript.g:303:29: ( ( ( LT )* ( '+' | '-' ) additiveExpression )=> ( LT )* ( '+' | '-' ) additiveExpression | )
            	int alt187 = 2;
            	alt187 = dfa187.Predict(input);
            	switch (alt187) 
            	{
            	    case 1 :
            	        // JavaScript.g:304:3: ( ( LT )* ( '+' | '-' ) additiveExpression )=> ( LT )* ( '+' | '-' ) additiveExpression
            	        {
            	        	// JavaScript.g:304:44: ( LT )*
            	        	do 
            	        	{
            	        	    int alt185 = 2;
            	        	    int LA185_0 = input.LA(1);

            	        	    if ( (LA185_0 == LT) )
            	        	    {
            	        	        alt185 = 1;
            	        	    }


            	        	    switch (alt185) 
            	        		{
            	        			case 1 :
            	        			    // JavaScript.g:304:44: LT
            	        			    {
            	        			    	LT357=(IToken)Match(input,LT,FOLLOW_LT_in_additiveExpression2747); if (state.failed) return retval;

            	        			    }
            	        			    break;

            	        			default:
            	        			    goto loop185;
            	        	    }
            	        	} while (true);

            	        	loop185:
            	        		;	// Stops C# compiler whining that label 'loop185' has no statements

            	        	// JavaScript.g:304:47: ( '+' | '-' )
            	        	int alt186 = 2;
            	        	int LA186_0 = input.LA(1);

            	        	if ( (LA186_0 == 99) )
            	        	{
            	        	    alt186 = 1;
            	        	}
            	        	else if ( (LA186_0 == 100) )
            	        	{
            	        	    alt186 = 2;
            	        	}
            	        	else 
            	        	{
            	        	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
            	        	    NoViableAltException nvae_d186s0 =
            	        	        new NoViableAltException("", 186, 0, input);

            	        	    throw nvae_d186s0;
            	        	}
            	        	switch (alt186) 
            	        	{
            	        	    case 1 :
            	        	        // JavaScript.g:304:48: '+'
            	        	        {
            	        	        	char_literal358=(IToken)Match(input,99,FOLLOW_99_in_additiveExpression2752); if (state.failed) return retval;
            	        	        	if ( state.backtracking == 0 )
            	        	        	{char_literal358_tree = new AddNode(char_literal358) ;
            	        	        		root_0 = (object)adaptor.BecomeRoot(char_literal358_tree, root_0);
            	        	        	}

            	        	        }
            	        	        break;
            	        	    case 2 :
            	        	        // JavaScript.g:304:64: '-'
            	        	        {
            	        	        	char_literal359=(IToken)Match(input,100,FOLLOW_100_in_additiveExpression2760); if (state.failed) return retval;
            	        	        	if ( state.backtracking == 0 )
            	        	        	{char_literal359_tree = new SubNode(char_literal359) ;
            	        	        		root_0 = (object)adaptor.BecomeRoot(char_literal359_tree, root_0);
            	        	        	}

            	        	        }
            	        	        break;

            	        	}

            	        	PushFollow(FOLLOW_additiveExpression_in_additiveExpression2767);
            	        	additiveExpression360 = additiveExpression();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return retval;
            	        	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, additiveExpression360.Tree);

            	        }
            	        break;
            	    case 2 :
            	        // JavaScript.g:306:2: 
            	        {
            	        }
            	        break;

            	}


            }

            retval.Stop = input.LT(-1);

            if ( (state.backtracking==0) )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
    	// Conversion of the second argument necessary, but harmless
    	retval.Tree = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
    	{
        }
        return retval;
    }