아래의 표기는 EBNF 표기법을 따릅니다.

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}