Ignore:
Timestamp:
2020-01-13T21:45:18+01:00 (5 years ago)
Author:
simon04
Message:

JOSM/comfort0: parse ways

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/comfort0/src/net/simon04/comfort0/level0l/Level0LParser.jj

    r35284 r35285  
    4646    | <EQ: "=" > : VALUE
    4747    | <IDENT: ["a"-"z", "A"-"Z", "_"] (["a"-"z", "A"-"Z", "_", "-", "0"-"9"])* >
     48    | <D_COMMENT_START: "#"> : COMMENT
    4849}
    4950
     
    6970    lon=<FLOAT>
    7071    { r.setCoor(new LatLon(Double.parseDouble(lat.image), Double.parseDouble(lon.image))); }
    71     (<COMMENT_START> | <H_EOL>)
    72     tags(r)
     72    ( <COMMENT_START> | <H_EOL> )
     73    ( tag(r) )*
    7374    { return r; }
    7475}
    7576
    76 void tags(PrimitiveData r):
     77WayData way():
     78{
     79    WayData r;
     80    Token id;
     81}
     82{
     83    <WAY>
     84    { r = new WayData(); }
     85    id=<H_ID>
     86    { r.setId(Long.parseLong(id.image)); }
     87    ( <COMMENT_START> | <H_EOL> )
     88    way_data(r)
     89    { return r; }
     90}
     91
     92void way_data(WayData r):
    7793{}
    7894{
     95    LOOKAHEAD(3)
     96    ( way_node(r) way_data(r) ) // TODO avoid recursive call to way_data
     97    |
    7998    ( tag(r) )*
     99}
     100
     101void way_node(WayData r):
     102{
     103    Token id;
     104}
     105{
     106    <D_SPACE> <D_SPACE>
     107    <ND>
     108    ( <D_SPACE> )+
     109    id=<D_ID>
     110    { r.getNodeIds().add(Long.parseLong(id.image)); }
     111    ( <D_SPACE> )*
     112    ( <D_COMMENT_START> | <D_EOL> )
    80113}
    81114
Note: See TracChangeset for help on using the changeset viewer.