Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (*PART A*)
- begin end
- case <stmt> endcase
- case <some_variable> of: <line> endcase
- case <some_variable> of: <line> endcase
- case <some_variable> of: {<string> (,|_)}* : {<one-statement>(;|_)} ; [<end>] endcase
- case <some_variable> of: {<string> (,|_)}* : {<one-statement>(;|_)} ; else [{<one-statement>(;|_)};] endcase
- <stmt> ::= <String-Case>
- <String-Case> ::= case <some_variable> of: <line>
- <line> ::= {<string> (,|_)}* : {<one-statement>(;|_)} ; [<end>]
- | <line> ,{<string> (,|_)}* : {<one-statement>(;|_)} ; [<end>]
- <end> ::= [<end>] endcase |
- else [{<one-statement>(;|_)};] endcase
- (* define variables , strings, and digits*)
- <string> ::= ""({<letter>|<digit>})
- <letter> ::= "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" ;
- <digit> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
- (* <some_variable> and <one-statement> defined //somewhere else *)
- (*PART B*)
- begin String-Case end
- begin
- String-Case = "case" some_variable "of:" line+ ;
- line = {string ,(","|"_")} : {one-statement,(";"|"_")} ";" ?end? ;
- end = endcase |
- "else" [{<one-statement>(";"|"_")}";"] endcase
- (* define variables , strings, and digits*)
- string = "",({letter|digit})
- letter = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" ;
- digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
- (c)
- <S> => "case" <some_variable> "of:" <line>
Add Comment
Please, Sign In to add comment