Guest User

Untitled

a guest
Dec 7th, 2015
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
BNF 1.01 KB | None | 0 0
  1. s_expression = atom | quote | quasiquote | unquote | comment | cons | list;
  2.  
  3. quote = "'", s_expression;
  4.  
  5. quasiquote = "`", s_expression;
  6.  
  7. unquote = ",", s_expression;
  8.  
  9. cons = "(", s_expression, ".", s_expression, ")";
  10.  
  11. list = "(", {s_expression}, ")";
  12.  
  13.  
  14. atom = package_symbol | symbol | literal | standard_rm;
  15.  
  16. package_symbol = [symbol], ":", symbol;
  17.  
  18. symbol = letter, {letter | number};
  19.  
  20. comment = ";" ?characters? "\n";
  21.  
  22. literal = string_literal | integer_literal | float_literal | rational_literal;
  23.  
  24. string_literal = """ ?string? """;
  25.  
  26. integer_literal = ["+"|"-"] {number};
  27.  
  28. float_literal = integer "." {number}; (* 123.4567 *)
  29.  
  30. rational_literal = integer "|" {number}; (* 8|9 -2|3 *)
  31.  
  32.  
  33. standard_rm = "#", (char_literal | sharp_plus_minus | sharp_dot);
  34.  
  35. char_literal = "\", string; (* #\Space #\Newline #\2 #\a и т.д. *)
  36.  
  37. sharp_plus_minus = ("+"|"-"), s_expression, s_expresion;
  38.  
  39. sharp_dot = ".", s_expression;
  40.  
  41.  
  42. letter = "a" | "b" | " ..." | "z";
  43.  
  44. number = "1" | "2" | " ..." | "9";
Advertisement
Add Comment
Please, Sign In to add comment