Skip to content

Latest commit

 

History

History
31 lines (29 loc) · 999 Bytes

langauage-grammar.md

File metadata and controls

31 lines (29 loc) · 999 Bytes

program ::= {statement} statement ::= "dekhao" (expression | string) nl | "AGR" comparison "PHR" nl {statement} "AGRBND" nl | "JAB" comparison "KARO" nl {statement} "JABBND" nl | "YE" ident nl | "JAO" ident nl | "NAM" ident "=" expression nl | "BTAO" ident nl

statement ::= "dekhao"((expression | string) ) nl
| "AGR" comparison "PHR" nl {statement} "AGRBND" nl | "JAB" comparison "KARO" nl {statement} "JABBND" nl | "YE" ident nl | "JAO" ident nl | "NAM" ident "=" expression nl | "BTAO" ident nl

program ::= {statement} statement ::= "PRINT" (expression | string) nl | "IF" comparison "THEN" nl {statement} "ENDIF" nl | "WHILE" comparison "REPEAT" nl {statement} "ENDWHILE" nl | "LABEL" ident nl | "GOTO" ident nl | "LET" ident "=" expression nl | "INPUT" ident nl comparison ::= expression (("==" | "!=" | ">" | ">=" | "<" | "<=") expression)+ expression ::= term {( "-" | "+" ) term} term ::= unary {( "/" | "*" ) unary} unary ::= ["+" | "-"] primary primary ::= number | ident nl ::= '\n'