fItemPlugin.ItemRules.Core.Parser.ParseAndExpr C# (CSharp) Метод

ParseAndExpr() приватный Метод

private ParseAndExpr ( ParseNode parent ) : void
parent ParseNode
Результат void
        private void ParseAndExpr(ParseNode parent)
        {
            Token tok;
            ParseNode n;
            ParseNode node = parent.CreateNode(scanner.GetToken(TokenType.AndExpr), "AndExpr");
            parent.Nodes.Add(node);

            ParseCompExpr(node);

            tok = scanner.LookAhead(TokenType.AND);
            while (tok.Type == TokenType.AND)
            {
                tok = scanner.Scan(TokenType.AND);
                n = node.CreateNode(tok, tok.ToString());
                node.Token.UpdateRange(tok);
                node.Nodes.Add(n);
                if (tok.Type != TokenType.AND)
                {
                    tree.Errors.Add(new ParseError("Unexpected token '" + tok.Text.Replace("\n", "") + "' found. Expected " + TokenType.AND.ToString(), 0x1001, 0, tok.StartPos, tok.StartPos, tok.Length));
                    return;
                }

                ParseCompExpr(node);
                tok = scanner.LookAhead(TokenType.AND);
            }

            parent.Token.UpdateRange(node.Token);
        }