checkpoint
[sbp.git] / tests / fleet.g
index bf136c6..4677496 100644 (file)
@@ -1,43 +1,43 @@
-//
 // 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"
+Comment     !  = "//" ~[\n]* "\n"
                | "/*" ~[\n]* "*/"
 
-ws           ::= w**
-w            ::= [\r\n ]
+ws             = w**
+w              = [\r\n ]
                | Comment
 
-Statement    ::= Move ";"?                             /ws
+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
+Destination    = Port +/ (ws "," ws)
+Source         = Port
                | CodeBag
 
-CodeBag      ::= CodeBagName? "{" Statement* "}" ";"?  /ws
+CodeBag        = CodeBagName? "{" Statement* "}" ";"?  /ws
 
 // Note: this deviates from ies06
-location     ::= shipname ("." portname)?
-shipname     ::= name     index?
-portname     ::= name     index?
-name         ::= [A-Za-z] [A-Za-z0-9\[\]\.]*
-index        ::= "[" [0-9]+ "]"
+Port           = shipname ("." portname)*
+shipname       = name     index?
+portname       = name     index?
+name           = [A-Za-z] [A-Za-z0-9\[\]\.]*
+index          = "[" [0-9]+ "]"
                | [0-9]+