我正在编写一个小型解释器,用于简单的BASIC语言,使用avr-gcc工具链在C语言的AVR微控制器上练习.但是,我想知道是否有任何开源工具可以帮助我编写词法分析器和解析器.
如果我写这个在我的Linux机器上运行,我可以使用flex/bison.现在我把自己限制在一个8位平台上,我必须手动完成所有操作,不是吗?
假设我有这两个例子
我需要一种方法来获得以下数组:
[(],[A][=][1],[)],[and],[(],[B],[=],[2],[)] [(],[A][=][1],[)],[(],[B],[=],[2],[(],,[)][)] 我试图做的是以下内容
使用以下函数查找分隔符(在这种情况下,分隔符是空格" " and any brackets (或))
function findExpressionDelimeter (textAreaValue){
var delimiterPositions = [];
var bracesDepth = 0;
var squareBracketsDepth = 0;
var bracketsDepth = 0;
for (var i = 0; i < textAreaValue.length; i++) {
switch (textAreaValue[i]) {
case '(':
bracketsDepth++;
delimiterPositions.push(i);
break;
case ')':
bracketsDepth--;
delimiterPositions.push(i);
break;
case '[':
squareBracketsDepth++;
break;
case ']':
squareBracketsDepth--;
break;
default:
if (squareBracketsDepth == 0 && …Run Code Online (Sandbox Code Playgroud) arrays ×1
avr-gcc ×1
bison ×1
embedded ×1
flex-lexer ×1
javascript ×1
parsing ×1
regex ×1
substring ×1