- All Implemented Interfaces:
- Runnable
public class SeahorseParser
extends Parser
Parser for Seahorse AUV mission files.  The context free grammar that will
 produce Seahorse AUV missions is described by the following set of 
 Chomsky Normal Form (CNF) productions:
 Composite Productions (form of A -> B + C)
 Mission                 -> LaunchCommand + MissionMiddle
 Mission                 -> LaunchCommand + MissionEnd
 MissionMiddle           -> WaypointCommand + MissionMiddle
 MissionMiddle           -> GpsFixCommand + MissionMiddle
 MissionMiddle           -> StationCommand + MissionMiddle
 MissionMiddle           -> SurfaceCommand + MissionMiddle
 MissionMiddle           -> WaypointCommand + MissionEnd
 MissionMiddle           -> GpsFixCommand + MissionEnd
 MissionMiddle           -> StationCommand + MissionEnd
 MissionMiddle           -> SurfaceCommand + MissionEnd
 MissionEnd              -> WaypointCommand + RendezvousCommand
 MissionEnd              -> GpsFixCommand + RendezvousCommand
 MissionEnd              -> StationCommand + RendezvousCommand
 MissionEnd              -> SurfaceCommand + RendezvousCommand
 LaunchCommand           -> LaunchOrderLine + LaunchCommand2
 LaunchCommand2          -> SchedulingInfoLine + LaunchCommand3
 LaunchCommand3          -> ADCPInitLine + TrimInitLine
 WaypointCommand         -> WaypointOrderLine + WaypointCommand2
 WaypointCommand2        -> SchedulingInfoLine + WaypointCommand3
 WaypointCommand3        -> LatLongPoint + WaypointCommand4
 WaypointCommand3        -> RelativePoint + WaypointCommand4
 WaypointCommand4        -> TransitModeLine + WaypointCommand5
 WaypointCommand5        -> TransitDepthLine + WaypointCommand6
 WaypointCommand6        -> TransitSpeedLine + UseSssLine
 GPSFixCommand           -> GPSFixOrderLine + GPSFixCommand2
 GPSFixCommand2          -> SchedulingInfoLine + GPSFixCommand3
 GPSFixCommand3          -> CollectSVPLine + ReturnToStartLine
 StationCommand          -> StationOrderLine + StationCommand2
 StationCommand2         -> SchedulingInfoLine + StationCommand3
 StationCommand3         -> UntilWhenLine + StationCommand4
 StationCommand4         -> LatLongPoint + StationCommand5
 StationCommand4         -> RelativePoint + StationCommand5
 StationCommand5         -> TransitDepthLine + LoiterDepthLine
 SurfaceCommand          -> SurfaceOrderLine + SurfaceCommand2
 SurfaceCommand2         -> SchedulingInfoLine + SurfaceCommand3
 SurfaceCommand3         -> CollectSVPLine + SurfaceCommand4
 SurfaceCommand4         -> ReturnToDepthLine + SurfaceCommand5
 SurfaceCommand5         -> ReturnToStartLine + SurfaceCommand6
 SurfaceCommand6         -> TakeGPSLine + PerformRFLine
 RendezvousCommand       -> RendezvousOrderLine + RendezvousCommand2
 RendezvousCommand2      -> SchedulingInfoLine + RendezvousCommand3
 RendezvousCommand3      -> RendezvousLatLine + RendezvousCommand4
 RendezvousCommand4      -> RendezvousLongLine + RendezvousCommand5
 RendezvousCommand5      -> TransitDepthLine + RendezvousCommand6
 RendezvousCommand6      -> TransitSpeed2Line + RendezvousCommand7
 RendezvousCommand7      -> GPSFixBeforeLine + GPSFixAfterLine
 LaunchOrderLine         -> StartOrderSet + LaunchOrderSet
 SchedulingInfoLine      -> SchedulingInfoSet + BooleanSet
 ADCPInitLine            -> ADCPInitializationSet + NoneSet
 TrimInitLine            -> TrimInitializationSet + NoneSet
 LatLongPoint            -> DestLatLine + DestLongLine
 RelativePoint           -> NorthOffsetLine + EastOffsetLine
 WaypointOrderLine       -> StartOrderSet + WaypointOrderSet
 DestLatLine             -> DestinationLatitudeSet + AngleSet
 DestLongLine            -> DestinationLongitudeSet + AngleSet
 NorthOffsetLine         -> NorthOffsetSet + MetersSet
 NorthOffsetLine         -> NorthOffsetSet + YardsSet
 NorthOffsetLine         -> NorthOffsetSet + KilometersSet
 NorthOffsetLine         -> NorthOffsetSet + KiloyardsSet
 EastOffsetLine          -> EastOffsetSet + MetersSet
 EastOffsetLine          -> EastOffsetSet + YardsSet
 EastOffsetLine          -> EastOffsetSet + KilometersSet
 EastOffsetLine          -> EastOffsetSet + KiloyardsSet
 TransitModeLine         -> TransitModeSet + SteerModeSet
 TransitDepthLine        -> TransitDepthSet + MetersSet
 TransitDepthLine        -> TransitDepthSet + FeetSet
 TransitSpeedLine        -> TransitSpeedSet + SpeedSet
 TransitSpeed2Line       -> TransitSpeed2Set + SpeedSet
 UseSssLine              -> UseSssSet + BooleanSet
 GPSFixOrderLine         -> StartOrderSet + GPSFixOrderSet
 CollectSVPLine          -> CollectSVPSet + BooleanSet
 ReturnToStartLine       -> ReturnToStartSet + BooleanSet
 StationOrderLine        -> StartOrderSet + StationOrderSet
 UntilWhenLine           -> UntilWhenSet + TimeSet
 LoiterDepthLine         -> LoiterDepthSet + ShortDistanceSet
 SurfaceOrderLine        -> StartOrderSet + SurfaceOrderSet
 ReturnToDepthLine       -> ReturnToDepthSet + BooleanSet
 TakeGPSLine             -> TakeGPSSet + BooleanSet
 PerformRFLine           -> PerformRFSet + BooleanSet
 RendezvousOrderLine     -> StartOrderSet + RendezvousOrderSet
 RendezvousLatLine       -> RendezvousLatSet + AngleSet
 RendezvousLongLine      -> RendezvousLongSet + AngleSet
 GPSFixBeforeLine        -> GPSFixBeforeSet + BooleanSet
 GPSFixAfterLine         -> GPSFixAfterSet + BooleanSet
 StartOrderSet           -> StartOrder + Colon
 SchedulingInfoSet       -> SchedulingInfoTimed + Colon
 ADCPInitializationSet   -> ADCPInitialization + Colon
 TrimInitializationSet   -> TrimInitialization + Colon
 DestinationLatitudeSet  -> DestinationLatitude + Colon
 DestinationLongitudeSet -> DestinationLongitude + Colon
 NorthOffsetSet          -> NorthOffset + Colon
 EastOffsetSet           -> EastOffset + Colon
 TransitModeSet          -> TransitMode + Colon
 TransitDepthSet         -> TransitDepth + Colon
 TransitDepthSet         -> TransitAltitude + Colon
 TransitSpeedSet         -> TransitSpeed + Colon
 TransitSpeed2Set        -> TransitSpeed2 + Colon
 CollectSVPSet           -> CollectSVP + Colon
 ReturnToStartSet        -> ReturnToStart + Colon
 UseSssSet               -> UseSss + Colon
 UntilWhenSet            -> UntilWhen + Colon
 LoiterDepthSet          -> LoiterDepth + Colon
 ReturnToDepthSet        -> ReturnToDepth + Colon
 TakeGPSSet              -> TakeGPS + Colon
 PerformRFSet            -> PerformRF + Colon
 RendezvousLatSet        -> RendezvousLat + Colon
 RendezvousLongSet       -> RendezvousLong + Colon
 GPSFixBeforeSet         -> GPSFixBefore + Colon
 GPSFixAfterSet          -> GPSFixAfter + Colon
 LaunchOrderSet          -> LaunchOrder + EOL
 WaypointOrderSet        -> WaypointOrder + EOL
 GPSFixOrderSet          -> GPSFixOrder + EOL
 StationOrderSet         -> StationOrder + EOL
 SurfaceOrderSet         -> SurfaceOrder + EOL
 RendezvousOrderSet      -> RendezvousOrder + EOL
 AngleSet                -> Angle + EOL
 Angle                   -> Number + AngleUnit
 SteerModeSet            -> SteerMode + EOL
 MetersPair              -> Number + Meters
 FeetPair                -> Number + Feet
 YardsPair               -> Number + Yards
 KilometersPair          -> Number + Kilometers
 KiloyardsPair           -> Number + Kiloyards
 MetersSet               -> MetersPair + EOL
 FeetSet                 -> FeetPair + EOL
 YardsSet                -> YardsPair + EOL
 KilometersSet           -> KilometersPair + EOL
 KiloyardsSet            -> KiloyardsPair + EOL
 SpeedSet                -> Speed + EOL
 Speed                   -> Number + SpeedUnit
 TimeSet                 -> Time + EOL
 Time                    -> Number + TimeUnit
 BooleanSet              -> Boolean + EOL
 FillSet                 -> Fill + EOL
 PartialSet              -> Partial + EOL
 Terminal Productions (form of A -> "b")
 StartOrder              -> Start_Order
 LaunchOrder             -> Launch_Order
 WaypointOrder           -> Waypoint_Navigation_Order
 GPSFixOrder             -> GPS_Fix_Order
 StationOrder            -> Station_Keep_Order
 SurfaceOrder            -> Surface_Comms_Order
 RendezvousOrder         -> Rendezvous_Order
 SchedulingInfoTimed     -> Scheduling_Info_Is_Timed
 ADCPInitialization      -> ADCP_Initialization
 TrimInitialization      -> Trim_Initialization
 DestinationLatitude     -> Destination_Latitude
 DestinationLongitude    -> Destination_Longitude
 NorthOffset             -> North_Offset
 EastOffset              -> East_Offset
 TransitMode             -> Transit_Mode
 TransitDepth            -> Transit_Depth | Transit_Altitude
 TransitSpeed            -> Transit_Speed_In_Water | Transit_Speed_Over_Ground
 TransitSpeed2           -> Transit_Speed
 CollectSVP              -> Collect_SVP
 ReturnToStart           -> Return_to_Starting_Point
 UseSss                  -> use_sss
 UntilWhen               -> Until_When
 ReturnToDepth           -> Return_to_Depth
 TakeGPS                 -> Take_GPS_Fix
 PerformRF               -> Perform_RF_Comms
 RendezvousLat           -> Rendezvous_Latitude
 RendezvousLong          -> Rendezvous_Longitude
 GPSFixBefore            -> GPS_Fix_Before_Departure
 GPSFixAfter             -> GPS_Fix_After_Arrival
 Boolean                 -> True, False
 EOL                     -> ###END_OF_LINE###
 Colon                   -> :
 Number                  -> decimal number
 Meters                  -> Meters
 Feet                    -> Feet
 Kilometers              -> Kilometers
 Yards                   -> Yards
 Kiloyards               -> Kiloyards
 AngleUnit               -> Degrees | Radians
 TimeUnit                -> Seconds | Minutes | Hours
 SpeedUnit               -> Knots | Meters_per_Second
 SteerMode               -> Steer_to_Point | Steer_to_Line
 Fill                    -> None | Full
 Partial                 -> Partial
- Author:
- dtdavis