2010-01-04 14 views
1

Est-ce que quelqu'un sait d'un analyseur Javascript ou tokenizer lexical (de préférence en Python?)Javascript lexer/tokenizer (en Python?)

Fondamentalement, étant donné un fichier Javascript arbitraire, je veux saisir les jetons.

par exemple.

foo = 1

devient quelque chose comme:

  1. nom de la variable: "foo"
  2. espaces blancs
  3. opérateur
  4. : égal
  5. espaces
  6. entier: 1
+0

Comme cela? http://www.mozilla.org/js/language/js20-2002-04/core/lexer.html Ou quelque chose de différent? –

+0

Cela ressemble c'est juste de décrire les règles de la langue, je suis à la recherche d'une application que je peux alimenter en code arbitraire, et il va les tokenize comme ci-dessus – Jay

Répondre

2

http://code.google.com/p/pynarcissus/ en possède un.

J'ai également fait un mais il ne supporte pas l'insertion automatique de point-virgule donc il est inutile pour javascript que vous n'avez aucun contrôle (comme presque tous les programmes javascript réels manquent au moins un point-virgule :)

http://bitbucket.org/santagada/jaspyon/src/tip/jaspyon/

la grammaire est en jsgrammar.txt, il est analysé par la lib analyse syntaxique PyPy (que vous devrez télécharger et extraire de la source de pypy) et construire un arbre d'analyse syntaxique que je marche sur astbuilder Mais si vous n'avez pas de problèmes de licence, je voudrais aller avec pynarcis sus. Heres un lien direct pour regarder le code (porté de narcisse):

http://code.google.com/p/pynarcissus/source/browse/trunk/jsparser.py