25using namespace tao::pegtl;
 
   50template <
typename... EXCLUSION_RULES>
 
   52                                               EXCLUSION_RULES...>>, any>{};
 
 
   57template <
typename... EXCLUSION_RULES>
 
   59                               opt<LINE_CONTINUATION>> {};
 
 
   65template <
char... CHAR_TO_FIND>
 
   66struct spaced_ch : seq<star<WHITESPACE>, one<CHAR_TO_FIND...>>{};
 
   71struct QUOTED_STRING : seq<one<'"'>, STRING_EXCLUDING<one<'"'>>, one<'"'>> {};
 
   88                        STRING_EXCLUDING<one<')'>>
 
 
  103                        STRING_EXCLUDING<seq<one<')'>, eolf>>
 
 
  122                    TAO_PEGTL_ISTRING( "FORMAT" ),
 
  124                    CURRENT_FORMAT_NUMBER,
 
 
  146                    HIERARCHY_CURRENT_NODE,     
 
  147                    plus<WHITESPACE_OR_CONTINUATION>,
 
  148                    opt<HIERARCHY_PARENT_NODE>, 
 
  149                    star<WHITESPACE_OR_CONTINUATION>,
 
  151                    star<WHITESPACE_OR_CONTINUATION>,
 
  152                    star<HIERARCHY_PART_NAME, star<WHITESPACE_OR_CONTINUATION>>, 
 
 
  184                    opt<seq<spaced_ch<':'>, PART_VERSION>>,
 
  185                    opt<seq<spaced_ch<';'>, PART_DESCRIPTION>>,
 
 
  220                    TAO_PEGTL_ISTRING( "*VALUE"),
 
 
  236                    plus<WHITESPACE_OR_CONTINUATION>,
 
 
  247                    TAO_PEGTL_ISTRING( "*PNM"),
 
 
  255struct PINLABEL : sor<QUOTED_STRING, STRING_EXCLUDING<WHITESPACE>> {};
 
  259                    plus<WHITESPACE_OR_CONTINUATION>,
 
 
  270                    TAO_PEGTL_ISTRING( "*PLB"),
 
  271                    plus<PINLABEL_ENTRY>,
 
 
  282                    plus<WHITESPACE_OR_CONTINUATION>,
 
  284                    plus<one<'='>, star<WHITESPACE_OR_CONTINUATION>, EQUIVALENT_PIN>
 
 
  292                    TAO_PEGTL_ISTRING( "*EQU"),
 
  293                    EQUIVALENT_PINS_GROUP,
 
  294                    star<one<','>, EQUIVALENT_PINS_GROUP>,
 
 
  307                    TAO_PEGTL_ISTRING( "*SYM"),
 
  309                    opt<SYM_ELEMENT_NAME>,
 
 
  321                        plus<WHITESPACE_OR_CONTINUATION>,
 
 
  332                    TAO_PEGTL_ISTRING( "*INT"),
 
 
  343                    TAO_PEGTL_ISTRING( "*EXT"),
 
 
  357                    plus<INTERNAL_SWAP_GATE>
 
 
  369                    plus<EXTERNAL_SWAP_GATE>
 
 
  381                    TAO_PEGTL_ISTRING( "*DFN"),
 
 
  393                    TAO_PEGTL_ISTRING( "*NGS"),
 
 
  403                    TAO_PEGTL_ISTRING( "*NPV"),
 
 
  414                    TAO_PEGTL_ISTRING( "*STM"),
 
 
  427                    TAO_PEGTL_ISTRING( "*MXP"),
 
 
  441                    TAO_PEGTL_ISTRING( "*SPI"),
 
  443                    opt<SPICE_PART_NAME>,
 
 
  458                    TAO_PEGTL_ISTRING( "*PAC"),
 
  460                    opt<ACCEPTANCE_PART_NAME>,
 
 
  477                    USER_PART_ATTRIBUTE_NAME,
 
  479                    USER_PART_ATTRIBUTE_VALUE,
 
 
  492template<
char START_TOKEN>
 
  521struct SCH_NAME : sor<QUOTED_STRING, STRING_EXCLUDING<spaced_ch<'('>>> {};
 
  537                    opt< one<'!'>, PIN_TYPE>,
 
  538                    opt< one<':'>, PIN_LOADING>
 
 
  542struct PIN_LIST : plus<PIN_ENTRY, star<WHITESPACE>, opt<LINE_CONTINUATION>> {};
 
  586                    star<HIDDEN_PIN_ENTRY>     
 
 
  598                    star<star<EMPTY_LINE>, HIERARCHY_NODE_ENTRY>,
 
  608                    opt<TAO_PEGTL_ISTRING( ".END"), opt<eol>>,
 
 
  623struct VALID_HEADER : sor<FORMAT, seq< rep_max<5,EMPTY_LINE>, PART_HEADER>>{};