This commit is contained in:
Valk Richard Li 2019-09-04 19:39:14 +08:00 committed by GitHub
parent f795ef374e
commit f185141f7d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 123 additions and 0 deletions

123
version0.11/bnf.bison Normal file
View File

@ -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
;