Add bnf
This commit is contained in:
parent
f795ef374e
commit
f185141f7d
|
@ -0,0 +1,123 @@
|
||||||
|
%%
|
||||||
|
id
|
||||||
|
:IDENTIFIER
|
||||||
|
;
|
||||||
|
scalar
|
||||||
|
:number
|
||||||
|
|string
|
||||||
|
|char
|
||||||
|
|calculation
|
||||||
|
;
|
||||||
|
call
|
||||||
|
:call_list
|
||||||
|
|call_hash
|
||||||
|
|call_function
|
||||||
|
;
|
||||||
|
datas
|
||||||
|
:id,id
|
||||||
|
|id,scalar
|
||||||
|
|id,call
|
||||||
|
|scalar,id
|
||||||
|
|scalar,scalar
|
||||||
|
|scalar,call
|
||||||
|
|call,id
|
||||||
|
|call,scalar
|
||||||
|
|call,call
|
||||||
|
|id,datas
|
||||||
|
|scalar,datas
|
||||||
|
|call,datas
|
||||||
|
;
|
||||||
|
hash_member
|
||||||
|
:id:id
|
||||||
|
|id:scalar
|
||||||
|
|id:call
|
||||||
|
;
|
||||||
|
hash_members
|
||||||
|
:hash_member,hash_member
|
||||||
|
|hash_member,hash_members
|
||||||
|
;
|
||||||
|
list
|
||||||
|
:[]
|
||||||
|
|[id]
|
||||||
|
|[scalar]
|
||||||
|
|[call]
|
||||||
|
|[datas]
|
||||||
|
;
|
||||||
|
hash
|
||||||
|
:{}
|
||||||
|
|{hash_member}
|
||||||
|
|{hash_members}
|
||||||
|
;
|
||||||
|
call_list
|
||||||
|
:id list
|
||||||
|
|call list
|
||||||
|
|id[hash_member]
|
||||||
|
|call[hash_member]
|
||||||
|
|id[id:]
|
||||||
|
|id[scalar:]
|
||||||
|
|id[call:]
|
||||||
|
|call[id:]
|
||||||
|
|call[scalar:]
|
||||||
|
|call[call:]
|
||||||
|
;
|
||||||
|
call_hash
|
||||||
|
:id.id
|
||||||
|
|id.call
|
||||||
|
|call.id
|
||||||
|
|call.call
|
||||||
|
;
|
||||||
|
calculation
|
||||||
|
:id operator id
|
||||||
|
|id operator scalar
|
||||||
|
|id operator call
|
||||||
|
|scalar operator id
|
||||||
|
|scalar operator scalar
|
||||||
|
|scalar operator call
|
||||||
|
|call operator id
|
||||||
|
|call operator scalar
|
||||||
|
|call operator call
|
||||||
|
|(id)
|
||||||
|
|(scalar)
|
||||||
|
|(call)
|
||||||
|
|! id
|
||||||
|
|! scalar
|
||||||
|
|! call
|
||||||
|
|+-id
|
||||||
|
|+-scalar
|
||||||
|
|+-call
|
||||||
|
;
|
||||||
|
definition
|
||||||
|
:var id = id;
|
||||||
|
|var id = scalar;
|
||||||
|
|var id = call;
|
||||||
|
|var id = list;
|
||||||
|
|var id = hash;
|
||||||
|
|var id = function
|
||||||
|
assignment
|
||||||
|
:id = id;
|
||||||
|
|id = scalar;
|
||||||
|
|id = call;
|
||||||
|
|id = function
|
||||||
|
|id = list;
|
||||||
|
|id = hash;
|
||||||
|
|call = id;
|
||||||
|
|call = scalar;
|
||||||
|
|call = call;
|
||||||
|
|call = function
|
||||||
|
|call = list;
|
||||||
|
|call = hash;
|
||||||
|
;
|
||||||
|
statement
|
||||||
|
:return id;
|
||||||
|
|return scalar;
|
||||||
|
|return call;
|
||||||
|
|return function;
|
||||||
|
|return list;
|
||||||
|
|return hash;
|
||||||
|
|continue;
|
||||||
|
|break;
|
||||||
|
|definition
|
||||||
|
|assignment
|
||||||
|
|loop
|
||||||
|
|choose
|
||||||
|
;
|
Loading…
Reference in New Issue