# File kwartz.rb, line 3144
        def parse_factor
            expr = nil
            case token()
            when :name, '('
                expr = parse_array()
            when :number
                value = token_str
                scan()
                expr = ExprNode.new(:number, value, nil)
            when :string
                value = token_str
                scan()
                expr = ExprNode.new(:string, value, nil)
            when :true, :false, :null
                value = token_str
                expr = ExprNode.new(token, value, nil)
                scan()
            when :empty
                _syntaxerr("'empty' is allowed only in right-side of '==' or '!='.")
            else
                #assert()
                _syntaxerr("'#{token()}': invalid expression syntax.")
            end
            return expr
        end