private static RegexSymbol MakeInfixOperatorExpressionRegex(UniversalSymbol operatorExpression, params string[] operators) { var operatorsRegex = RegexSymbol.MakeUnion(operators); return(operatorExpression * (operatorsRegex * operatorExpression).Star); }
private static void SetProduction(this UniversalSymbol that, RegexSymbol regexSymbol) { Productions.Add(that, regexSymbol); }
private ParseTree Wrap(UniversalSymbol symbol, string code, ParseTree wrapped) { return(new ParseBranch <Symbol>(new DummyFragment(code), Cast(symbol), dummyProd, new ParseTree[] { wrapped })); }
private ParseTree Leaf(UniversalSymbol symbol, string code) { return(new ParseLeaf <Symbol>(new DummyFragment(code), Cast(symbol))); }
private ParseTree Wrap(UniversalSymbol symbol, ParseTree[] wrapped) { return(new ParseBranch <Symbol>(new DummyFragment(GetCode(wrapped)), Cast(symbol), dummyProd, wrapped)); }