コード例 #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;
            }
        }
コード例 #2
0
ファイル: Grammar.cs プロジェクト: yuva2achieve/SharpDevelop
 /// <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
 }