Exemple #1
0
        private ParserStatus ParseDigit(char c)
        {
            switch (_state)
            {
            case ParserState.VALUE:
                _tree.AddNode(new MultiplicationOperNode());
                goto case ParserState.BEGIN;

            case ParserState.BEGIN:
            case ParserState.OPEN_PARENTHESIS:
            case ParserState.UOPER:
            case ParserState.NOPER:
            case ParserState.INT:
                _state = ParserState.INT;
                goto case ParserState.FLOAT;

            case ParserState.FLOAT:
                _cache += c;
                return(GetSuccessState());

            case ParserState.DECIMAL:
                _state = ParserState.FLOAT;
                goto case ParserState.FLOAT;

            default:
                return(EnterErrorState(ErrorType.CANNOT_PROCEED));
            }
        }