298 lines
5.4 KiB
Plaintext
298 lines
5.4 KiB
Plaintext
%%
|
|
id
|
|
:IDENTIFIER
|
|
;
|
|
scalar
|
|
:number
|
|
|string
|
|
|char
|
|
|calculation
|
|
;
|
|
call
|
|
:call_list
|
|
|call_hash
|
|
|call_function
|
|
;
|
|
datas
|
|
:id,id
|
|
|id,scalar
|
|
|id,call
|
|
|id,function
|
|
|id,list
|
|
|id,hash
|
|
|scalar,id
|
|
|scalar,scalar
|
|
|scalar,call
|
|
|scalar,function
|
|
|scalar,list
|
|
|scalar,hash
|
|
|call,id
|
|
|call,scalar
|
|
|call,call
|
|
|call,function
|
|
|call,list
|
|
|call,hash
|
|
|function,id
|
|
|function,scalar
|
|
|function,call
|
|
|function,function
|
|
|function,list
|
|
|function,hash
|
|
|list,id
|
|
|list,scalar
|
|
|list,call
|
|
|list,function
|
|
|list,list
|
|
|list,hash
|
|
|hash,id
|
|
|hash,scalar
|
|
|hash,call
|
|
|hash,function
|
|
|hash,list
|
|
|hash,hash
|
|
|list,datas
|
|
|hash,datas
|
|
|id,datas
|
|
|scalar,datas
|
|
|call,datas
|
|
|function,datas
|
|
;
|
|
hash_member
|
|
:id:id
|
|
|id:scalar
|
|
|id:call
|
|
|id:function
|
|
;
|
|
hash_members
|
|
:hash_member,hash_member
|
|
|hash_member,hash_members
|
|
;
|
|
list
|
|
:[]
|
|
|[id]
|
|
|[scalar]
|
|
|[call]
|
|
|[function]
|
|
|[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
|
|
|id.scalar
|
|
|call.id
|
|
|call.call
|
|
|call.scalar
|
|
;
|
|
call_function
|
|
:id()
|
|
|id(id)
|
|
|id(scalar)
|
|
|id(call)
|
|
|id(list)
|
|
|id(hash)
|
|
|id(function)
|
|
|id(datas)
|
|
|
|
calculation
|
|
:id two_operator id
|
|
|id two_operator scalar
|
|
|id two_operator call
|
|
|scalar two_operator id
|
|
|scalar two_operator scalar
|
|
|scalar two_operator call
|
|
|call two_operator id
|
|
|call two_operator scalar
|
|
|call two_operator call
|
|
|(id)
|
|
|(scalar)
|
|
|(call)
|
|
|! id
|
|
|! scalar
|
|
|! call
|
|
|__add0 -id
|
|
|__add0 -scalar
|
|
|__add0 -call
|
|
|__add0 +id
|
|
|__add0 +scalar
|
|
|__add0 +call
|
|
;
|
|
two_operator
|
|
:+
|
|
|-
|
|
|*
|
|
|/
|
|
|~
|
|
|==
|
|
|>
|
|
|>=
|
|
|<
|
|
|<=
|
|
|!=
|
|
|and
|
|
|or
|
|
;
|
|
assignment_operator
|
|
:+=
|
|
|-=
|
|
|*=
|
|
|/=
|
|
|~=
|
|
;
|
|
|
|
function
|
|
:func{}
|
|
|func{statement}
|
|
|func{statements}
|
|
|func(){}
|
|
|func(){statement}
|
|
|func(){statements}
|
|
|func(id){}
|
|
|func(id){statement}
|
|
|func(id){statements}
|
|
|func(scalar){}
|
|
|func(scalar){statement}
|
|
|func(scalar){statements}
|
|
|func(call){}
|
|
|func(call){statement}
|
|
|func(call){statements}
|
|
|func(list){}
|
|
|func(list){statement}
|
|
|func(list){statements}
|
|
|func(hash){}
|
|
|func(hash){statement}
|
|
|func(hash){statements}
|
|
|func(function){}
|
|
|func(function){statement}
|
|
|func(function){statements}
|
|
|func(dynamic_id){}
|
|
|func(dynamic_id){statement}
|
|
|func(dynamic_id){statements}
|
|
|func(datas){}
|
|
|func(datas){statement}
|
|
|func(datas){statements}
|
|
|
|
choose
|
|
:if(id){}
|
|
|if(scalar){}
|
|
|if(call){statement}
|
|
|if(id){statement}
|
|
|if(scalar){statement}
|
|
|if(call){statement}
|
|
|if(id){statements}
|
|
|if(scalar){statements}
|
|
|if(call){statements}
|
|
|else if(id){}
|
|
|else if(scalar){}
|
|
|else if(call){statement}
|
|
|else if(id){statement}
|
|
|else if(scalar){statement}
|
|
|else if(call){statement}
|
|
|else if(id){statements}
|
|
|else if(scalar){statements}
|
|
|else if(call){statements}
|
|
|elsif(id){}
|
|
|elsif(scalar){}
|
|
|elsif(call){statement}
|
|
|elsif(id){statement}
|
|
|elsif(scalar){statement}
|
|
|elsif(call){statement}
|
|
|elsif(id){statements}
|
|
|elsif(scalar){statements}
|
|
|elsif(call){statements}
|
|
|else{}
|
|
|else{statement}
|
|
|else{statements}
|
|
|
|
loop
|
|
:while(id){}
|
|
|while(scalar){}
|
|
|while(call){}
|
|
|while(id){statement}
|
|
|while(scalar){statement}
|
|
|while(call){statement}
|
|
|while(id){statements}
|
|
|while(scalar){statements}
|
|
|while(call){statements}
|
|
|forindex|foreach(statement id){}
|
|
|forindex|foreach(statement scalar){}
|
|
|forindex|foreach(statement call){}
|
|
|forindex|foreach(statement list){}
|
|
|forindex|foreach(statement id){statement}
|
|
|forindex|foreach(statement scalar){statement}
|
|
|forindex|foreach(statement call){statement}
|
|
|forindex|foreach(statement list){statement}
|
|
|forindex|foreach(statement id){statements}
|
|
|forindex|foreach(statement scalar){statements}
|
|
|forindex|foreach(statement call){statements}
|
|
|forindex|foreach(statement list){statements}
|
|
|for(statement pre_assignment){}
|
|
|for(statement pre_assignment){statement}
|
|
|for(statement pre_assignment){statements}
|
|
|
|
definition
|
|
:var id = id;
|
|
|var id = scalar;
|
|
|var id = call;
|
|
|var id = list;
|
|
|var id = hash;
|
|
|var id = function;
|
|
|var id;
|
|
pre_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
|
|
|id assignment_operator id
|
|
|id assignment_operator scalar
|
|
|id assignment_operator call
|
|
|call assignment_operator id
|
|
|call assignment_operator scalar
|
|
|call assignment_operator call
|
|
;
|
|
assignment
|
|
:pre_assignment ;
|
|
;
|
|
return_scalar
|
|
:return id;
|
|
|return scalar;
|
|
|return call;
|
|
|return function;
|
|
|return list;
|
|
|return hash;
|
|
|return;
|
|
;
|
|
statement
|
|
:continue;
|
|
|break;
|
|
|return_scalar
|
|
|definition
|
|
|assignment
|
|
|loop
|
|
|choose
|
|
;
|