sdcx 0.1.0

SDC (Synopsys Design Constraints) toolkit
Documentation
%start Source
%title "Sdc grammar"
%comment "Empty grammar generated by `parol`"
%auto_newline_off

%scanner BraceGroup { %auto_newline_off %auto_ws_off }

%%

/*  0 */ TermLBracket: '[';
/*  1 */ TermRBracket: ']';
/*  2 */ TermLBrace: <INITIAL, BraceGroup>'{';
/*  3 */ TermRBrace: <INITIAL, BraceGroup>'}';
/*  4 */ TermStringGroup: "\u{0022}(?:\\[\u{0022}\\/bfnrt]|u[0-9a-fA-F]{4}|[^\u{0022}\\]|\\\n)*\u{0022}";
/*  5 */ TermComment: /#.*(\r\n|\r|\n|$)/;
/*  6 */ TermSemiColon: ';';
/*  7 */ TermBackslashLineBreak: /\\(\r\n|\r|\n)/;
/*  8 */ TermLineBreak: /(\r\n|\r|\n|$)/;
/*  9 */ TermWord: /[^\s\[\]\\;]+/;
/* 10 */ TermBraceGroupContent: <BraceGroup>/[^}]*/;
/* 11 */ TermBraceGroup: TermLBrace %push(BraceGroup) TermBraceGroupGroup TermRBrace %pop();
/* 12 */ TermBraceGroupGroup: TermBraceGroup;
/* 13 */ TermBraceGroupGroup: TermBraceGroupContent;
/* 14 */ TokenEnd: TermLineBreak;
/* 15 */ TokenEnd: TermSemiColon;
/* 16 */ TokenBraceGroup: TermBraceGroup TokenBraceGroupOpt /* Option */;
/* 17 */ TokenBraceGroupOpt /* Option<T>::Some */: TermBackslashLineBreak;
/* 18 */ TokenBraceGroupOpt /* Option<T>::None */: ;
/* 19 */ TokenStringGroup: TermStringGroup TokenStringGroupOpt /* Option */;
/* 20 */ TokenStringGroupOpt /* Option<T>::Some */: TermBackslashLineBreak;
/* 21 */ TokenStringGroupOpt /* Option<T>::None */: ;
/* 22 */ TokenLBracket: TermLBracket TokenLBracketOpt /* Option */;
/* 23 */ TokenLBracketOpt /* Option<T>::Some */: TermBackslashLineBreak;
/* 24 */ TokenLBracketOpt /* Option<T>::None */: ;
/* 25 */ TokenRBracket: TermRBracket TokenRBracketOpt /* Option */;
/* 26 */ TokenRBracketOpt /* Option<T>::Some */: TermBackslashLineBreak;
/* 27 */ TokenRBracketOpt /* Option<T>::None */: ;
/* 28 */ TokenWord: TermWord TokenWordOpt /* Option */;
/* 29 */ TokenWordOpt /* Option<T>::Some */: TermBackslashLineBreak;
/* 30 */ TokenWordOpt /* Option<T>::None */: ;
/* 31 */ Argument: TokenWord;
/* 32 */ Argument: TokenStringGroup;
/* 33 */ Argument: TokenBraceGroup;
/* 34 */ Argument: CommandReplacement;
/* 35 */ CommandReplacement: TokenLBracket Command TokenRBracket;
/* 36 */ Command: TokenWord CommandList /* Vec */;
/* 37 */ CommandList /* Vec<T>::Push */: Argument CommandList;
/* 38 */ CommandList /* Vec<T>::New */: ;
/* 39 */ CommandLine: Command TokenEnd;
/* 40 */ Source: SourceList /* Vec */;
/* 41 */ SourceList /* Vec<T>::Push */: SourceListGroup SourceList;
/* 42 */ SourceListGroup: CommandLine;
/* 43 */ SourceListGroup: TokenEnd;
/* 44 */ SourceListGroup: TermComment;
/* 45 */ SourceList /* Vec<T>::New */: ;