public Transition(ParserState state, ParserEvent pEvent, ParserState nextState, Action action) { this.state = state; this.pEvent = pEvent; this.nextState = nextState; this.action = action; }
public async Task <IActionResult> CreateFault(string deviceId, string filename) { FileStream fileStream = new FileStream(filename, FileMode.Open); StreamReader reader = new StreamReader(fileStream); var objClass = new ParserEvent(); objClass.ParseEvents(deviceId, reader); return(RedirectToAction(nameof(Index))); }
private void HandleEvent(ParserEvent pEvent) { foreach (var transition in transitions) { if (transition.state.Equals(currentState) && transition.pEvent.Equals(pEvent)) { transition.action?.Invoke(); Logger.DebugLogLine($"[Parser] Change state from: {currentState} to: {transition.nextState} from event: {pEvent}"); currentState = transition.nextState; return; } } if (pEvent != ParserEvent.WHITE_SPACE) { throw new Exception($"[Parser] Received invalid event {pEvent} when in state {currentState}, this is an edge case, please contact the developer"); } }
public Transition(ParserState currentState, ParserEvent evt, ParserState newState, Action<IBuilder> action) { CurrentState = currentState; Event = evt; NewState = newState; Action = action; }
private void HandleEventError(ParserEvent parserEvent, int line, int pos) { switch (_state) { case ParserState.Header: case ParserState.HeaderValue: _builder.HeaderError(_state, parserEvent, line, pos); break; case ParserState.StateSpec: case ParserState.SuperStateName: case ParserState.SuperStateClose: case ParserState.StateModifier: case ParserState.ExitAction: case ParserState.EntryAction: case ParserState.StateBase: _builder.StateSpecError(_state, parserEvent, line, pos); break; case ParserState.SingleEvent: case ParserState.SingleNextState: case ParserState.SingleActionGroup: case ParserState.SingleActionGroupName: _builder.TransitionError(_state, parserEvent, line, pos); break; case ParserState.SubTransitionGroup: case ParserState.GroupEvent: case ParserState.GroupNextState: case ParserState.GroupActionGroup: case ParserState.GroupActionGroupName: _builder.TransitionGroupError(_state, parserEvent, line, pos); break; case ParserState.End: _builder.EndError(_state, parserEvent, line, pos); break; default: throw new ApplicationException($"Unhandled parser state: '{_state}'."); } }
private void HandleEvent(ParserEvent parserEvent, int line, int pos) { var transition = _transitions.SingleOrDefault(t => t.CurrentState == _state && t.Event == parserEvent); if (null != transition) { _state = transition.NewState; transition.Action?.Invoke(_builder); } else HandleEventError(parserEvent, line, pos); }
public YamlParser(TextReader reader, ParserEvent @event) { this._reader = new ParserReader(reader); this._event = @event; this._props = new Dictionary <string, string>(); }