2010-03-29 6 views
9

Ho usato ANTLR per generare un parser + grammatica ad albero per un linguaggio di markup con destinazione Java che funziona bene. Ora sto cercando di ottenere il target in JavaScript per usarlo nel mio browser web.ANTLR JavaScript Target

Tuttavia, non sono stato in grado di individuare alcuna documentazione valida su come procedere. Sto usando eclipse con ANTLR IDE e quando ho specificato la lingua come JavaScript, ottengo i seguenti errori.

marcatori multipli in questa linea

  • (10): Errore interno: gruppo JavaScript non soddisfa interfaccia ANTLRCore: argomenti non corrispondenti su questi modelli [treeParser (grammatica, nome, ambiti, gettoni, tokenNames, globalAction , regole, numRules, bitsets, labelType, ASTLabelType, superClass, membri, FilterMode)]

  • (10): errore interno: java.util.NoSuchElementException: tale attributo: FilterMode nel contesto template [treeParser]

Se qualcuno potesse aiutarmi con questo o indicarmi un materiale che potrei leggere sul target JavaScript con ANTLR, sarebbe fantastico.

Grazie

+1

Attualmente sono in grado di generare il parser in JavaScript e riconosce perfettamente le cose. Ma quando provo a generare il tree walker in target JavaScript, non è in grado di farlo. E penso che il motivo principale per questo sia l'errore 2 elencato sopra. – Gunner4Life

+0

Non sono sicuro di quale versione del build ANTLR stavi cercando di usare, ma stavo vedendo gli stessi errori con le build ufficiali che ho provato ad usare. Ho appena ottenuto il tar ANTLR dal server perforce e l'ho compilato con Maven, e le cose javascript sembravano funzionare per me - con la mia grammatica, ovviamente banale, almeno. –

+0

Ho capito qual era l'errore. La destinazione JavaScript è stata interrotta nelle ultime versioni di ANTLR, che ha causato il problema. La soluzione è creare il codice sorgente o utilizzare una versione precedente. – Gunner4Life

risposta

0

Sembra che il target JavaScript venga nuovamente interrotto nella distribuzione 3.4. 3.3 funziona comunque bene per me.

0

ho cercato di ottenere questo lavoro, e solo appena riuscito a generare file .js con successo dopo aver letto questo:

http://www.antlr3.org/pipermail/antlr-interest/2011-August/042417.html

da posta:

Ecco come iniziare con ANTLR e il JavaScript back-end:

  1. Scarica ANTLRWorks 1.2.2: < http://antlr.org/download/antlrworks-1.2.2.jar>. L'obiettivo JavaScript funziona solo quando l'IDE genera il codice lessico e parser (vedere < http://antlr.1301665.n2.nabble.com/maven-plugin-and-javascript-target-td3647109.html>). Se si tenta di eseguire ANTLR v3.1 dalla riga di comando, verrà visualizzato il messaggio di errore " " (10): errore interno: il gruppo JavaScript non soddisfa l'interfaccia ANTLRCore ".
  2. scaricare la distribuzione runtime JS: http://antlr.org/download/antlr-javascript-runtime-3.1.zip

From then on you can use ANTLRWorks 1.2.2 to generate the lexer and parser code by selecting "Generate Code" from the "Generate" menu. ANTLRWorks will place the generated files into an output directory in the folder in which the grammar file resides.

Si noti che se si verifica un errore nel processo di generazione, poi per qualche motivo l'azione "Genera codice" non funziona più. Basta chiudere la grammatica e riaprirlo dal menu "Apri recenti".

3

C'è un nuovo obiettivo JS Lang per ANTLR4 che è stato pubblicato a GitHub quasi 3 mesi fa:

antlr/antlr4-javascript

Non è ancora integrato in una release ufficiale, ma si può probabilmente solo gettarlo nel ultimo codice di CODLE ANTLR4 e ricompilare ANTLR da soli.

+0

Il progetto antlr4-javascript ora dispone di test basati su browser ed è molto più dettagliato. Nel sorgente del JavaScriptTarget, sembra che il target di rilascio previsto sia ANTLR 4.5. – jhyry

+4

Link non funzionante –

+0

Ecco un collegamento migliore con informazioni aggiornate: https://github.com/antlr/antlr4/blob/master/doc/javascript-target.md –