Domanda

Devo analizzare PHP & amp; Struttura dei documenti JavaScript per ottenere informazioni sulle funzioni del documento e amp; i loro parametri, classi e amp; i loro metodi, variabili e così via ... Mi chiedo se esiste una soluzione per farlo (nessuna espressione regolare) ... Ho sentito parlare di qualcosa chiamato "lexing" tuttavia non sono riuscito a trovare esempi nemmeno quelli che potrei dire se questo è qualcosa che sto cercando o no ...

grazie in anticipo

È stato utile?

Soluzione

Per " Lexing " ti riferisci all'analisi lessicale e ci sono alcuni strumenti antichi che per lo più funzionano ancora chiamati Lex e Yacc. Lex costruisce il tokenizer e Yacc sta per "ancora un altro compilatore del compilatore" ed è il parser attuale.

Il concetto di lex / Yacc è quello di creare una grammatica per la lingua e quindi eseguire la grammatica attraverso lo strumento paslex per generare il codice sorgente (normalmente in C) che è possibile utilizzare per analizzare un file e agire su specifici parole chiave e token. Martin Waldenburg ha scritto una versione pasquale di lex / yacc di nome PasLex che è in corso da oltre un decennio ormai ed è stato convertito in Delphi (anche se potrebbe non funzionare con le ultime versioni senza un lavoro minore). Se ricordo bene, utilizza gli stessi file di input grammaticali .L di lex, quindi qualsiasi documentazione che trovi per lex / yacc può essere applicata anche a paslex, con l'eccezione che ottieni il codice pascal come output.

Non sono sicuro della disponibilità della documentazione corrente. Prima di Internet (sussulto) abbiamo usato libri e la maggior parte di questo è stata ampiamente documentata su carta che è diventata a lungo gialla ... tuttavia, si dice che potresti ... essere in grado di ritirare una copia usata da Amazon. Mi sono tagliato su questo usando un libro che è anche conosciuto come " il libro dei draghi " che sembra essere stato ripubblicato di recente nel 2006.


Modifica

Sono stato confuso con lo strumento, era TPLY . PasLex era un'implementazione grammaticale di Delphi ... TPLY era lo strumento Lex / Yacc che generava sorgente pascal da un file .L.

Altri suggerimenti

Non sono sicuro che ciò sia fattibile, ma per PHP saresti in grado di invocare la CLI PHP da Delphi per ottenere le informazioni?

In tal caso potresti chiamare token_get_all () e poi sputare il risultato in qualcosa che puoi analizzare Delphi (forse xml, json, ecc.). Questo è lascivo. Il problema è che solo la metà del problema è risolto: devi ancora capire ogni token nel contesto per ottenere i risultati desiderati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top