X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Ffleet%2Fassembler%2Ffleet.g;h=4158d189d32f4c1144ecbbb9f66444502fbd8676;hb=622cea8d6dca90fa850282d5e29cac824078f55d;hp=d11d42e6d70a649caf33ca653f977f890168b7fe;hpb=0d8bbd0e10c8004b683373524e1951daf6c9c6a4;p=fleet.git diff --git a/src/edu/berkeley/fleet/assembler/fleet.g b/src/edu/berkeley/fleet/assembler/fleet.g index d11d42e..4158d18 100644 --- a/src/edu/berkeley/fleet/assembler/fleet.g +++ b/src/edu/berkeley/fleet/assembler/fleet.g @@ -33,27 +33,31 @@ Command = Nop:: "nop" | Discard:: "dismiss" | Take:: ("take"|"receive") | SendTo:: "sendto" ws! Port + | DataOutDest:: "send" | Deliver:: "deliver" | Ack:: "notify" ws! Port Source = Port | ShipSpecific -SSL = ShipSpecificLiteral:: shiptype "." ShipSpecificLiteral +SSL = ShipSpecificLiteral:: shiptype "." portname "[" SSLSpec "]" Port = Port:: shipname "." portname | SubPort:: shipname "." portname "." portname | ^"()" +SSLSpec:: = SSLElement +/ "," +SSLElement = "":: [a-zA-Z0-9=_]++ + CodeBagBody:: = Statement +/ ws CodeBag = CodeBagRef:: CodeBagName | AnonymousCodeBag:: "{" CodeBagBody "}" /ws CodeBagName = name shipname = name -shiptype = Name:: [A-Z] ("":: [A-Za-z0-9\[\]_]**) -ShipSpecificLiteral = Name:: [A-Z] ("":: [A-Z0-9\[\]_]**) -portname = Name:: [a-z] ("":: [A-Za-z0-9\[\]_]**) -name = Name:: [A-Za-z] ("":: [A-Za-z0-9\[\]_]**) +shiptype = Name:: [A-Z] ("":: [A-Za-z0-9_]**) +ShipSpecificLiteral = Name:: [A-Z] ("":: [A-Z0-9_]**) +portname = Name:: [a-z] ("":: [A-Za-z0-9_]**) +name = Name:: [A-Za-z] ("":: [A-Za-z0-9_]**) index = "[" ("":: [0-9]+) "]" | ("":: [0-9]+) int = "":: [\-0-9]++ ShipSpecific = ShipSpecific:: "\"" (~[\"])++ "\"" @@ -66,4 +70,5 @@ Directive = "#memory" "{" (Memory:: int +/ (ws! "," ws!)) "}" /ws | Include:: "#include" ws! "\"" ~[\"]+ "\"" | Ship:: "#ship" shipname ":" ("":: [0-9A-Za-z_.]++) /ws | Expect:: "#expect" int /ws + | Skip:: "#skip"