Fast Parse
aoc2021
Fast Parse | aoc2021 | |
---|---|---|
4 | 18 | |
1,076 | 16 | |
0.2% | - | |
4.6 | 1.8 | |
21 days ago | over 2 years ago | |
Scala | Go | |
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Fast Parse
-
How do I remove the forward reference error in my parser? (20 lines)
Perhaps use Li Haoyi's fastparse instead? https://github.com/com-lihaoyi/fastparse
-
Parse slightly dirty, poorly escaped XML
You might want to adapt Li Haoyi’s XML parser for fastparse.
-
-🎄- 2021 Day 18 Solutions -🎄-
Mostly a mess of pattern matching. I really need to make some generic tree utilities. Haven't been able to find a decent parser combinator that works in Scala 3 (I usually use fastparse which depends heavily on Scala 2 macros, and scala-parser-combinators works in Scala 3, but I've had a lot of trouble getting it to not be too greedy), so I used the state monad from cats to parse at the bottom of the file, which I think turned out fairly nice.
-
Parser generators vs. handwritten parsers: surveying major languages in 2021
Agreed! I would say that parser combinators are the sweet spot and the right choice in most cases.
Scala has them as well, e.g.: https://com-lihaoyi.github.io/fastparse/
And the good thing is, you don't have to learn a completely new language/syntax, you can use the host language's syntax and you have full IDE support as well.
aoc2021
- -🎄- 2021 Day 24 Solutions -🎄-
-
-🎄- 2021 Day 23 Solutions -🎄-
(Here's my original version that used the uint64 encoding: https://github.com/danvk/aoc2021/blob/e795c78090c35c0b9880fd692ba1677fae31e044/day23/day23.go)
- -🎄- 2021 Day 22 Solutions -🎄-
- -🎄- 2021 Day 21 Solutions -🎄-
- -🎄- 2021 Day 19 Solutions -🎄-
-
-🎄- 2021 Day 18 Solutions -🎄-
Here's my previous solution, which didn't use any mutation: https://github.com/danvk/aoc2021/blob/92b5352806e0e854ebc36e6c9804dc13b5262349/day18/day18.go
- -🎄- 2021 Day 16 Solutions -🎄-
- -🎄- 2021 Day 15 Solutions -🎄-
- -🎄- 2021 Day 14 Solutions -🎄-
- -🎄- 2021 Day 13 Solutions -🎄-
What are some alternatives?
Parboiled2 - A macro-based PEG parser generator for Scala 2.10+
roast - 🦋 Raku test suite
Scala Parser Combinators - simple combinator-based parsing for Scala. formerly part of the Scala standard library, now a separate community-maintained module
adventofcode - Advent of Code challenge solutions
atto - friendly little parsers
advent-of-code-go - All 8 years of adventofcode.com solutions in Go/Golang; 2015 2016 2017 2018 2019 2020 2021 2022
Scopt - command line options parsing for Scala
advent-2021 - [Moved to: https://github.com/Crazytieguy/advent-of-code]
Kaitai Struct - Kaitai Struct: declarative language to generate binary data parsers in C++ / C# / Go / Java / JavaScript / Lua / Nim / Perl / PHP / Python / Ruby
aoc2021 - Advent of Code 2021 - my answers
decline - A composable command-line parser for Scala.
aoc-2021-in-kotlin