Git Product home page Git Product logo

cs445-project's Introduction

CS445-project

This is grammar before making it LL (1):

PROGRAM → STMTS
STMTS → STMT| STMT ; STMTS
STMT → id = EXPR
EXPR → EXPR + TERM | EXPR - TERM | TERM
TERM → TERM * FACTOR | TERM / FACTOR | FACTOR
FACTOR → ( EXPR ) | id | integer

Modifying the grammar to add the power operator (^) and unary sign operators (+, -):

PROGRAM -> STMTS
STMTS -> STMT | STMT ; STMTS
STMT -> id = EXPR
EXPR -> EXPR + TERM | EXPR - TERM | TERM
TERM -> TERM * CURR | TERM / CURR | CURR
CURR -> TEMP ^ CURR | TEMP
TEMP -> ++ FACTOR | -- FACTOR | FACTOR
FACTOR -> ( EXPR ) | id | integer

Left-Recursion:

PROGRAM -> STMTS
STMTS -> STMT | STMT ; STMTS
STMT -> id = EXPR
EXPR -> TERM EXPR'
TERM -> FACTOR TERM'
FACTOR -> CURR ^ FACTOR | CURR
CURR -> ++ TEMP | -- TEMP | TEMP
TEMP -> ( EXPR ) | id | integer
EXPR' -> + TERM EXPR' | - TERM EXPR' | ϵ
TERM' -> * FACTOR TERM' | / FACTOR TERM' | ϵ

Left-Factoring:

PROGRAM -> STMTS
STMTS -> STMT STMTS'
STMT -> id = EXPR
EXPR -> TERM EXPR'
TERM -> FACTOR TERM'
FACTOR -> CURR FACTOR'
CURR -> ++ TEMP | -- TEMP | TEMP
TEMP -> ( EXPR ) | id | integer
EXPR' -> + TERM EXPR' | - TERM EXPR' | ϵ
TERM' -> * FACTOR TERM' | / FACTOR TERM' | ϵ
STMTS' -> ϵ | ; STMTS
FACTOR' -> ^ FACTOR | ϵ

cs445-project's People

Contributors

alenizyabdulrahman avatar

Watchers

 avatar

Forkers

yousefkhalid

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.