public ScannerWriter(Nfa.Graph graph, Dfa.Dfa dfa, IDfaWriter scannerStatesWriter, TokenStateWriterBase tokenStatesWriter) { symbols = graph.Machine.AcceptingStates.Symbols.ToArray(); this.dfa = dfa; this.scannerStates = scannerStatesWriter; this.tokenStates = tokenStatesWriter; }
public ScannerBuilder(Options options) { nfaWriter = options.TryGet("nfa", out var nfaPath) ? new Nfa.NfaWriter(nfaPath) : new Nfa.NullNfaWriter(); scannerWriterFactory = !options.Equals("scanner", "switch") ? new StateScannerWriterFactory() : new SwitchScannerWriterFactory(); tableWriterFactory = options.HasOption("scanner.compress", true) ? new CompressedTableWriterFactory() : new UncompressedTableWriterFactory(); syntaxErrorHandler = options.HasOption("syntax.error.tokens", true) ? new GreedySyntaxErrorHandler() : new SingleCharSyntaxErrorHandler(); tokenStateWriter = scannerWriterFactory.CreateStateWriter( options.HasOption("scanner.write.states", true)); }