Advertisement
Guest User

Untitled

a guest
Aug 10th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. /* Ronald Munodawafa, Benjamin Sturgeon, Mathhew Towers, Michael du Plessis */
  2. /* An example of a top-down parser */
  3. COMPILER fam $CN
  4.  
  5. CHARACTERS
  6. upperCaseLetter = "QWERTYUIOPASDFGHJKLZXCVBNM" .
  7. lowerCaseLetter = "qwertyuiopasdfghjklzxcvbnm" .
  8. nonZero = "123456789" .
  9. zero = "0" .
  10. control = CHR(0) .. CHR(32) .
  11.  
  12. TOKENS
  13. number = nonZero { zero | nonZero } .
  14. propertyString = lowerCaseLetter { lowerCaseLetter } .
  15. nameString = upperCaseLetter { lowerCaseLetter |
  16. upperCaseLetter | "'" upperCaseLetter
  17. | "-" upperCaseLetter } .
  18.  
  19. IGNORE control
  20.  
  21. PRODUCTIONS
  22. fam = { surname | grandparents | parents | children |
  23. grandchildren | property } EOF.
  24. surname = "Surname:" name .
  25. grandparents = "Grandparents:" grandparent { "," grandparent } .
  26. grandparent = name [ "[" ( "father" | "mother" ) "of" name "]" ] .
  27. parents = "Parents:" name "," name .
  28. children = "Children:" child { "," child } .
  29. child = name [ "=" name ] .
  30. grandchildren = "Grandchildren:" grandchild { "," grandchild } .
  31. grandchild = name [ "[" ( "son" | "daughter" ) "of" name "]" ] .
  32. name = nameString { nameString } ["(" "deceased" ")"] .
  33. property = number propertyString [ propertyString ] .
  34.  
  35. END fam .
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement