Javascript 如何访问node.js解析器代码?

Javascript 如何访问node.js解析器代码?,javascript,node.js,parsing,compiler-construction,Javascript,Node.js,Parsing,Compiler Construction,目标:创建一个较小版本的node.js,最终目标是创建一种具有node(js)某些功能的脚本语言,并添加一些我自己的功能 当然,我知道我需要查看node.js源代码,但在nodejs.org上的node.js源代码中找不到任何解析器代码。NoDE.js有自己的解析器(可能使用YACC或一些这样的工具)作为NoDE.js主要用C、C++编写吗?如果是,我在哪里访问它?或者它会在解析JS的V8引擎源代码上进行回复?我认为node.js语言本身并不严格符合V8 Javascript。还是这样?因为V8

目标:创建一个较小版本的node.js,最终目标是创建一种具有node(js)某些功能的脚本语言,并添加一些我自己的功能

当然,我知道我需要查看node.js源代码,但在nodejs.org上的node.js源代码中找不到任何解析器代码。NoDE.js有自己的解析器(可能使用YACC或一些这样的工具)作为NoDE.js主要用C、C++编写吗?如果是,我在哪里访问它?或者它会在解析JS的V8引擎源代码上进行回复?我认为node.js语言本身并不严格符合V8 Javascript。还是这样?因为V8将JS编译为本机代码,所以它肯定在某个地方有一个成熟的解析器/转换器


简而言之,有人能告诉我解析器代码,让我从node.js解析器中删除一些不需要的语法规则吗?或者已经有一些开源项目解决了这个问题

如果您希望创建一种新的语法/语言,它仍然可以利用node的机制来执行I/O等操作,那么最好的选择可能是创建一个transpiler(例如,像CoffeeScript或TypeScript那样)


这样做要比尝试破解v8的源代码来更改JavaScript语言实现本身容易得多。

您可能不会创建更小的node.js。它使用V8来处理JS。Node提供处理套接字连接等所需的http解析器和其他shenanigans。也有类似的项目,如
nw.js
phantomJS
。您的评论很有帮助,但我相信其他“shenanigans”模块不需要额外的解析支持,因为它们只返回js对象。但是有一些语句,比如“require”,我相信在V8解析器中不会涉及到,因为它们不是JS语句。为什么你说我不会创建一个更小的node.js?至少在理论上,只需从解析器中剥离一些语法规则(或相关代码)就可以实现这一点。不是吗?不是真的。如果您希望更改语法规则,那么您将更改V8,而不是节点<代码>要求<代码>是一个节点模块,它使用JS语法,并将一些C++代码与V8一起粘贴。我不知道为什么你会想要一个“更小”的节点(我假设你想要更小的可执行文件,nw大约是70mb,这对于它的功能来说是非常小的),但是杀死真正有用的模块或修改语法并不意味着你最终会得到一个更小的文件/项目。不管怎样,我祝你的项目好运。我想创建一种从node派生的更小更具体的语言(DSL,如果你愿意的话),而不是更小的可执行文件。为什么不创建类似CoffeeScript或TypeScript的东西,在那里你可以创建一个transpiler呢?看来这条路容易多了?