Inicio > Aplicaciones Web > Una API para Analizar JavaScript

Una API para Analizar JavaScript

sábado, 13 de enero de 2024 Dejar un comentario Ir a comentarios

En las nuevas versiones del shell SpiderMonkey introdujeron un API experimental para analizar código fuente JavaScript, que aterrizó esta semana. Por ahora, tienes que descargar y crear SpiderMonkey desde el código fuente para usarlo, pero espero que se incluya en futuras versiones de Firefox.


El API analizador proporciona una sola función:

Reflect.parse(src[, filename=null[, lineno=1]])

Reflect.parse toma una cadena de origen (y, opcionalmente, un nombre de archivo y número de línea de partida para la fuente de metadatos de ubicación), y produce un objeto JavaScript que representa el árbol de sintaxis abstracta del código fuente analizado, usando el analizador integrado de SpiderMonkey en sí mismo. Bastante claro, pero detrás de este punto de entrada simple es una completa API que cubre la totalidad de la sintaxis abstracta de SpiderMonkey. En resumen, cualquier cosa que SpiderMonkey puede analizar, puede analizarla también. Las herramientas de desarrollo generalmente necesitan un árbol de análisis, y JavaScript no es un idioma fácil de analizar. Con esta API, se vuelve mucho más fácil escribir herramientas como marcadores de sintaxis, análisis estático, verificadores de estilo, etc. Y porque Reflect.parse utiliza el mismo analizador que utiliza SpiderMonkey, está garantizado que sean compatibles.

He aquí un ejemplo simple:

js> var ast = Reflect.parse("obj.foo + 42");
js> var expr = ast.body[0].expression;
js> expr.left.property
({loc:null, type:"Identifier", name:"foo"})
js> expr.right
({
    loc: {
        source: null,
        start: {
            line: 1,
            column: 10
        },
        end: {
            line: 1,
            column: 12
        }
    },
    type: "Literal",
    value: 42
})

Pruébalo y no dudes en hacerle comentarios!

Comparte y diviertete:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • BlinkList
  • Blogosphere
  • Live
  • Meneame
  • MSN Reporter
  • MySpace
  • RSS
  • Suggest to Techmeme via Twitter
  • Technorati
  • LinkedIn
  • email
  • FriendFeed
  • PDF
  • Reddit
  • Wikio IT
  • Add to favorites
  • blogmarks
Top Footer