コード例 #1
0
ファイル: DFAState.cs プロジェクト: rharrisxtheta/antlr4cs
 public virtual void SetTarget(int symbol, DFAState target)
 {
     lock (this)
     {
         if (edges == null)
         {
             edges = new SingletonEdgeMap <DFAState>(minSymbol, maxSymbol);
         }
         edges = edges.Put(symbol, target);
     }
 }
コード例 #2
0
ファイル: DFAState.cs プロジェクト: rharrisxtheta/antlr4cs
 public virtual void SetContextSensitive(ATN atn)
 {
     lock (this)
     {
         System.Diagnostics.Debug.Assert(!configs.IsOutermostConfigSet);
         if (IsContextSensitive)
         {
             return;
         }
         contextSymbols = new BitSet();
         contextEdges   = new SingletonEdgeMap <DFAState>(-1, atn.states.Count - 1);
     }
 }
コード例 #3
0
 public virtual void SetContextTarget(int invokingState, DFAState target)
 {
     lock (this)
     {
         if (!IsContextSensitive)
         {
             throw new InvalidOperationException("The state is not context sensitive.");
         }
         if (invokingState == PredictionContext.EmptyFullStateKey)
         {
             invokingState = -1;
         }
         contextEdges = contextEdges.Put(invokingState, target);
     }
 }
コード例 #4
0
 public DFAState(EmptyEdgeMap <DFAState> emptyEdges, EmptyEdgeMap <DFAState> emptyContextEdges, ATNConfigSet configs)
 {
     this.configs      = configs;
     this.edges        = emptyEdges;
     this.contextEdges = emptyContextEdges;
 }
コード例 #5
0
 public virtual void SetTarget(int symbol, DFAState target)
 {
     edges = edges.Put(symbol, target);
 }
コード例 #6
0
ファイル: DFAState.cs プロジェクト: yuanyong00/antlr4cs
 public DFAState([NotNull] EmptyEdgeMap <DFAState> emptyEdges, [NotNull] EmptyEdgeMap <DFAState> emptyContextEdges, [NotNull] ATNConfigSet configs)
 {
     this.configs      = configs;
     this.edges        = emptyEdges;
     this.contextEdges = emptyContextEdges;
 }