Пример #1
0
        public void AddMatcher(CilMatcher matcher)
        {
            var currentCondition = processedConditions.Peek();

            currentCondition.AddMatcher(matcher);

            if (matcher.NextConditionType != null)
            {
                AddCondition(matcher.NextConditionType);
            }
        }
Пример #2
0
        private static CilMatcher CreateImplicitLiteralMatcher(string literal)
        {
            var outcome = CilSymbolRef.Create(literal);

            // Generate implicit scan rule for the keyword
            var result = new CilMatcher
            {
                Context        = CilContextRef.None,
                MainOutcome    = outcome,
                AllOutcomes    = { outcome },
                Disambiguation = Disambiguation.Exclusive,
                Pattern        = ScanPattern.CreateLiteral(literal),
                ActionBuilder  = code => code
                                 .Emit(il => il.Ldnull())
                                 .ReturnFromAction()
            };

            return(result);
        }
Пример #3
0
 internal void AddMatcher(CilMatcher matcher)
 {
     matchers.Add(matcher);
 }