- 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