const recast = require("recast");

const {variableDeclaration, variableDeclarator, functionExpression} = recast.types.builders

const code = `

function add(a, b) {

return a +

// 有什么奇怪的东西混进来了

b

}`

const ast = recast.parse(code);

const add  = ast.program.body[0]

ast.program.body[0] = variableDeclaration("const", [

variableDeclarator(add.id, functionExpression(

null, // Anonymize the function expression.

add.params,

add.body

))

]);

//将AST对象重新转回可以阅读的代码

const output = recast.print(ast).code;

console.log(output)

php ast 抽象语法树,AST抽象语法树相关推荐

  1. 【编译原理】构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 7.)(笔记)解释器 interpreter 解析器 parser 抽象语法树AST

    [编译原理]让我们来构建一个简单的解释器(Let's Build A Simple Interpreter. Part 7.) 文章目录 python代码 插--后序遍历 C语言代码(有错误) C语言 ...

  2. php7 ast,PHP7新特性之抽象语法树(AST)带来的变化详解

    本文分析了PHP7新特性之抽象语法树(AST)带来的变化.分享给大家供大家参考,具体如下: 这里大部分内容参照 AST 的 RFC 文档而成:https://wiki.php.net/rfc/abst ...

  3. js最小化浏览器_「译」解析、抽象语法树(ast) +如何最小化解析时间的5个技巧...

    前言 该系列课程会在本周陆续更新完毕,主要讲解的都是工作中可能会遇到的真实开发中比较重要的问题以及相应的解决方法.通过本系列的课程学习,希望能对你日常的工作带来些许变化.当然,欢迎大家关注我,我将持续 ...

  4. C 语言 抽象语法树AST

    引用地址:http://blog.chinaunix.net/uid-26750235-id-3139100.html 抽象语法树简介 (一)简介 抽象语法树(abstract syntax code ...

  5. JS抽象语法树AST基础学习

    点击上方"Python学习开发",选择"加为星标" 第一时间关注Python技术干货! 原文:http://www.goyth.com/2018/12/23/A ...

  6. 理解Babel是如何编译JS代码的及理解抽象语法树(AST)

    Babel是如何编译JS代码的及理解抽象语法树(AST) 1. Babel的作用是?    很多浏览器目前还不支持ES6的代码,但是我们可以通过Babel将ES6的代码转译成ES5代码,让所有的浏览器 ...

  7. 什么是抽象语法树(AST)

    原创: 弗拉 码农翻身 作者: 弗拉@重度前端 https://segmentfault.com/a/1190000017992387 已经获得作者独家授权发布,老刘做了改编. 张大胖一上班,领导就扔 ...

  8. java抽象语法树(ast),AST 抽象语法树

    AST 抽象语法树简介 AST(Abstract Syntax Tree)是源代码的抽象语法结构树状表现形式,Webpack.ESLint.JSX.TypeScript 的编译和模块化规则之间的转化都 ...

  9. java抽象语法树_抽象语法树(AST)

    抽象语法树(AST) 最近在做一个类JAVA语言的编译器,整个开发过程,用抽象语法树(Abstract SyntaxTree,AST)作为程序的一种中间表示,所以首先就要学会建立相对应源代码的AST和 ...

  10. php ast 抽象语法树,抽象语法树(AST)

    抽象语法树入门到放弃? 抽象语法树(Abstract syntax tree AST)在计算机科学中,抽象语法和抽象语法树其实是源代码的抽象语法结构的树状表现形式 为什么是抽象的? 前端工程化,离不了 ...

最新文章

  1. Michael Jordan获2020IEEE冯诺依曼奖,曾培养吴恩达、Bengio
  2. 微服务~分布式事务里的最终一致性
  3. 关于cookie domain中的点前缀
  4. Jupyter Notebook 常用的快捷键
  5. 图像处理中的傅里叶变换和频率域滤波概念
  6. ThreadLocal实现线程范围内的共享变量
  7. Oracle约束的使用
  8. 什么是集群负载均衡与高可用(有图详解)
  9. 从零开始学androidIntent初步.四十.
  10. EasyPOI之导出Excel复杂模板
  11. 什么样的会员管理才叫有效果的会员运营方案?
  12. 评卷系统-答题卡制作参考网站
  13. 完全平方数-xdoj
  14. C语言编程求3*3矩阵对角线元素之和
  15. 【机器学习】一文彻底搞懂自动机器学习AutoML:H2O
  16. 计算机打字失灵,window_Win10键盘失灵无法打字提示错误代码19该怎么办?,我电脑的键盘无法打字了,显 - phpStudy...
  17. 查看Ubuntu的版本号,并添加国内镜像源
  18. watir测试报告(一)
  19. Windows Mobile 开发资源(精)
  20. 工作日志2009年、二

热门文章

  1. sizeof(数组)
  2. VL10C根据销售订单创建交货单
  3. 字符和字节详解、Java中字节串和字符串相互转换
  4. 倒啤酒竟能拿到诺贝尔物理学大奖!明明是普通操作,凭什么这么强?
  5. android ripple水波纹详解
  6. 【原版教材•中英对照】半导体器件物理——这本经典著作在半导体器件领域树立起了先进的学习和参考典范
  7. 独立游戏市场营销策略:社交营销篇
  8. 如何保留5个有效数字输出c不4舍5入_社群运营:6个步骤教会实体店系统搭建被动式引流,变现社群...
  9. Python使用turtle画棋盘格
  10. 不知道更新什么,推荐几首歌