草庐IT

lexical-analysis

全部标签

ruby - 在 Ruby 中解析结构化文本

SO上有几个关于在Ruby中解析结构化文本的问题,但没有一个适用于我的情况。我是RubyWhoislibrary的作者.该库包含多个解析器,用于解析WHOIS响应并从内容中提取属性。到目前为止,我使用了两种方法:基本解析器的正则表达式(例如whois.aero)StringScanner对于高级解析器(例如whois.nic.it)正则表达式效率不高,因为如果我需要提取15个属性,我需要至少扫描同一个响应15次。StringScanner是一个不错的库,但创建一个高效的扫描器并不是那么简单。我想知道您是否建议使用其他一些Ruby工具来实现WHOIS记录解析器。我正在阅读有关Treeto

ruby - 如何解析 Ruby 中以制表符分隔的文本行?

我发现Ruby的each函数有点令人困惑。如果我有一行文本,each循环会给我每个空格分隔的单词,而不是每个单独的字符。那么检索由制表符分隔的字符串部分的最佳方法是什么。目前我有:line.split.eachdo|word|...end但这并不完全正确。 最佳答案 我不确定我是否完全理解你的问题,但如果你想在制表符上拆分行,你可以将其指定为拆分的参数:line.split("\t").each...或者您可以将其指定为正则表达式:line.split(/\t/).each...Each基本上只是遍历数组中的所有项目,split从字

Ruby 范围,常量优先级 : lexical scope or inheritance tree

我将向您展示来自rubykoans的代码片段教程。考虑下一个代码:classMyAnimalsLEGS=2classBird实际上问题在评论中(我用星号突出显示了它(尽管它打算以粗体显示))。有人可以解释一下吗?提前致谢! 最佳答案 这里有答案:Ruby:explicitscopingonaclassdefinition.但也许它不是很清楚。如果您阅读链接的文章,它将帮助您找到答案。基本上,Bird是在MyAnimals的范围内声明的,在解析常量时具有更高的优先级。Oyster位于MyAnimals命名空间中,但未在该范围内声明。将

javascript - 错误 : Can't access lexical declaration

lettextBytes=ctypes.uint8_t("hello");leta=newSECItem;a.type=siBuffer;a.data=textBytes.address();a.len=textBytes.length;我收到ReferenceError:初始化前无法访问词法声明textBytes。 最佳答案 我无法重现你得到的引用错误,但我认为改变lettextBytes=ctypes.uint8_t("hello");因为这会抛出TypeError:expectedtypeuint8_t,got"hello"t

javascript - `InputElementDiv`在ECMAScript词法语法中代表什么

ThelexicalgrammarECMAScript的词法分析器(lexer)列出了以下标记类:InputElementDiv::WhiteSpaceLineTerminatorCommentCommonTokenDivPunctuatorRightBracePunctuatorInputElementRegExp::WhiteSpaceLineTerminatorCommentCommonTokenRightBracePunctuatorRegularExpressionLiteralInputElementRegExpOrTemplateTail::WhiteSpaceLineT

典型相关分析(Canonical Correlation Analysis,CCA)原理及Python、MATLAB实现

随着对CCA的深入研究,是时候对CCA进行一下总结了。本菜鸡主要研究方向为故障诊断,故会带着从应用角度进行理解。典型相关分析基本原理从字面意义上理解CCA,我们可以知道,简单说来就是对不同变量之间做相关分析。较为专业的说就是,一种度量两组变量之间相关程度的多元统计方法。关于相似性度量距离问题,在这里有一篇Blog可以参考参考。首先,从基本的入手。当我们需要对两个变量X,YX,YX,Y进行相关关系分析时,则常常会用到相关系数来反映。学过概率统计的小伙伴应该都知道的吧。还是解释一下。相关系数:是一种用以反映变量之间相关关系密切程度的统计指标。相关系数是按积差方法计算,同样以两变量与各自平均值的离差

javascript - 误报 "Lexical declarations require ECMAScript 6"和 "TypeScript 1.x feature. Current language is 1.4"错误消息

在将TypeScript更新到版本1.7(目前最新版本)后,我一直看到Resharper指出错误,例如在使用namespace、const和let,即使这个版本的TypeScript应该支持它们。例如:TypeScript1.x功能。当前语言是1.4和词法声明(let和const)需要ECMAScript6编译器目标。当前目标是ECMAScript5。 最佳答案 我的Resharper(10.0.1)版本似乎无法检测到TypeScript版本。要解决此问题,您可以手动指定版本。由于此版本的Resharper(发布时为最新版本)不支持

javascript - 除了 First Class Functions 和 Lexical Scoping,JavaScript 与 Scheme 实现有什么共同之处?

我一直想知道为什么DouglasCrockford总是将JavaScript与Scheme进行比较。是的,JS的设计者打算成为Scheme;但是除了一流的函数支持和词法作用域(已损坏)之外,JS与Scheme有哪些共同点使其成为“披着C外衣的Lisp”? 最佳答案 我想到的另一件事是在整个语言和库中普遍使用单一无处不在的数据结构:conslists在Scheme的情况下,maps(在ECMAScript中称为对象。不仅ECMAScript具有一流的过程这一事实,而且这些过程是唯一的抽象机制。(或者更准确地说是封装机制。)

C#/.NET 词法分析器生成器

我正在为C#/.NET寻找一个体面的词法扫描器生成器——它支持Unicode字符类别,并生成一些可读性和高效的代码。有人知道吗?编辑:我需要支持Unicode类别,而不仅仅是Unicode字符。目前仅Lu(Letter,Uppercase)类别就有1421个字符,我需要非常具体地匹配许多不同的类别,而不是手写它所需要的字符集。此外,实际代码是必须——这排除了生成二进制文件然后与驱动程序(即GOLD)一起使用的东西编辑:ANTLR还不支持Unicode类别。有一个openissue不过,它可能会在某一天满足我的需求。 最佳答案 GPL

javascript - 找出正则表达式失败的位置

我正在尝试用JavaScript编写一个词法分析器来查找简单的特定领域语言的标记。我从一个简单的实现开始,它只是尝试匹配一行中当前位置的后续正则表达式,以确定它是否匹配某种标记格式并接受它。问题是,当这样的正则表达式中的某些内容不匹配时,整个正则表达式都会失败,所以我不知道究竟是哪个字符导致它失败。有没有办法找出导致正则表达式失败的字符串中的位置?INB4:我不是在询问调试我的正则表达式并验证其正确性。它已经是正确的,匹配正确的字符串并丢弃不正确的字符串。我只想以编程方式知道正则表达式停止匹配的确切位置,找出用户输入中不正确的字符的位置,以及其中有多少是好的。有没有办法只用简单的正则表