Giter VIP home page Giter VIP logo

kaffee-analyzer's Introduction

Kaffee Analyzer

Kaffee Analyzer logo

Kaffee Analyzer is a lexical, syntax, and semantic analyzer developed for the purpose of parsing programs written in our custom programming language, Kaffee. The name 'Kaffee' is derived from the German word for 'coffee,' which serves as the inspiration for our project. This choice was influenced by our use of Java, with its logo famously depicting a coffee mug.

Overview

Kaffee Analyzer represents a crucial component in the development and validation process of writing programs. This project attempts to offer analysis and verification of code written in the Kaffee language.

Features

  • Lexical Analysis: Identifies and categorizes the lexical elements of the Kaffee language, including keywords, identifiers, literals, and symbols.

  • Syntax Analysis: Implements a parsing mechanism to validate the syntactic structure of Kaffee programs, ensuring adherence to the defined grammar rules.

  • Semantic Analysis: Performs semantic checks to verify the correctness of program constructs, including type compatibility, variable scope, and adherence to language-specific semantics.

  • Error Reporting: Provides error messages to identify and rectify issues within the written Kaffee programs.

Usage

To use the analyzer, simply create a text file and input your Kaffee source code then move said text file to the tests folder. Run MainKaffee.java in src/main, select the file you wish to analyze by entering its filename in the terminal, and choose the type of analysis you would like the program to perform: lexical, syntax, or semantic. The program will then display any errors in your Kaffee code, based on your selection.

The syntax of Kaffee is inspired by C++ but has been simplified for ease of use. Check tests folder to see examples.


Note: Kaffee Analyzer is by no means a complete program, and while it offers functionality, it may contain bugs and exhibit limitations under certain conditions. The developers acknowledges these issues and was constrained by the project's deadline, which prevented comprehensive bug fixing and refinement.

Group Members

  • Jerome Saulo
  • Geronimo Dayos III
  • Francesca Linda Ramos
  • Radge Esor Bernardino

Kaffee Analyzer was built to fulfill the requirements of Automata and Formal Languages (CS0023) at FEU Alabang. The project was submitted during the 1st semester of A.Y. 2022-2023.

kaffee-analyzer's People

Contributors

decpotein avatar yotch236 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.