public LanguageData(Grammar grammar) { Grammar = grammar; GrammarData = new GrammarData(this); ParserData = new ParserData(this); ScannerData = new ScannerData(this); }
public readonly Parser Parser; //combination of Scanner (with token filters inside) and CoreParser #endregion Fields #region Constructors public Compiler(Grammar grammar) { Language = new LanguageData(grammar); var builder = new LanguageDataBuilder(Language); builder.Build(); this.Language = builder.Language; if (Language.CanParse()) Parser = new Parser(Language); }
public GrammarData(LanguageData language) { Language = language; Grammar = language.Grammar; }
internal static void ClearCurrentGrammar() { _currentGrammar = null; }
public Grammar(bool caseSensitive) { this.CaseSensitive = caseSensitive; bool ignoreCase = !this.CaseSensitive; StringComparer comparer = StringComparer.Create(System.Globalization.CultureInfo.InvariantCulture, ignoreCase); SymbolTerms = new SymbolTerminalTable(comparer); _currentGrammar = this; NewLinePlus = CreateNewLinePlus(); }
public CoreParser(ParserData parserData, Scanner scanner) { Data = parserData; _grammar = parserData.Language.Grammar; _scanner = scanner; }
public Scanner(ScannerData data) { _data = data; _grammar = _data.Language.Grammar; }
public ScriptEngine(Grammar grammar) { Compiler = new Compiler(grammar); Language = Compiler.Language; }