如何用v8或rhino执行JS语法检查?

时间:2013-08-22 07:26:00

标签: javascript syntax

我想使用诸如v8或rhino之类的JS引擎来执行语法检查而不实际执行代码。是否可以使用命令行版本或相应的库?任何有用的文档?

1 个答案:

答案 0 :(得分:0)

我在v8上取得了一些有限的成功:

/*
 * main.cpp
 *
 *  Created on: Aug 22, 2013
 *      Author: kallikanzarid
 */

#include <v8.h>
#include <iostream>

int main() {
    using namespace std;
    using namespace v8;

    //
    // See https://developers.google.com/v8/get_started
    //

    // Create a stack-allocated handle scope.
    HandleScope handle_scope;

    // Create a new context.
    Handle<Context> context = Context::New();

    // Here's how you could create a Persistent handle to the context, if needed.
    Persistent<Context> persistent_context(context);

    // Enter the created context for compiling and
    // running the hello world script.
    Context::Scope context_scope(context);

    Local<String> source = String::New("function foo(x { console.log(x); }; foo('bar')");
    Local<Script> script = Script::New(source);

    persistent_context.Dispose();

    return 0;
}

我希望你们能打败这个本质上是二进制的语法检查器。我可以尝试通过捕获异常并尝试使输出机器可读,如果没有更好的方法来改进它。