diff options
Diffstat (limited to 'my-evolution/metar.h')
-rw-r--r-- | my-evolution/metar.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/my-evolution/metar.h b/my-evolution/metar.h new file mode 100644 index 0000000000..ae9b1644d6 --- /dev/null +++ b/my-evolution/metar.h @@ -0,0 +1,46 @@ +/* + * metar.h + */ + +#ifndef __METAR_H__ +#define __METAR_H__ + +#define TIME_RE_STR "^([0-9]{6})Z$" +#define WIND_RE_STR "^(([0-9]{3})|VRB)([0-9]?[0-9]{2})(G[0-9]?[0-9]{2})?KT$" +#define VIS_RE_STR "^(([0-9]?[0-9])|(M?1/[0-9]?[0-9]))SM$" +#define CLOUD_RE_STR "^(CLR|BKN|SCT|FEW|OVC)([0-9]{3})?$" +#define TEMP_RE_STR "^(M?[0-9][0-9])/(M?[0-9][0-9])$" +#define PRES_RE_STR "^(A|Q)([0-9]{4})$" +#define COND_RE_STR "^(-|\\+)?(VC|MI|BC|PR|TS|BL|SH|DR|FZ)?(DZ|RA|SN|SG|IC|PE|GR|GS|UP|BR|FG|FU|VA|SA|HZ|PY|DU|SQ|SS|DS|PO|\\+?FC)$" + +enum { + TIME_RE, + WIND_RE, + VIS_RE, + CLOUD_RE, + TEMP_RE, + PRES_RE, + COND_RE, + RE_NUM +}; + +const char *weather_sky_string (Weather *w); +char *weather_temp_string (Weather *w); +const char *weather_conditions_string (Weather *w); + +void metar_init_re (void); +gboolean metar_tok_time (char *token, + Weather *w); +gboolean metar_tok_wind (char *tokp, + Weather *w); +gboolean metar_tok_vis (char *tokp, + Weather *w); +gboolean metar_tok_cloud (char *tokp, + Weather *w); +gboolean metar_tok_pres (char *tokp, + Weather *w); +gboolean metar_tok_temp (char *tokp, + Weather *w); +gboolean metar_tok_cond (char *tokp, + Weather *w); +#endif |