logo separator

[mkgmap-dev] if-then-else in style and style options

From Gerd Petermann GPetermann_muenchen at hotmail.com on Thu Mar 9 09:55:06 GMT 2017

Hi all,

I tried to implement some kind of dummy expression but failed.
If you think that mkgmap should allow syntax like
if (...) then
  {action}
end

I can make that work with the attached patch (which also contains a unit test)

I am not an expert for language or parser design, but it feels better to allow this
although I would only use it when the if really replaces repeated expressions.

Comments?
Gerd
________________________________________
Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap at jagit.co.uk>
Gesendet: Mittwoch, 8. März 2017 09:25:34
An: mkgmap-dev at lists.mkgmap.org.uk
Betreff: Re: [mkgmap-dev] if-then-else in style and style options

Hi

I think you should document that you need a dummy condition, ie

if (...) then
  1=1 {action}
  ...
  1=1 [0x1c ...]
end

(I assume this should work OK)

Ticker

On Wed, 2017-03-08 at 08:07 +0000, Gerd Petermann wrote:
> Hi all,
>
> while writing the documentation I noticed this possible problem case:
> The lines file in the default style contains these rules:
> boundary=administrative { name '${mkgmap:boundary_name}' }
> boundary=administrative & admin_level<3 [0x1e resolution 12]
> boundary=administrative & admin_level<5 [0x1d resolution 19]
> boundary=administrative & admin_level<7 [0x1c resolution 21]
> boundary=administrative & admin_level<9 [0x1c resolution 22]
> boundary=administrative [0x1c resolution 22]
>
> So, one may want to extract the clause boundary=administrative  like
> this:
> if (boundary=administrative) then
>         { name '${mkgmap:boundary_name}' }
>         admin_level<3 [0x1e resolution 12]
>         admin_level<5 [0x1d resolution 19]
>         admin_level<7 [0x1c resolution 21]
>         admin_level<9 [0x1c resolution 22]
>         [0x1c resolution 22]
> end
>
> The problem: It doesn't work because the lines
>         { name '${mkgmap:boundary_name}' }
> and
>         [0x1c resolution 22]
> are not a valid rules and the rule parser "forgets" that the
> boundary=administrative expression will be added.
>
> What do you think? Should mkgmap support this syntax?
>
> Gerd
> ________________________________________
> Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag
> von Gerd Petermann <GPetermann_muenchen at hotmail.com>
> Gesendet: Dienstag, 7. März 2017 20:10:52
> An: Development list for mkgmap
> Betreff: Re: [mkgmap-dev] if-then-else in style and style options
>
> Hi Andrzej,
>
> thanks, so I'll try to document the new syntax next.
>
> Gerd
> ________________________________________
> Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag
> von Andrzej Popowski <popej at poczta.onet.pl>
> Gesendet: Dienstag, 7. März 2017 17:40:16
> An: mkgmap-dev at lists.mkgmap.org.uk
> Betreff: Re: [mkgmap-dev] if-then-else in style and style options
>
> Hi Gerd,
>
> I have run some tests with current code and spotted no problems. I
> have
> tested both, if-then-else statement and style-option.
>
> --
> Best regards,
> Andrzej
> _______________________________________________
> mkgmap-dev mailing list
> mkgmap-dev at lists.mkgmap.org.uk
> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> _______________________________________________
> mkgmap-dev mailing list
> mkgmap-dev at lists.mkgmap.org.uk
> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> _______________________________________________
> mkgmap-dev mailing list
> mkgmap-dev at lists.mkgmap.org.uk
> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
_______________________________________________
mkgmap-dev mailing list
mkgmap-dev at lists.mkgmap.org.uk
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: if-then-no-expression-v1.patch
Type: application/octet-stream
Size: 4275 bytes
Desc: if-then-no-expression-v1.patch
URL: <http://www.mkgmap.org.uk/pipermail/mkgmap-dev/attachments/20170309/74d99835/attachment-0001.obj>


More information about the mkgmap-dev mailing list