Hacker News new | ask | show | jobs
by Yhippa 1670 days ago
In general, what is a good language to parse game logs?
6 comments

Most languages can do most things, so you should pick the one(s) you know best.

That said traditionally perl would be the choice for parsing, and it is still a good candidate. For simple extraction - think "programatic grep" - then awk is also a good choice.

I've found for down and dirty parsing, you can almost always parse simple log/structured output using operations like `split`, `substring`, `prefix`, and `suffix` where :

- `split` splits a string at an index or into substrings separated by a pattern - `substring` takes a substring of a string for a range of indices - `prefix` returns true if the start of the string matches a pattern, false otherwise - `suffix` returns true if the end of the string matches a pattern, false otherwise

Python and C++ both have good standard library functions for these tasks. What's less important than a language for your parser is a language to plug the output into to make something useful.

Unless the game logs are in json or xml, the easiest language to get started in (assuming a few regexs isn't enough) is whatever language you know, that has a good packrat parser library.
Anything with parser combinators or PEG support. I had to learn PEG parsing for a project when I was a kid, and that has been one of my most useful skills.
Pardon, what is PEG?
Parsing Expression Grammar. https://en.m.wikipedia.org/wiki/Parsing_expression_grammar

The examples section under definitions is the easiest way to understand them.

I'm using F# and FParsec atm, works great.
Perl
Also known as Practical EVE Re-Engineering Language?