示例#1
0
        private static RegexSymbol MakeInfixOperatorExpressionRegex(UniversalSymbol operatorExpression, params string[] operators)
        {
            var operatorsRegex = RegexSymbol.MakeUnion(operators);

            return(operatorExpression * (operatorsRegex * operatorExpression).Star);
        }
示例#2
0
 private static void SetProduction(this UniversalSymbol that, RegexSymbol regexSymbol)
 {
     Productions.Add(that, regexSymbol);
 }
示例#3
0
 private ParseTree Wrap(UniversalSymbol symbol, string code, ParseTree wrapped)
 {
     return(new ParseBranch <Symbol>(new DummyFragment(code), Cast(symbol), dummyProd, new ParseTree[] { wrapped }));
 }
示例#4
0
 private ParseTree Leaf(UniversalSymbol symbol, string code)
 {
     return(new ParseLeaf <Symbol>(new DummyFragment(code), Cast(symbol)));
 }
示例#5
0
 private ParseTree Wrap(UniversalSymbol symbol, ParseTree[] wrapped)
 {
     return(new ParseBranch <Symbol>(new DummyFragment(GetCode(wrapped)), Cast(symbol), dummyProd, wrapped));
 }