js 四则运算解释器

流程 词法分析 这里不讲那么复杂的正则表达式、DFA和NFA(后面的blog再介绍),或者各种证明啥的. 毕竟我们只需要写一个四则运算的解析器 我们的要写的东西,会不断地匹配输入的每一个字符流 而我们输入的字符流类型分为几种: '+', '-', '*', '/'和数字 将其转化为token流,由于js动态语言的灵活和我们程序很简单 我们只需要用变量token就可以存下来字符流的信息,无需为token定义一个复杂的类 详见next()函数中,对每一个类型的取值   语法分析 BNF范式 »

clang intptr_t类型

问题 这篇手把手教你构建 C 语言编译器,里面有着这样的代码 void eval() { int op, *tmp; while (1) { if (op == IMM) {ax = *pc++;} // load immediate value to ax else if (op == LC) »

js 鼠标拖动画矩形

业务需要扫描一些图形点 目录结构 main.html |-- img |- main.png js |- jquery.js - main.js 效果图 居中 首先居中,直接margin:0 auto,没有居中,查看了一下box模型,发现margin都是没有值的。所以给它加了个display: »

edb 安装小记

发现神器 逆向工具ollydbg对于64位支持不好,而且只是windows下而已。发现神器edb,linux下qt编写而成。 github地址,我当前系统是xubuntu 15.04 64位系统。 安装 下载qt,qt官网地址,下载.run文件,然后./xxx.run,安装图形界面安装即可。或者 sudo apt-get install qt-sdk 下载edb源码 git »

nodejs generator 介绍

generator是什么 yield关键字可以让当前函数暂停执行并保存现场,并跳出到调用此函数的代码处继续执行。 可以利用函数执行时的返回句柄的next方法回到之前暂停处继续执行 next执行的返回值的value即是yield关键字后面部分的表达式结果 下一个next的唯一参数值可以作为yield的整体返回值,并赋值给a变量 语句出处链接 看个例子: 四个名为Ai的generator函数 function *A1(x) { let y = yield x; return y } function *A2(x) { let y = (yield) * x; »

ghost blog 自动备份

ghost-blog 自动备份 blog放在digitalocean上,说不定哪天忘记缴费就给停了,超出时间数据就都没了。 数据 先确定需要备份哪些数据,其实我们所需要备份的数据只有是数据库数据、主题(如果用的是默认数据库,就没有必要了) $ cd ghost/content $ du -h 200K ./data 8.0K ./apps 24K ./themes/casper/assets/fonts »