Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Ronald Munodawafa, Benjamin Sturgeon, Mathhew Towers, Michael du Plessis */
- /* An example of a top-down parser */
- COMPILER fam $CN
- CHARACTERS
- upperCaseLetter = "QWERTYUIOPASDFGHJKLZXCVBNM" .
- lowerCaseLetter = "qwertyuiopasdfghjklzxcvbnm" .
- nonZero = "123456789" .
- zero = "0" .
- control = CHR(0) .. CHR(32) .
- TOKENS
- number = nonZero { zero | nonZero } .
- propertyString = lowerCaseLetter { lowerCaseLetter } .
- nameString = upperCaseLetter { lowerCaseLetter |
- upperCaseLetter | "'" upperCaseLetter
- | "-" upperCaseLetter } .
- IGNORE control
- PRODUCTIONS
- fam = { surname | grandparents | parents | children |
- grandchildren | property } EOF.
- surname = "Surname:" name .
- grandparents = "Grandparents:" grandparent { "," grandparent } .
- grandparent = name [ "[" ( "father" | "mother" ) "of" name "]" ] .
- parents = "Parents:" name "," name .
- children = "Children:" child { "," child } .
- child = name [ "=" name ] .
- grandchildren = "Grandchildren:" grandchild { "," grandchild } .
- grandchild = name [ "[" ( "son" | "daughter" ) "of" name "]" ] .
- name = nameString { nameString } ["(" "deceased" ")"] .
- property = number propertyString [ propertyString ] .
- END fam .
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement