Javascript 减少预处理以允许使用空格敏感语法

Javascript 减少预处理以允许使用空格敏感语法,javascript,regex,less,Javascript,Regex,Less,我正在研究一种能够识别空白的智能笔,而不是类似于手写笔的大括号 我开始(相当残忍地)拼凑一个可能提出的解决方案,这样就可以将甚至更少的(更少的对空格敏感的版本)预处理成更少的解析器,然后像往常一样解析 //生成输入字符串 var src=[ “.navbar”, “显示:块;”, “.item”, “浮动:左;”, “文本装饰:无;”, “&:悬停”, “文本装饰:下划线;” ].join(“\n”) 函数parseEvenLess(src){ //将输入字符串拆分为行 变量行=src.spl

我正在研究一种能够识别空白的智能笔,而不是类似于手写笔的大括号

我开始(相当残忍地)拼凑一个可能提出的解决方案,这样就可以将
甚至更少的
(更少的对空格敏感的版本)预处理成更少的解析器,然后像往常一样解析

//生成输入字符串
var src=[
“.navbar”,
“显示:块;”,
“.item”,
“浮动:左;”,
“文本装饰:无;”,
“&:悬停”,
“文本装饰:下划线;”
].join(“\n”)
函数parseEvenLess(src){
//将输入字符串拆分为行
变量行=src.split(“\n”);
//声明变量以处理输出和缩进跟踪
var out=[],lastdindent=“”,currentdindent=“”,extras=[];
//循环行,然后在循环过程中添加每个缩进
对于(变量i=0;i

根据他们的“主题”不确定是否正确,但由于这是有效的代码,您可以查看将其发布到。@MikeMcCaughan好吧,它适用于单个块,但如果您添加另一个块,则会中断如果您的问题是关于为什么它在多个块上中断,也许这应该是您结束时的问题;)@MikeMcCaughan嗯,我的问题是为什么它会在多个块上断裂,但我开始意识到这确实是一个XY问题。我开始使用的代码对于基本情况来说效果很好,但每次我添加代码以尝试处理更多的场景(例如处理
)时,似乎都没有优雅的方法来处理,揭示了我的解决方案的底层结构中的缺陷。@MikeMcCaughan我对问题进行了编辑,以进一步强调错误