From f185141f7dc3b74364be086c78d1c4f7f19da816 Mon Sep 17 00:00:00 2001 From: Valk Richard Li <48872266+ValKmjolnir@users.noreply.github.com> Date: Wed, 4 Sep 2019 19:39:14 +0800 Subject: [PATCH] Add bnf --- version0.11/bnf.bison | 123 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 version0.11/bnf.bison diff --git a/version0.11/bnf.bison b/version0.11/bnf.bison new file mode 100644 index 0000000..d9fb280 --- /dev/null +++ b/version0.11/bnf.bison @@ -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 + ; \ No newline at end of file