DEV Community

Moiz Ibrar
Moiz Ibrar

Posted on • Updated on

What is a Parser?

In computer science, a parser is a program that analyzes the structure of a given input text (usually code) based on a formal grammar. A parser takes a stream of tokens as input and outputs a parse tree, which represents the syntactic structure of the input.

Types of Parsers

There are two main types of parsers:

Top-down parsers

A top-down parser starts with the grammar's start symbol and applies grammar rules to produce the input string. These parsers are also known as recursive descent parsers, as they recursively descend down the parse tree, from the root to the leaves. Top-down parsers include LL(1) parsers, which can handle left-recursive and non-left-recursive grammars, and LL(k) parsers, which can handle ambiguous grammars.

Bottom-up parsers

A bottom-up parser starts with the input string and applies grammar rules to produce the grammar's start symbol. These parsers are also known as shift-reduce parsers, as they shift input tokens onto a stack and reduce them to grammar rules until the start symbol is produced. Bottom-up parsers include LR(0), SLR(1), LALR(1), and LR(1) parsers, which can handle left-recursive grammars.

Apache-Age:-https://age.apache.org/
GitHub:-https://github.com/apache/age

Top comments (0)