아래의 표기는 EBNF 표기법을 따릅니다.
또한 아래의 표기는 semilang 깃허브에 구현된 문법을 의미합니다.
<block> ::= <stat> {<stat>}
<stat> ::= <define> | <print> | <if>
<define> ::= <identifier> 'is' <expr>
<print> ::= 'print' <expr>
<if> ::= 'if' <expr> 'then' <block> <else>
<else> ::= 'else' <if> | 'else' <block> 'end'
<expr> ::= <number> | <identifier> | <expr> <binop> <expr>
<binop> ::= '+' | '-' | '*' | '/' | '<' | '>'
<number> ::= (0-9) {0-9}
<identifier> ::= (a-z | A-Z | _) {a-z | A-Z | _ | 0-9}