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)); } }