Knife is a Java top-down parser generator for building parsers from grammars in BNF format.
-
Updated
Apr 17, 2020 - Java
Knife is a Java top-down parser generator for building parsers from grammars in BNF format.
This is a compiler for LL(1) types of grammar.
A LL1 algorithm implementation for CFG and string recognition.
Assignments in course:Compilers.
Implementation of a Compiler for MiniJava to LLVM, Implementation of a LL(1) parser for a calculator
An implementation of multiple concepts and techniques related to the theory of computation and compilers like DFA, NFA, Regular Expressions, Fallback DFA, CFG Left-Recursion Elimination, First and Follow, LL(1) Parsing, Lexical Analysis, and SDD
The Po Programming Language
This is my labs from Compilers Design Course, being taught in BMSTU. Lab 1 - Constructing minimal DFA from regex in 3 phases (r => NFA => DFA => minimal DFA). Lab 2 = Grammar processing. (Removing cycles, left recursion, left factorizing, etc.) Lab 3 = LL(1), SLR(1) and LR(1) parser generator and lexer generator. Lexer based on minimal DFA. Each…
Java code + CFG for constructing a compiler to accept C-like code (with implicit data type assignment) as input, and to tokenize, parse using LL(1) parser and create symbol table with scope
A compiler construction project for the "Κ31 Compilers" course at DiT, NKUA. This repository hosts a Java application designed to parse and evaluate expressions based on a defined grammar for a subset of a programming language. It includes a lexer and parser to handle expressions, perform calculations, and construct a syntax tree.
The calculator accepts expressions with the bitwise AND(&) and XOR(^) operators, as well as parentheses. (Single digit numbers only)
♨️ 🔀 In this project I built an LL1 (leftmost derivation) recursive calculator as an intoduction to compilers.
Add a description, image, and links to the ll1-parser topic page so that developers can more easily learn about it.
To associate your repository with the ll1-parser topic, visit your repo's landing page and select "manage topics."