Advertisement
FrankTominc

BNF Math Expression

May 7th, 2014
3,287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
BNF 2.36 KB | None | 0 0
  1. Initial symbol = <expression>
  2.  
  3. <expression> ::= <arithmetic_expression> | <boolean_expression>
  4.  
  5. <arithmetic_expression> ::= <arithmetic_expression_type> |
  6.                 <arithmetic_expression_type><operator><arithmetic_expression> |
  7.                 <parentized_expression> |
  8.                 <parentized_expression><operator><arithmetic_expression> |
  9.                 <polynomial_expression_with_result>
  10.  
  11. <arithmetic_expression_type> ::= <function> | <number> | <polynomial_expression>
  12.  
  13. <parentized_expression> ::= "(" <arithmetic_expression> ")"
  14.  
  15. <boolean_expression> ::= <boolean_condition> |
  16.              <boolean_condition> <boolean_operator> <boolean_expression> |
  17.              <parentized_boolean_expression> |
  18.              <parentized_boolean_expression><boolean_operator><boolean_expression>
  19.  
  20. <parentized_boolean_expression> ::= "(" <boolean_expression> ")"
  21.  
  22. <number> ::= <integer> | <float> | <signal><integer> | <signal><float>
  23.  
  24. <integer> ::= <digit> | <digit><integer>
  25.  
  26. <float> ::= <integer>"."<integer>
  27.  
  28. <digit> ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "0"
  29.  
  30. <letter> ::= "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" |
  31.          "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" |
  32.          "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" |
  33.          "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z"
  34.  
  35. <signal> ::= "-" | "+"
  36.  
  37. <operator> ::= "+" | "-" | "*" | "/" | "^" | "%"
  38.  
  39. <relational_operator> ::= ">" | "<" | ">=" | "<=" | "=="
  40.  
  41. <boolean_operator> ::= "&&" | "||"
  42.  
  43. <boolean_condition> ::= "true" | "false"
  44.  
  45. <function> ::= <function_name> "(" <parameter_list> ")"
  46.  
  47. <function_name> ::= <letter> <name>
  48.  
  49. <name> ::= <letter> | <digit> | <letter><name> | <digit><name> | ""
  50.  
  51. <parameter_list> ::= <parameter> | <parameter>","<parameter_list>
  52.  
  53. <parameter> ::= <function> | <number> | <polynomial_expression>
  54.  
  55. <polynomial_expression> ::= <polynomial_term> |
  56.                 <polynomial_term> <operator> <polynomial_expression>
  57.  
  58. <polynomial_term> ::= <letter><exponent> |
  59.               <signal><letter><exponent> |
  60.               <number><letter><exponent>
  61.  
  62. <exponent> ::=  "^"<function><exponent> |
  63.         "^"<polynomial_expression> |
  64.         "^"<number><exponent> | ""
  65.  
  66. <polynomial_expression_with_result> ::= <polynomial_expression> "=" <result>
  67.  
  68. <result> ::= <function> | <number> | <polynomial_expression>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement