From ccfab5fc8ea15ba557eafdd7c83afa61f9b5fb31 Mon Sep 17 00:00:00 2001 From: Ian Hinder Date: Thu, 26 Jan 2012 14:03:31 -0600 Subject: kranc2.peg: Add draft Kranc grammar --- Auxiliary/Grammars/kranc2.peg | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Auxiliary/Grammars/kranc2.peg (limited to 'Auxiliary') diff --git a/Auxiliary/Grammars/kranc2.peg b/Auxiliary/Grammars/kranc2.peg new file mode 100644 index 0000000..7017b42 --- /dev/null +++ b/Auxiliary/Grammars/kranc2.peg @@ -0,0 +1,19 @@ +skipper = ([ \t\n\r]+|#.*)* +end = ([ \t]+|#.*)*\r*\n +name = [A-Za-z][A-Za-z0-9]* +uname = [A-Za-z][A-Za-z0-9_]* +indices = ([_^]([a-zA-Z]'*)+)* +tensor = {name}{indices} +dtensor = D{indices} {tensor} +number = -?[0-9]+(\.[0-9]*|)([eEdD][+-]?[0-9]+|) +func = {name} \( {expr} \) +value = {func}|{dtensor}|{tensor}|{number}|\( {expr} \) +pow = {value}( \*\* {value}|) +mulop = [*/%] +mul = {pow}( {mulop} {pow})* +addop = [+-] +expr = {mul}( {addop} {mul})* +eqn = ({dtensor}|{tensor}) \= {expr}{-end} +eqns = {eqn}( {eqn})* +thorn = begin[ ]+thorn {name}{-end}( {calculation})* end[ ]+thorn +calculation = begin[ ]+calculation {uname}{-end} {eqns} end[ ]+calculation -- cgit v1.2.3