Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pourmand1376/parser

Implementation of LL(0), LR(0), SLR(1), CLR(1) algorithms in C# (Visual Representation is also available)
https://github.com/pourmand1376/parser

clr-parser csharp ll1-grammar lr-parser lr0 lr1 msagl slr-parser

Last synced: 25 days ago
JSON representation

Implementation of LL(0), LR(0), SLR(1), CLR(1) algorithms in C# (Visual Representation is also available)

Awesome Lists containing this project

README

        

# Parser
Implementation of LL(0), LR(0), SLR(1), CLR(1) algorithms in C#.

This is done for educational purposes only.

# Topics Covered
- First and follow terminals are calculated, even when grammer is left recursive.
- Stack changes are shown in a table.
- For LR algorithms state diagrams are shown in a graph (Microsoft Library `MSAGL`)
- Syntax Parse tree is shown (Microsoft Library `MSAGL`)

# ToDo
- Add Support for LALR(1) algorithms.
- Add Support to input grammar with | symbol.

# How to build parse tree
Use the input from `SampleGrammars` Folder which is available in Project source
Grammars are written in `BNF` format as show below.

JSON Grammar:

::=
::=

::= "[" "]"

::=
::= ","
::= ""

::= "{" "}"

::=
::= ","
:: ""

::= ":"

::=
::=
::=
::=
::= "True"
::= "False"
::= "null"

::= "a"
::= "b"
::= "c"
::= "d"

::= "1"
::= "2"
::= "3"
::= "4"

JSON test:

{ a : 1 , b : [ 1 , 3 , a , { a : 2 , c : 4 , } , ] , c : False , b : True , }