How to develop parsers in C# and use them in practice. Uklon case of parsing Conditional Restrictions tags in OSM
Talk presentation
Uklon app is closely related to maps and their specifications. In my speech, I’d like to share an interesting case we have recently encountered. To make it brief, there is a road with time restrictions — at one time you are allowed to drive there, at another, no. These restrictions are set by Conditional Restrictions tags in OSM (Open Street Map). Therefore, we need to parse these tags and calculate the corresponding restriction at any given time. We chose to use parsing combinators for parsing, and for calculating, we made our own logic, which we’ll also talk about a little during the presentation.
Agenda:
- What are parser combinators
- Comparison of parser combinators with regular expressions and full-fledged parsers
- What are Conditional Restrictions tags in OSM and how complicated are they
- Why we choose parser combinators to parse Conditional Restrictions tags in OSM
- How to parse such tags using parser combinators
- How to calculate Restriction afterwards
- Summary

Yurii Naurynskyi
Uklon
- .NET/C# Technical Lead at Uklon
- more than 7 years of experience with .NET technologies
- author of testing webinars for C# developers and training courses on testing ASP.NET Core MVC apps and Entity Framework Core
- areas of interest: designing autocomplete & routing solutions, clean & performant code, grokking algorithms, functional programming, DDD, advanced testing techniques
- GitHub, LinkedIn