/// <summary> /// Initializes a new instance of the <see cref="LibPreprocessor"/> class. /// </summary> /// <param name="fileReader">File reader.</param> /// <param name="tokenProviderPool">Token provider.</param> /// <param name="spiceNetlistParser">Single spice netlist parser.</param> /// <param name="includesPreprocessor">Includes preprocessor.</param> /// <param name="initialDirectoryPathProvider">Initial directory path provider.</param> /// <param name="readerSettings">Reader settings.</param> /// <param name="lexerSettings">Lexer settings.</param> public LibPreprocessor( IFileReader fileReader, ISpiceTokenProviderPool tokenProviderPool, ISingleSpiceNetlistParser spiceNetlistParser, IProcessor includesPreprocessor, Func <string> initialDirectoryPathProvider, SpiceNetlistReaderSettings readerSettings, SpiceLexerSettings lexerSettings) { ReaderSettings = readerSettings ?? throw new ArgumentNullException(nameof(readerSettings)); TokenProviderPool = tokenProviderPool ?? throw new ArgumentNullException(nameof(tokenProviderPool)); IncludesPreprocessor = includesPreprocessor ?? throw new ArgumentNullException(nameof(includesPreprocessor)); SpiceNetlistParser = spiceNetlistParser ?? throw new ArgumentNullException(nameof(spiceNetlistParser)); FileReader = fileReader ?? throw new ArgumentNullException(nameof(fileReader)); InitialDirectoryPathProvider = initialDirectoryPathProvider ?? throw new ArgumentNullException(nameof(initialDirectoryPathProvider)); LexerSettings = lexerSettings ?? throw new ArgumentNullException(nameof(lexerSettings)); }
public SpiceParserSettings() { Lexing = new SpiceLexerSettings(); Parsing = new SingleSpiceNetlistParserSettings(Lexing); Reading = new SpiceNetlistReaderSettings(new SpiceNetlistCaseSensitivitySettings(Lexing), () => WorkingDirectory); }