Forum > Progetti degli utenti

Ricostruzione sorgenti in object pascal

<< < (3/3)

nomorelogic:
ok, infatti avevo in mente un parser java
nel senso che poi da quello si potrebbe generare il sorgente pascal

Stilgar:
Avevo iniziato a modificare il parser java (quello del compilatore) per generare codice pascal.
Funzionicchiava.

Il problema è che a volte ci sono dipendenza di cui non hai i sorgenti. Passavo più tempo a cercare i sorgenti e renderli visibili al "compilatore" che migliorare la generazione.
Mi sono rotto e ho intrapreso la strada "ad alzo zero".
In questo modo posso tradurre e fare reverese anche delle cosine di cui si sono persi i sorgenti :)
Stilgar

nomorelogic:
forse può essere utile

ho trovato queste perle, quando si dice open source....

elenco delle unit (documentazione scarseggia ma intanto si sa quali sono) per scanning, parsing e rappresentazione tree di sorgenti pascal
https://wiki.freepascal.org/fcl-passrc

documentazione albero
https://wiki.freepascal.org/The_parse_tree#The_parse_tree

e, per finire: FPC internal
https://wiki.freepascal.org/Category:FPC_internals

premessa...
i sorgenti pascal, prima (1) vengono passati con scanner e parser per ottenere un albero
poi (2) l'albero si passa al compilatore backend ed avviene la generazione del linguaggio macchina per OS/processore

ora...
visto che c'è qualche problema con il reperimento di tutti i sorgenti java di un certo progetto
si potrebbe tentare lo scanning ed il parsing del JNI per ottenere lo stesso albero di cui sopra (1)
fatta una cosa del genere ( assurdo solo a pensarlo è vero :D), i vari compilatori backend sono già pronti all'uso per (2) compilare per qualsiasi piattaforma già supportata

ok, ok
chiaramente detta così è facile, lo ammetto

Edit: >>
nel JNI infatti ci sono delle implementazioni che non esistono in FPC
bisognerebbe tradurre queste diverse visioni del linguaggio (esempio GC), non è cosa da poco
però si potrebbe iniziare piano piano con i programmi senza GUI
<<


però ci sono dei vantaggi innegabili :)

Edit2: >>
del resto c'è il pas2jni...
<<

Stilgar:
Ok nomore.
Ma il jni parte da java e arriva al codice nativo.
Fare il giro come l'ho capito non centra nulla con il progettino in questione ;) E' un altro thread :p

Stilgar

nomorelogic:
si, altra cosa è vero
 :)

Navigazione

[0] Indice dei post

[*] Pagina precedente

Vai alla versione completa