用 C++ 写了个 JavaScript 解释器
資深大佬 : JustSong 9
主要是拿来练习编译原理,该项目前前后后历时将近两个月,现在终于支持了大部分必要的语法(不包含对象),例如执行选择排序算法:
function printArray(array, len) { while (len > 0) { len = len - 1; output(array[len]); } } function selectionSort(arr, length) { for (let i = 0; i < length; i = i + 1) { let minIndex = i; for (let j = i; j < length; j = j + 1) { if (arr[j] < arr[minIndex]) { minIndex = j; } } if (minIndex != i) { let temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } } printArray(arr, len); } let arr = [2, 5, 17, 7, 19, 90, -9, 11, 1, 0, 10, -6]; let len = 12; selectionSort(arr, len);

目前支持交互模式:

项目地址: https://github.com/songquanpeng/node
希望大家能给个 Star,满足我的一个小小愿望,另外如果看的人多了,我就把源码里的注释好好地补一下。
希望能对想要实践编译原理的同学有所帮助,谢谢。
大佬有話說 (17)