コード例 #1
0
ファイル: EarleySet.cs プロジェクト: DinkDev/Pliant
        public bool Contains(StateType stateType, IDottedRule dottedRule, int origin)
        {
            if (stateType != StateType.Normal)
            {
                return(false);
            }

            var hashCode = NormalStateHashCodeAlgorithm.Compute(dottedRule, origin);

            if (dottedRule.IsComplete)
            {
                return(CompletionsContainsHash(hashCode));
            }

            var currentSymbol = dottedRule.PostDotSymbol;

            if (currentSymbol.SymbolType == SymbolType.NonTerminal)
            {
                return(PredictionsContainsHash(hashCode));
            }

            return(ScansContainsHash(hashCode));
        }
コード例 #2
0
ファイル: NormalState.cs プロジェクト: patrickhuber/Pliant
 private int ComputeHashCode()
 {
     return(NormalStateHashCodeAlgorithm.Compute(
                DottedRule,
                Origin));
 }