Example #1
0
        private void ExecuteConflictAction(ParserAction action)
        {
            var args = new ConflictResolutionArgs(_context, action);

            _grammar.OnResolvingConflict(args);
            switch (args.Result)
            {
            case ParserActionType.Reduce:
                ExecuteReduce(args.ReduceProduction);
                break;

            case ParserActionType.Operator:
                ExecuteOperatorAction(action.NewState, args.ReduceProduction);
                break;

            case ParserActionType.Shift:
            default:
                ExecuteShift(action.NewState);
                break;
            }
        }
Example #2
0
 /// <summary>
 /// Override this method to provide custom conflict resolution; for example, custom code may decide proper shift or reduce
 /// action based on preview of tokens ahead.
 /// </summary>
 public virtual void OnResolvingConflict(ConflictResolutionArgs args)
 {
     //args.Result is Shift by default
 }