Code Monkey home page Code Monkey logo

eartecompiler's Introduction

EARTECompiler

Instalação

Ubuntu

./scripts/env.sh

Build

make clean && make

Format

make format

Test

make test

Links

eartecompiler's People

Contributors

derikw avatar rafaragao2 avatar

Watchers

 avatar

eartecompiler's Issues

Criar Ambiente

É necessário criar um ambiente inicial e documentar como configurá-lo.

Definição dos Tokens

Com base no escopo definido aqui #4, precisa ser feito a definição dos Tokens no padrão do flex para serem utilizados no Analisador Léxico.

Obs 1: pode ser utilizado o link como base, faltando eliminar os tokens que não serão utilizados.
Obs 2: Manual do flex.
Obs 3: Laboratório para usar de exemplo CC_Lab01.pdf

Definição da Gramática

Precisa ser feita a definição da Gramática a ser utilizada pelo Analisador Sintático.

Obs 1: com base no escopo definido #4, o link pode ser utilizado como base, faltando remover o que não estiver definido.
Obs 2: utilizar os tokens definidos aqui #5.
Obs 3: Laboratório para servir de exemplo CC_Lab02.pdf

Utilizar o Argp

Utilizar a biblioteca GNU Argp para interface CLI do compilador.

Obs: link da documentação para usar de exemplo.

Definição do Escopo do Compilador

Antes de fazer o analisador sintático e semântico precisa ser definido o que conterá no compilador. Definir todas as estruturas que irão ser inclusas.

Obs 1: Por sugestão do professor, UNION já pode ser excluido.
Obs 2: Acho que vale remover números complexos.

Chama de funções auxiliares no parser

Funções válidas:

check_var(); // Checa se a variável existe na tabela
new_var(); // Adiciona a variável na tabela

Setar a variável last_decl_type com o tipo encontrado:

typedef enum {
    VOID_TYPE,
    INT_TYPE,
    CHAR_TYPE,
    FLOAT_TYPE
} Type;

Setar a variável last_size_array com o tamanho do array na definição, exemplo:

char string[3];

teremos:

last_decl_type = CHAR_TYPE;
last_size_array = 3;

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.