# Parsing

**URL:** https://d.strumenta.community/c/parsing/7.md

[Latest](https://d.strumenta.community/latest.md) · [Categories](https://d.strumenta.community/categories.md) · [Tags](https://d.strumenta.community/tags.md)

---

## [About the Parsing category](https://d.strumenta.community/t/about-the-parsing-category/18)

<div class="topic-metadata">

**Author:** [@ftomassetti](https://d.strumenta.community/u/ftomassetti)\
**Replies:** 0

</div>

---

## [Throughout ActionScript 3 parser](https://d.strumenta.community/t/throughout-actionscript-3-parser/1897)

<div class="topic-metadata">

**Author:** [@matheus](https://d.strumenta.community/u/matheus)\
**Replies:** 0\
**Last updated:** [April 10, 2024, 5:05pm UTC](https://d.strumenta.community/t/throughout-actionscript-3-parser/1897 "2024-04-10T17:05:40Z")

</div>

If you’re good with ActionScript 3 and want to try out all of its syntaxes: check this parsing demo. ActionScript 3 is used in other places right now, so I continued pushing commits to the as3\_parser Rust crate just for…

---

## [Parser Combinators Experience?](https://d.strumenta.community/t/parser-combinators-experience/1896)

<div class="topic-metadata">

**Author:** [@digital-ember](https://d.strumenta.community/u/digital-ember)\
**Replies:** 2\
**Last updated:** [April 2, 2024, 9:27pm UTC](https://d.strumenta.community/t/parser-combinators-experience/1896 "2024-04-02T21:27:34Z")

</div>

Hi there, Anyone here first hand experience with parser combinator libraries like Parsec, Sprache, Pidgin, or similar? I need to implement a small expression language and embed it into an existing desktop application. …

---

## [Should I learn ANTLR 4 for Java or is there a parsing framework for Rust?](https://d.strumenta.community/t/should-i-learn-antlr-4-for-java-or-is-there-a-parsing-framework-for-rust/1870)

<div class="topic-metadata">

**Author:** [@matheus](https://d.strumenta.community/u/matheus)\
**Replies:** 7\
**Last updated:** [January 14, 2024, 5:08pm UTC](https://d.strumenta.community/t/should-i-learn-antlr-4-for-java-or-is-there-a-parsing-framework-for-rust/1870 "2024-01-14T17:08:08Z")

</div>

I’ve the syntactic descriptions of my language fully specified: Overview - Jet Language Specification It is a fusion of features from ActionScript 3 and ECMA-262 2018. I never used a parser generator, so it’s right that…

---

## [How to include a grammar into another in ANTLR?](https://d.strumenta.community/t/how-to-include-a-grammar-into-another-in-antlr/1855)

<div class="topic-metadata">

**Author:** [@ldesantis](https://d.strumenta.community/u/ldesantis)\
**Replies:** 2\
**Last updated:** [November 15, 2023, 9:52am UTC](https://d.strumenta.community/t/how-to-include-a-grammar-into-another-in-antlr/1855 "2023-11-15T09:52:52Z")

</div>

Hello, I need help on the following problem. Let’s suppose we have a general purpose language, call it L0, described by a grammar in ANTLR. I want to build a domain specific language, call it L1, with its specific feat…

---

## [Which parser generator are you using (if any)?](https://d.strumenta.community/t/which-parser-generator-are-you-using-if-any/233)

<div class="topic-metadata">

**Author:** [@anon67755252](https://d.strumenta.community/u/anon67755252)\
**Replies:** 66\
**Last updated:** [March 4, 2023, 4:38am UTC](https://d.strumenta.community/t/which-parser-generator-are-you-using-if-any/233 "2023-03-04T04:38:04Z")

</div>

I have created a parser generator, so I watch the market for this kind of tool. It seems that ANTLR is the dominant tool in use at this time, however, Bison/Flex is getting a huge number of downloads at SourceForge. …

---

## [Experience with Tree sitter parsing?](https://d.strumenta.community/t/experience-with-tree-sitter-parsing/449)

<div class="topic-metadata">

**Author:** [@digital-ember](https://d.strumenta.community/u/digital-ember)\
**Replies:** 13\
**Last updated:** [January 25, 2023, 8:45am UTC](https://d.strumenta.community/t/experience-with-tree-sitter-parsing/449 "2023-01-25T08:45:02Z")

</div>

Has anyone here experience with tree sitter parsing and is willing to share it? E.g.: https://tree-sitter.github.io/tree-sitter/ Thanks, Robert

---

## [Offer of Books and videos in Packt Publishing](https://d.strumenta.community/t/offer-of-books-and-videos-in-packt-publishing/1752)

<div class="topic-metadata">

**Author:** [@oscaretu](https://d.strumenta.community/u/oscaretu)\
**Replies:** 0\
**Last updated:** [December 30, 2022, 9:07pm UTC](https://d.strumenta.community/t/offer-of-books-and-videos-in-packt-publishing/1752 "2022-12-30T21:07:03Z")

</div>

Hello. I have seen that there is an offer at Packt Publishing where they offer all their books and videos for 5 euros. I have bought several videos by author Dmitry Soshnikov, on building a parser from scratch, algorith…

---

## [Which .Net Antlr runtime do you use for your parsers?](https://d.strumenta.community/t/which-net-antlr-runtime-do-you-use-for-your-parsers/453)

<div class="topic-metadata">

**Author:** [@thad](https://d.strumenta.community/u/thad)\
**Replies:** 3\
**Last updated:** [August 7, 2022, 4:16pm UTC](https://d.strumenta.community/t/which-net-antlr-runtime-do-you-use-for-your-parsers/453 "2022-08-07T16:16:14Z")

</div>

I am curious how many people are still creating parsers against the .net Antlr4.Runtime vs the Antlr4.Runtime.Standard. Which runtime does every one use for their C# Antlr parsers? I have been creating a tool for testi…

---

## [Lexer rule evaluation in ANTLR](https://d.strumenta.community/t/lexer-rule-evaluation-in-antlr/1518)

<div class="topic-metadata">

**Author:** [@glenb](https://d.strumenta.community/u/glenb)\
**Replies:** 4\
**Last updated:** [February 22, 2022, 8:45am UTC](https://d.strumenta.community/t/lexer-rule-evaluation-in-antlr/1518 "2022-02-22T08:45:14Z")

</div>

I’m using ANTLR for the first time in a parser project. Do you know if ANTLR tries only the lexer rules which would be relevant based on the parser rule it is evaluating at the time? Perhaps ‘no’ is the answer because it…

---

## [Strategies for producing better syntax error messages with ANTLRv4](https://d.strumenta.community/t/strategies-for-producing-better-syntax-error-messages-with-antlrv4/1404)

<div class="topic-metadata">

**Author:** [@iklask](https://d.strumenta.community/u/iklask)\
**Replies:** 2\
**Last updated:** [December 4, 2021, 2:08am UTC](https://d.strumenta.community/t/strategies-for-producing-better-syntax-error-messages-with-antlrv4/1404 "2021-12-04T02:08:00Z")

</div>

Hello All, I’m new to ANTLR and parsing in general. I have been working on a backend for a Language Server and a transpiler for a simple scripting language with ANTLR. What I’ve just started is looking into producing be…

---

## ["Converting from JavaCC to ANTLR": new article online!](https://d.strumenta.community/t/converting-from-javacc-to-antlr-new-article-online/1414)

<div class="topic-metadata">

**Author:** [@elisa.costantini](https://d.strumenta.community/u/elisa.costantini)\
**Replies:** 0\
**Last updated:** [November 15, 2021, 11:28am UTC](https://d.strumenta.community/t/converting-from-javacc-to-antlr-new-article-online/1414 "2021-11-15T11:28:12Z")

</div>

Hi Community, JavaCC was the first popular parser generator (or compiler-compiler, hence the name) for the Java platform. It originated at Sun Microsystems and was later open-sourced. In this tutorial, we’ll show how t…

---

## [Introducing Rekex, a brand new way for parser generation](https://d.strumenta.community/t/introducing-rekex-a-brand-new-way-for-parser-generation/1367)

<div class="topic-metadata">

**Author:** [@zhong-j-yu](https://d.strumenta.community/u/zhong-j-yu)\
**Replies:** 0\
**Last updated:** [September 27, 2021, 4:15pm UTC](https://d.strumenta.community/t/introducing-rekex-a-brand-new-way-for-parser-generation/1367 "2021-09-27T16:15:15Z")

</div>

Rekex is a new PEG parser generator for Java 17. It unifies grammar definition and AST construction in the most natural and intuitive way, leading to the simplest approach to writing parsers. For a quick demo, consider …

---

## ["Building advanced parsers using Kolasu": new article online!](https://d.strumenta.community/t/building-advanced-parsers-using-kolasu-new-article-online/1340)

<div class="topic-metadata">

**Author:** [@elisa.costantini](https://d.strumenta.community/u/elisa.costantini)\
**Replies:** 2\
**Last updated:** [September 14, 2021, 10:14pm UTC](https://d.strumenta.community/t/building-advanced-parsers-using-kolasu-new-article-online/1340 "2021-09-14T22:14:20Z")

</div>

Hi Community, A new article is online on our blog: “Building advanced parsers using Kolasu”. In this article, we share with you what we have learned from building tens of commercial parsers for clients all over the wor…

---

## [Use case for an island grammar?](https://d.strumenta.community/t/use-case-for-an-island-grammar/959)

<div class="topic-metadata">

**Author:** [@dramage](https://d.strumenta.community/u/dramage)\
**Replies:** 4\
**Last updated:** [July 8, 2021, 3:38pm UTC](https://d.strumenta.community/t/use-case-for-an-island-grammar/959 "2021-07-08T15:38:31Z")

</div>

Good afternoon, I’m pretty new to writing parsers (except for a few semesters in college long ago). A colleague and I are working on a transpiler to convert a subset of the SAS language to Python. We have put together…

---

## ["Best Practices for ANTLR Parsers": new article online!](https://d.strumenta.community/t/best-practices-for-antlr-parsers-new-article-online/1269)

<div class="topic-metadata">

**Author:** [@elisa.costantini](https://d.strumenta.community/u/elisa.costantini)\
**Replies:** 1\
**Last updated:** [June 18, 2021, 9:40pm UTC](https://d.strumenta.community/t/best-practices-for-antlr-parsers-new-article-online/1269 "2021-06-18T21:40:49Z")

</div>

Hi everybody! A new article is online :smiley: This article represents the summary of our experience. It explains the principles and patterns that we use, or avoid when designing ANTLR parsers. In this article, we will…

---

## [Beginners' Tutorial: Write a C Interpreter](https://d.strumenta.community/t/beginners-tutorial-write-a-c-interpreter/1167)

<div class="topic-metadata">

**Author:** [@tajmone](https://d.strumenta.community/u/tajmone)\
**Replies:** 16\
**Last updated:** [May 11, 2021, 12:19am UTC](https://d.strumenta.community/t/beginners-tutorial-write-a-c-interpreter/1167 "2021-05-11T00:19:28Z")

</div>

I’ve come across this interesting tutorial on how to create a bootstrapping C interpreter with four functions: https://github.com/lotabout/write-a-C-interpreter The tutorial was written by Jinzhou Zhang, and it’s base…

---

## [ANTLR: reportAttemptingFullContext and reportContextSensitivity](https://d.strumenta.community/t/antlr-reportattemptingfullcontext-and-reportcontextsensitivity/1130)

<div class="topic-metadata">

**Author:** [@terzian.harry](https://d.strumenta.community/u/terzian.harry)\
**Replies:** 0\
**Last updated:** [February 22, 2021, 1:26am UTC](https://d.strumenta.community/t/antlr-reportattemptingfullcontext-and-reportcontextsensitivity/1130 "2021-02-22T01:26:40Z")

</div>

I have come across these two messages when writing an ANTLR 4 grammar however I have no idea what they mean. When googling these terms I get the following explanation: “This method is called when an SLL conflict occurs …

---

## [Question: ASL - Arm Specification Language operator precedence](https://d.strumenta.community/t/question-asl-arm-specification-language-operator-precedence/1109)

<div class="topic-metadata">

**Author:** [@terzian.harry](https://d.strumenta.community/u/terzian.harry)\
**Replies:** 2\
**Last updated:** [February 19, 2021, 4:42pm UTC](https://d.strumenta.community/t/question-asl-arm-specification-language-operator-precedence/1109 "2021-02-19T16:42:14Z")

</div>

I am attempting to build a clone of the asli interpreter found here GitHub - ARM-software/asl-interpreter: Example implementation of Arm’s Architecture Specification Language (ASL) What I found with this language is tha…

---

## [Implementing Autocomplete: how we find what could the user insert next?](https://d.strumenta.community/t/implementing-autocomplete-how-we-find-what-could-the-user-insert-next/345)

<div class="topic-metadata">

**Author:** [@ftomassetti](https://d.strumenta.community/u/ftomassetti)\
**Replies:** 9\
**Last updated:** [January 27, 2021, 3:24pm UTC](https://d.strumenta.community/t/implementing-autocomplete-how-we-find-what-could-the-user-insert-next/345 "2021-01-27T15:24:19Z")

</div>

I was wondering what approaches you use for auto-completion. I see the problems as split in two: syntactic auto-completion (i.e., which types of tokens go here) and semantic auto-completion (i.e., ok, I can put an ID he…

---

## ["Improving the performance of an ANTLR parser": new article online!](https://d.strumenta.community/t/improving-the-performance-of-an-antlr-parser-new-article-online/1029)

<div class="topic-metadata">

**Author:** [@sandra.delpistoia](https://d.strumenta.community/u/sandra.delpistoia)\
**Replies:** 0\
**Last updated:** [December 16, 2020, 9:51am UTC](https://d.strumenta.community/t/improving-the-performance-of-an-antlr-parser-new-article-online/1029 "2020-12-16T09:51:06Z")

</div>

Hi everybody! A new article is online :smiley: Today, we offer some suggestions on how to improve the performances of your ANTLR parser. You can read it here. Enjoy it! :wink:

---

## [Getting unquoted string from Antlr](https://d.strumenta.community/t/getting-unquoted-string-from-antlr/977)

<div class="topic-metadata">

**Author:** [@reinout.korbee](https://d.strumenta.community/u/reinout.korbee)\
**Replies:** 1\
**Last updated:** [November 4, 2020, 1:49pm UTC](https://d.strumenta.community/t/getting-unquoted-string-from-antlr/977 "2020-11-04T13:49:28Z")

</div>

Hi, I have a string matching rule like this: string\_lit : STRING ; STRING : ‘’’ ( ~’’’ | ‘\\’’ )\* ‘’’; I’d like to get the contents of the string without the quotes. How can I do this with ANTLR4?

---

## [Performance when parsing multiple if else statements](https://d.strumenta.community/t/performance-when-parsing-multiple-if-else-statements/966)

<div class="topic-metadata">

**Author:** [@barmstrong](https://d.strumenta.community/u/barmstrong)\
**Replies:** 2\
**Last updated:** [October 29, 2020, 7:31pm UTC](https://d.strumenta.community/t/performance-when-parsing-multiple-if-else-statements/966 "2020-10-29T19:31:16Z")

</div>

I’m using Antlr4 to parse code that looks like if else if else if … else The code parses fine, it’s returning the correct tokens, but the performance is very poor. I believe that every time it goes into an i…

---

## [Blog: Which Parsing Approach? (L. Tratt)](https://d.strumenta.community/t/blog-which-parsing-approach-l-tratt/890)

<div class="topic-metadata">

**Author:** [@evacchi](https://d.strumenta.community/u/evacchi)\
**Replies:** 18\
**Last updated:** [October 4, 2020, 7:58am UTC](https://d.strumenta.community/t/blog-which-parsing-approach-l-tratt/890 "2020-10-04T07:58:35Z")

</div>

Recent blog post by Laurence Tratt. It gives a nice overview of several parsing techniques and then it explains the merits of LR. Notice that state-of-the-art parsers in Java (Antlr, but also JavaCC) are variants of LL. …

---

## [Implementing a preprocessor for xBase language](https://d.strumenta.community/t/implementing-a-preprocessor-for-xbase-language/392)

<div class="topic-metadata">

**Author:** [@alebencz](https://d.strumenta.community/u/alebencz)\
**Replies:** 1\
**Last updated:** [August 21, 2020, 1:41pm UTC](https://d.strumenta.community/t/implementing-a-preprocessor-for-xbase-language/392 "2020-08-21T13:41:51Z")

</div>

I’m thinking about the implementation of the preprocessor of a compiler that I’m implementing, which is based on CA-Clipper … the preprocessor has several commands and tricks that I can’t imagine how it can be implemente…

---

## [LL(1) for developers](https://d.strumenta.community/t/ll-1-for-developers/725)

<div class="topic-metadata">

**Author:** [@Lotes](https://d.strumenta.community/u/Lotes)\
**Replies:** 8\
**Last updated:** [August 9, 2020, 1:33pm UTC](https://d.strumenta.community/t/ll-1-for-developers/725 "2020-08-09T13:33:38Z")

</div>

Hi! I would like to show my developer collegues that writing parsers is actually not that complicated, specifically LL(1) using recursion. From my experience I know you have to eliminate ambiguity, left recursion and l…

---

## [Html Grammar with ASPX extensions](https://d.strumenta.community/t/html-grammar-with-aspx-extensions/780)

<div class="topic-metadata">

**Author:** [@adrua](https://d.strumenta.community/u/adrua)\
**Replies:** 1\
**Last updated:** [July 17, 2020, 4:32pm UTC](https://d.strumenta.community/t/html-grammar-with-aspx-extensions/780 "2020-07-17T16:32:52Z")

</div>

i found a grammar for HTML (With ASPX extensions) Thanks for any help. Good luck

---

## ["Migrating from ANTLR2 to ANTLR4": new article online!](https://d.strumenta.community/t/migrating-from-antlr2-to-antlr4-new-article-online/744)

<div class="topic-metadata">

**Author:** [@sandra.delpistoia](https://d.strumenta.community/u/sandra.delpistoia)\
**Replies:** 1\
**Last updated:** [July 2, 2020, 7:52am UTC](https://d.strumenta.community/t/migrating-from-antlr2-to-antlr4-new-article-online/744 "2020-07-02T07:52:08Z")

</div>

Hi everybody! The new article “Migrating from ANTLR2 to ANTLR4: a case study in C++” is online! You can read it at this link Enjoy the reading! :wink:

---

## ["Parsing SQL": new article online](https://d.strumenta.community/t/parsing-sql-new-article-online/533)

<div class="topic-metadata">

**Author:** [@sandra.delpistoia](https://d.strumenta.community/u/sandra.delpistoia)\
**Replies:** 1\
**Last updated:** [April 20, 2020, 8:14pm UTC](https://d.strumenta.community/t/parsing-sql-new-article-online/533 "2020-04-20T20:14:04Z")

</div>

Hi all! The new article “Parsing SQL” is now online! You can read it at this link: Enjoy the reading! :wink:

---

## [A timeline about the history or parsing](https://d.strumenta.community/t/a-timeline-about-the-history-or-parsing/529)

<div class="topic-metadata">

**Author:** [@oscaretu](https://d.strumenta.community/u/oscaretu)\
**Replies:** 1\
**Last updated:** [April 17, 2020, 3:36pm UTC](https://d.strumenta.community/t/a-timeline-about-the-history-or-parsing/529 "2020-04-17T15:36:23Z")

</div>

Some time ago I found this page. I suppose it can be interesting for some people: Parsing: a timeline Version 3.1 Revision 2, 23 October 2019 Jeffrey Kegler https://jeffreykegler.github.io/personal/timeline\_v3

[Next page](https://d.strumenta.community/c/parsing/7.md?page=1)
