syn packet($ /* synthesized */)
   (  Packets(Syn95)
   )
end
syn Packet($ /* synthesized */)
   (  Message(Syn91)
   [] Bundle(Syn93)
   )
end
syn Packets($ /* synthesized */)
   (  Syn71 Syn70 in
      Syn53(Syn71 Syn70) 
      => Syn70 = nil
	 Syn71
   )
end
syn Message($ /* synthesized */)
   (  Syn52 Syn51 in
      addressPattern(Syn51) Args(Syn52) 
      => {List.toTuple Syn51 Syn52}
   )
end
syn Messages($ /* synthesized */)
   (  Syn46 Syn45 in
      Syn28(Syn46 Syn45) 
      => Syn45 = nil
	 Syn46
   )
end
syn Timetag($ /* synthesized */)
   (  Syn26 in
      int(Syn26) 
      => if Syn26 == 1 then
	    1.0
	 else
	    raise
	       unrecognisedTimetag(Syn26 'this should never happen')
	    end
	 end
   [] Syn27 in
      hex(Syn27) 
      => {OSC.ntpToUnixTime1000 {OSC.hexToDecimal1000 Syn27}}
   )
end
syn Arg($ /* synthesized */)
   (  int(Syn80)
   [] float(Syn82)
   [] string(Syn84)
   )
end
syn Args($ /* synthesized */)
   (  Syn23 Syn22 in
      Syn5(Syn23 Syn22) 
      => Syn22 = nil
	 Syn23
   )
end
syn Bundle($ /* synthesized */)
   (  Syn4 Syn3 in
      '[' Timetag(Syn3) Packets(Syn4) ']' 
      => Syn3|Syn4
   )
end
syn Line($ /* synthesized */)
   (  skip
      => {GumpParser.'class', getScanner($) getLineNumber($)}
   )
end
syn Syn5(Syn6 /* synthesized */ Syn7 /* synthesized */)
   (  skip
      => Syn6 = Syn7
   [] Syn25 Syn24 in
      Syn5(!Syn6 Syn25) Arg(!Syn24) 
      => Syn25 = Syn24|Syn7
   )
end
syn Syn28(Syn29 /* synthesized */ Syn30 /* synthesized */)
   (  skip
      => Syn29 = Syn30
   [] Syn48 Syn47 in
      Syn28(!Syn29 Syn48) Message(!Syn47) 
      => Syn48 = Syn47|Syn30
   )
end
syn Syn53(Syn54 /* synthesized */ Syn55 /* synthesized */)
   (  skip
      => Syn54 = Syn55
   [] Syn73 Syn72 in
      Syn53(!Syn54 Syn73) Packet(!Syn72) 
      => Syn73 = Syn72|Syn55
   )
end