@ParseMethod(start="bnf", whiteSpace={"s"}) @Override public void parseBnf( CharSequence text, @ParserContext("GRAMMAR") Grammar g ) { throw new UnsupportedOperationException(); }
@Rule({"symbol", "products", "seqs", "ln"}) protected void rule(String symbol, List<String> seq, @ParserContext("GRAMMAR") Grammar g) { g.addRule(symbol, seq); } /*
@Rule("'!AIVDO'") protected void aivdo(@ParserContext("aisContext") AISContext aisContext) { if (aisContext != null) { aisContext.setOwnMessage(true); } }
@Rule("integer") protected void sat12(int id, @ParserContext("data") NMEAObserver data) { data.setSatelliteId12(id); }
@Rule("integer") protected void totalNumberOfSatellitesInView(int count, @ParserContext("data") NMEAObserver data) { data.setTotalNumberOfSatellitesInView(count); }
@Rule("integer") protected void azimuth(int azimuth, @ParserContext("data") NMEAObserver data) { data.setAzimuth(azimuth); }
@Rule("string") protected void proprietaryType( String type, @ParserContext("data") NMEAObserver data) { data.setProprietaryType(type); } @Rule("stringList")
@Rule("integer") protected void localZoneHours( int localZoneHours, @ParserContext("clock") NMEAClock clock) { clock.setZoneHours(localZoneHours); }
@Rule("decimal") protected void starboardRudderSensor( float starboardRudderSensor, @ParserContext("data") NMEAObserver data) { data.setStarboardRudderSensor(starboardRudderSensor); }
@Rule("hex") protected void argumentOfPerigee( int argumentOfPerigee, @ParserContext("data") NMEAObserver data) { data.setArgumentOfPerigee(argumentOfPerigee); }
@Rule("hex") protected void inclinationAngle( int inclinationAngle, @ParserContext("data") NMEAObserver data) { data.setInclinationAngle(inclinationAngle); }
@Rule("string") protected void route( String route, @ParserContext("data") NMEAObserver data) { data.setRoute(route); }
@Rule("digit2 digit2 digit2") protected void date( int day, int month, int year, @ParserContext("clock") NMEAClock clock) { clock.setDate(year, month, day); }
@Rule("letter") protected void status( char status, @ParserContext("data") NMEAObserver data) { data.setStatus(status); }
@Rule("decimal") protected void ageOfDifferentialGPSData( float ageOfDifferentialGPSData, //time in seconds since last SC104 type 1 or 9 update, null field when DGPS is not used @ParserContext("data") NMEAObserver data) { data.setAgeOfDifferentialGPSData(ageOfDifferentialGPSData); }
@Rule("decimal") protected void bearingToDestination( float bearingToDestination, // degrees @ParserContext("data") NMEAObserver data) { data.setBearingToDestination(bearingToDestination); }
@Rule("'THS'") protected void ths(@ParserContext("data") NMEAObserver data) { data.setMessageType(MessageType.THS); } @Rule("'TLB'")
@Rule("decimal c letter") protected void arrivalCircleRadius( float arrivalCircleRadius, char units, @ParserContext("data") NMEAObserver data) { data.setArrivalCircleRadius(distance(arrivalCircleRadius, units)); }
@Rule("decimal") protected void speedOverGroundKilometers( float speed, @ParserContext("data") NMEAObserver data) { data.setSpeedOverGround(toKnots(speed, 'K')); }
@Rule("coordinate c ns c coordinate c ew") protected void location( float latitude, int ns, float longitude, int ew, @ParserContext("data") NMEAObserver data) { data.setLatitude(ns * latitude); data.setLongitude(ew * longitude); }