标签: lexical

Flex 在默认规则匹配时将换行符打印到标准输出 - 想要改变该行为

我有以下弹性规则。

"#"{name}               {printf(" HASH |  %s\n", yytext);}
.                       {}
Run Code Online (Sandbox Code Playgroud)

它非常适合我的目的,并且在与第一条规则匹配时输出;

HASH | some matched string
Run Code Online (Sandbox Code Playgroud)

困扰我的是 flex 还在第二条规则的每个匹配项上打印一个换行符。所以我得到了一个充满换行符的标准输出。在 C 中有什么都不做的 OP 吗?我是否隐含地告诉 flex 打印带有空规则操作的换行符?省略“{}”会导致相同的行为。我可以使用 sed 或其他任何东西来过滤掉换行符,但我宁愿告诉 flex 停止打印换行符。

我很高兴提供后续示例和数据。

lexical flex-lexer

5
推荐指数
1
解决办法
1217
查看次数

NLTK(python)中的语料库和词典有什么区别

有人能告诉我NLTK中语料库,语料库词典之间的区别吗?

什么是电影数据集

什么是Wordnet

nlp machine-learning corpus nltk lexical

4
推荐指数
1
解决办法
7721
查看次数

如何在Scala解析器组合器中组合Regexp和关键字

我已经看到了两种在Scala中构建解析器的方法.

第一个是从RegexParsers扩展并定义您赢得的词汇模式.我看到的问题是,我真的不明白它是如何处理关键词含糊不清的.例如,如果我的关键字与idents匹配相同的模式,那么它会将关键字作为标识进行处理.

为了应对这一点,我已经看到了类似的帖子这样一个说明如何使用StandardTokenParsers指定关键字.但是,我不明白如何指定正则表达式模式!是的,StandardTokenParsers带有"ident"但它没有我需要的其他(复杂的浮点数表示,特定的字符串文字模式和转义规则等).

如何同时获得指定关键字的能力以及使用正则表达式指定令牌模式的能力?

parsing scala keyword lexical-analysis lexical

3
推荐指数
1
解决办法
1452
查看次数

语法高亮/词法分析算法

语法高亮显示器使用的通用算法是什么?我在正则表达式中使用交替实现了一种简单的方法:

STRING_PATTERN | COMMENT_PATTERN | KEYWORD_PATTERNS

因为检测某些东西是字符串还是模式取决于哪个是第一个:

// This is a "comment"

"This is a // string"
Run Code Online (Sandbox Code Playgroud)

但是关键字会变得有点复杂.这种方法在我目前的实现中有效,但我不相信它是最佳的.

另一个问题是您突出显示的顺序.如果您在标识符/关键字之前突出显示数字,那么您可能会意外地突出显示关键字中的数字...

编辑:

我的插件现在在这里:http://wordpress.org/extend/plugins/crayon-syntax-highlighter/

algorithm syntax text highlighting lexical

3
推荐指数
1
解决办法
2419
查看次数

在Javascript中需要帮助理解(词法)变量范围

我有一个.js文件,我正在使用NodeJS执行.这是我的文件的内容:

var ctry = "America";

function outer(msg) {
    console.log(msg + " " + ctry) ;
    var ctry = "Canada" ;
}
outer("God Bless");
Run Code Online (Sandbox Code Playgroud)

当我运行这个文件时,我希望看到"上帝保佑美国"但相反,我看到"上帝保佑未定义".

如果我注释掉内部var ctry = line,我会得到"God Bless America",如果我将内部var ctry =行移到console.log之上,我会得到"God Bless Canada".最后两个案例似乎是合乎逻辑的,但为什么在console.log之后var ctry的定义导致ctry在上面的代码中被设置为underfined?

javascript scope lexical

3
推荐指数
1
解决办法
83
查看次数

如何将.m文件更改为.mm文件?

如何将.m文件更改为.mm文件?

我收到错误:找不到cassert文件

我研究过,发现我需要将文件更改为.mm?

我怎样才能做到这一点?

error-handling xcode file lexical cocos2d-iphone

3
推荐指数
1
解决办法
6336
查看次数

区分词汇错误和语义错误

这两个错误,词汇和语义有什么区别?

int d = "orange";
inw d = 4; 
Run Code Online (Sandbox Code Playgroud)

第一个是语义错误吗?既然不能给 int 赋值?至于第二个,各个标记都搞砸了,所以它是词法的?这是我的思考过程,我可能是错的,但我想多了解一点。

java lexical

3
推荐指数
1
解决办法
7725
查看次数

是否可以通过在编辑器中输入来阻止新的段落节点?

I\xc2\xb4m 尝试创建一个基于 Lexical 的“一行”消息组件,但 i\xc2\xb4m 无法阻止 Enter 键创建新段落。

\n

有什么想法如何实现这一点?

\n

I\xc2\xb4ve 添加了样式

\n
white-space: nowrap!important; \n      resize: none;\n
Run Code Online (Sandbox Code Playgroud)\n

和 i\xc2\xb4ve 尝试 MaxLengthPlugin (它可以工作,但如果在那里输入它会创建两行)

\n

还尝试添加

\n
<EditorWrapper ref={onRef} data-testid="editor" \n        onKeyDown={event => {\n            if (event.key === 'Enter') {\n              event.preventDefault();\n            } \n          }}>\n
Run Code Online (Sandbox Code Playgroud)\n

我原以为这会阻止输入新段落,但仍然在编辑器中添加了一个新段落。

\n

lexical lexicaljs

3
推荐指数
1
解决办法
2412
查看次数

C++解析器生成器

我正在编写自己的脚本语言,我需要一个软件工具来生成用于解析我的语言的C++代码.我需要一个词法分析器和一个生成C++代码的解析器生成器.能够生成Visual C++ 2010项目对我来说会很好.建议?

c++ parsing lexer lexical

2
推荐指数
1
解决办法
8218
查看次数

如何在Haskell中解析撇号/字符文字?

我正在尝试编写一些读取Lambda表达式并输出beta缩减版本的内容.Lambdas的输入方式如下:\ variable - > expression和applications将采用(表达式)(表达式)的形式.因此,如果在字符串的开头找到'\',它知道处理一个Lambda,如果找到'(',它知道处理一个应用程序.

我有一个Lambda表达式定义的类型:

data Expression = Variable String
                | Lambda Expression Expression 
                | Apply Expression Expression 
Run Code Online (Sandbox Code Playgroud)

这是我第一次尝试编写读取输入的函数

processInput :: String -> Expression
processInput ('\':input) = processLambda input
processInput ('(':input) = processApply input
processInput str         = Variable str
Run Code Online (Sandbox Code Playgroud)

当我尝试加载此功能时,我得到了

lexical error in string/character literal at ':'
Run Code Online (Sandbox Code Playgroud)

所以我尝试使用警卫:

processInput input
    | head input == '\'                      = processLambda (tail input)
    | head input == '('                      = processApply (tail input)
    | otherwise                              = Variable input
Run Code Online (Sandbox Code Playgroud)

但得到了

lexical error in string/character literal …
Run Code Online (Sandbox Code Playgroud)

haskell lambda-calculus lexical

2
推荐指数
1
解决办法
228
查看次数