2015-12-08 7 views
0

Esprima - хорошая библиотека для синтаксического анализа, анализируется для многоцелевого javascript-кода. Но я не понимаю loc и range в esprima. На веб-сайте они заявили, что:loc and range in esprima

  • loc Узлы имеют информацию о местоположении и колонке.
  • range Узлы имеют индекс на основе местоположения диапазона (массив)

Я использовал пример кода, чтобы понять, что это такое.

var x = 42; 
console.log(1); 

И результат:

"range": [ 
     0, 
     27 
    ], 

Не могли бы вы помочь мне понять range смысл.

Спасибо и уважением,

+0

Похоже на строковые индексы во входном тексте для меня. – Bergi

+0

@Bergi Вы можете просмотреть полное дерево AST в этой [link] (http://esprima.org/demo/parse.html?code=var%20x%20%3D%2042%3B%0Aconsole.log (1)% 3B) и придерживаться диапазона, основанного на индексе. –

+0

Эта страница сломана для меня. Попробуйте http://astexplorer.net/#/MrUNU1X4xg :-) – Bergi

ответ

0

Просто надо знать, что Esprima LOC и диапазон не является точным для узлов шаблона. Он начинает +1 от текущего индекса вместо 0. Просто сравните с Acorn или Cherow, и вы сами увидите это. Не уверены в помеченных шаблонах.