X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=tests%2Ffleet.g;h=4d66b4dca16ac8b22dab9bfefe8689695aeef506;hp=bf136c6b0caa27e473fb3c169a025ffc6f5cfbb4;hb=6d848551d1b490f15b63432e3a1d52a4a3240655;hpb=8991d0265d2d0ded4b7a680fcc2a6794c95d9f01 diff --git a/tests/fleet.g b/tests/fleet.g index bf136c6..4d66b4d 100644 --- a/tests/fleet.g +++ b/tests/fleet.g @@ -1,16 +1,12 @@ -// // The FLEET Assembly Language Grammar // As specified in document 2005-ucies06 -// // comments are included where the grammar had to go beyond the strict // "letter of the law" in ies06 -// // Note that this is the *entire, complete* formal specification of // the grammar. An equivalent lex+yacc grammar and support code would // be several times as long. -// Comment !::= "//" ~[\n]* "\n" | "/*" ~[\n]* "*/" @@ -19,12 +15,16 @@ ws ::= w** w ::= [\r\n ] | Comment +Program ::= Statement+ /ws + Statement ::= Move ";"? /ws | "{" Statement* "}" | Port "RENAMES" Port "ENDRENAME" ";" /ws +// | "#define" Port Port /ws -Move ::= Source ^"->" Destination /ws - | Destination ^":=" Source /ws +Move ::= Source ^"->" Destination /ws + | Source ^"=>" Destination /ws + | Destination ^":=" Source /ws Destination ::= Port +/ (ws "," ws) Source ::= Port @@ -33,7 +33,7 @@ Source ::= Port CodeBag ::= CodeBagName? "{" Statement* "}" ";"? /ws // Note: this deviates from ies06 -location ::= shipname ("." portname)? +Port ::= shipname ("." portname)* shipname ::= name index? portname ::= name index? name ::= [A-Za-z] [A-Za-z0-9\[\]\.]*