Разбор значений аргументов JavaScript в python - PullRequest
1 голос
/ 28 августа 2010

Есть ли способ анализа значений аргументов, передаваемых в функцию JavaScript в python?

Я хочу иметь возможность автоматически документировать вызовы функций JavaScript, чтобы убедиться, что им переданы правильные аргументы.

Например, в:

function mymethod(fruit, vegetable, drink) {
    // dummy function
}

function drink(drink) {
    this.drink = drink
}
var myveg = 'tomato'

mymethod('grape', myveg, new drink('apple juice'))

вызов функции будет переписан как:

mymethod(
    /*fruit*/ 'grape', /*vegetable*/ myveg, 
    /*drink*/ new drink('apple juice')
)

Поэтому я действительно хочу иметь возможность разделить аргументы на ["'grape'", "myveg", "new drink('apple juice')"], удалив все предыдущие автоматически вставленные комментарии в процессе, предпочтительно разрешив вызовы подфункций в качестве аргументов.

Если все остальное терпит неудачу, я сделаю так, чтобы аргументы были в качестве комментария перед вызовом метода (что было бы намного легче проанализировать), но я подумал, что сначала спрошу, так как ошибки будут выглядеть более очевидными .

Большое спасибо заранее.

1 Ответ

1 голос
/ 28 августа 2010

Вам понадобится полный синтаксический анализатор JavaScript, если вы заранее не знаете, что ваш код JavaScript соответствует некоторым заранее известным соглашениям. Регулярные выражения не подходят для этой задачи, потому что они не подходят для сопоставления вложенных структур, таких как скобки.

В Python есть много инструментов генератора синтаксических анализаторов: Инструменты разбора Python . Я не знаю, есть ли на них парсеры JavaScript.

...