Exemple #1
0
        public DfaTableWriter(Dfa dfa,
                              ITableWriterFactory tableWriterFactory,
                              ISyntaxErrorHandler syntaxErrorHandler)
        {
            this.dfa    = dfa ?? throw new ArgumentNullException(nameof(dfa));
            classWriter = tableWriterFactory.CreateClassWriter();
            var tableFactory = syntaxErrorHandler.CreateStateTable(dfa);

            stateTableWriter = tableWriterFactory.CreateStateWriter(dfa, tableFactory);
        }
Exemple #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));
        }
Exemple #3
0
 public IDfaWriter Create(Dfa dfa,
                          ITableWriterFactory tableWriterFactory,
                          ISyntaxErrorHandler syntaxErrorHandler) =>
 new DfaSwitchWriter(dfa, syntaxErrorHandler);