Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [C][C++] Interprete

  1. #1

    [C][C++] Interprete

    Devo realizzare un programma in C o C++ che sia ingrado di leggere dei files, contenenti degli script ed eseguirli...
    Questi files devono contenere del codice simile a quello del C non compilato e devono essere così fatti:

    - Devono contenere tutti un paio di funzioni obbligatorie: una che viene eseguita appena carico lo script (main) ed una quando si verifica un dato evento
    - Devono poter lavorare con le variabili: ci deve essere la possibilità di definire vars all'interno di questi script e la possibilità di leggerne e modificarne il valore
    - Devono poter richiamare funzioni definite nel programma in c

    ...Ehm... Sapete darmi qualche dritta?
    Ho pensato di dover fare così:
    prima cerco la riga dove è dichiarata la funzione main e ne eseguo il codice scorrendo riga per riga...
    Ma come faccio a eseguire il codice? Come faccio a sapere se in una riga viene richiamata una funzione o viene associato un valore a una var (etc etc)?

    Seconda domanda: come faccio a creare delle variabili quando uno di questi script vuole crearne una? Ovvio, con le funzioni new o malloc... Ma come faccio ad associare un nome a queste vars? Con new o malloc posso creare una variabile, ma il nome (e il tipo) deve essere stato definito prima della compilazione...

  2. #2

    Re: [C][C++] Interprete

    Originariamente inviato da GNAWS


    Seconda domanda: come faccio a creare delle variabili quando uno di questi script vuole crearne una? Ovvio, con le funzioni new o malloc... Ma come faccio ad associare un nome a queste vars? Con new o malloc posso creare una variabile, ma il nome (e il tipo) deve essere stato definito prima della compilazione...

    Prova con una struttura tipo:
    codice:
     
    template<class Type>
    struct var
    {
        Type *var;
        const char * name;
        var *prev, *next;
    }
    
    template<class Type> 
    bool addVar( var *var_t, Type * var,const char * name );
    template<class Type> 
    bool removeVar( var *var_t, const char * name );
    E usi una lista circolare
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  3. #3
    Ottimo
    Con una classe generica risolverei il problema delle vars...
    Ora mi rimane solo il problema di capire cosa fa un'istruzionne...
    Grazie per il consiglio

  4. #4
    potresti caricarti da un files le def.
    Il files sarà tipo:
    codice:
     
    se=if
    finche=while
    Se vuoi ho anche gia pronta la classe che lo fa

    Mentre per capire cosa fa............se trovi un == confronti, un * o *= moltiplichi...........poi è facile
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.