Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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)
- Host: GitHub
- URL: https://github.com/pourmand1376/parser
- Owner: pourmand1376
- License: mit
- Created: 2020-01-20T16:12:33.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2020-01-22T11:23:01.000Z (about 5 years ago)
- Last Synced: 2024-11-14T20:45:29.911Z (3 months ago)
- Topics: clr-parser, csharp, ll1-grammar, lr-parser, lr0, lr1, msagl, slr-parser
- Language: C#
- Homepage:
- Size: 254 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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 , }