Beispiel #1
0
 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;
 }
Beispiel #2
0
        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));
        }