コード例 #1
0
        private static AstNode ParseAssignment(Parser.Parser parser)
        {
            AstNode left = ParseEquality(parser);

            if (parser.AcceptToken(TokenType.Assignment))
            {
                AstNode right = ParseAssignment(parser);
                return(new BinOpNode(BinaryOperation.Assignment, left, right));
            }
            else if (parser.AcceptToken(TokenType.OpAssign))
            {
                var assigntype = GetBinaryOp(parser.PreviousToken().Value.ToString());
                var right      = ParseAssignment(parser);
                return(new BinOpNode(BinaryOperation.Assignment, assigntype, left, right));
            }
            else
            {
                return(left);
            }
        }