kriw / imp-lang

Imperative language interpreter/compiler written in OCaml

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BNF

<toplevel> ::= <statement>*

<statement> ::= var <ident> = <expr>
              | <ident> = <expr>
              | if (<expr>) { <statement>* } else { <statement> }
              | while (<expr>) { <statement>* }

<ident> ::= [a-zA-Z][a-zA-Z0-9_]*

<expr> ::= <const> 
         | <ident>
         | <expr> <operator> <expr>

<operator> ::= + | - | * | / | % | == | != | and | or | < | <=;

<const> ::= <Bool> | <Int>

<Bool> ::= true | false

<Int> ::= [1-9][0-9]*

About

Imperative language interpreter/compiler written in OCaml


Languages

Language:OCaml 96.9%Language:Standard ML 1.9%Language:Shell 1.2%