32 struct garbage : plus<one<' ', '\t', '=', '(', ')', ','>> {};
34 struct trailers : plus<one<' ', '\t', '\v', '\f'>> {};
62 seq<star<not_at<eolf>,
63 not_at<string<'\\', '\\'>,
79 sor<backslashContinuation,
80 commentBackslashContinuation,
86 struct sep : sor<plus<continuation>,
89 struct modelName : plus<not_at<garbageOrEolf>, any> {};
92 seq<TAO_PEGTL_ISTRING( "vdmos" ),
94 sor<TAO_PEGTL_ISTRING( "nchan" ),
95 TAO_PEGTL_ISTRING( "pchan" )>>,
96 plus<not_at<garbageOrEolf>, any>> {};
108 opt<seq<star<sor<tao::pegtl::digit,
111 opt<one<'+', '-'>>>>> {};
114 not_at<backslashContinuation>,
115 not_one<' ', '\t', '=', '(', ')', ',', ';'>> {};
153 if_must<seq<TAO_PEGTL_ISTRING( ".model" ),
157 TAO_PEGTL_ISTRING( "ako:" )>,
168 if_must<seq<TAO_PEGTL_ISTRING( ".model" ),
172 TAO_PEGTL_ISTRING( "CPL" ),
180 if_must<TAO_PEGTL_ISTRING( ".model" ),
195 opt<plusContinuation>,
197 opt<plusContinuation>,
205 TAO_PEGTL_ISTRING( ".param" )>> {};
209 dotSubcktParamValuePairs> {};
213 plus<not_at<space>, any>> {};
218 TAO_PEGTL_ISTRING( ".ends" ),
223 if_must<TAO_PEGTL_ISTRING( ".subckt" ),
227 dotSubcktPinSequence>,
245 TAO_PEGTL_ISTRING( ".control" ),
246 until<TAO_PEGTL_ISTRING( ".endc" )>,
253 TAO_PEGTL_ISTRING( ".title" ),
264 TAO_PEGTL_ISTRING( ".inc" ),
265 star<not_at<garbageOrEolf>, any>,
268 dotIncludePathWithoutQuotes,
271 dotIncludePathWithoutApostrophes,
313 template <
typename>
inline constexpr const char*
errorMessage =
nullptr;
317 "expected token separator (one or more whitespace, parenthesis, '=', ',', or line continuation)";
321 "expected model name";
323 "expected model type";
335 "expected (possibly empty) sequence of Spice lines followed by an .ends line";
337 "expected Spice directive, item, subcircuit definitions, or empty or commented-out line";
339 "expected zero or more Spice directives, items, subcircuit definitions, or empty or commented-out lines";
348 template <
typename Rule>
using control = must_if<error>::control<Rule>;