我目前正在为我设计的语言编写一个解释器。
lexer/解析器(GLR)是用Flex/Bison编写的,是D中的主要解释器--到目前为止,一切都运行得很完美。
问题是,我还想添加字符串插值,即识别包含特定模式(例如"[some expression]")的字符串文本,并转换包含的表达式。我认为这应该在解析器级别,在相应的语法动作中完成。
我的想法是将插值的字符串转换/处理为简单的级联(就像它现在工作的那样)。
例如。
print "this is the [result]. yay!"
到
print "this is the " + result
我得到了一组包含连接单词的字符串,如下所示:
longstring (two English words)
googlecloud (a name and an English word)
当我在谷歌中输入这些术语时,它会识别出带有“你的意思吗?”的单词。("long string","google cloud")。我需要在我的应用程序中使用类似的功能。
我研究了Python和ElasticSearch提供的选项。我找到的所有标记化示例都是基于空格、大写字母、特殊字符等。
如果字符串是英文的,我的选择是什么(但它们可能包含名称)?它不一定要在特定的技术上。
我能
所以我开始用C编写代码,我发现了一个错误,我不知道为什么发生在我身上://变量
#include <stdio.h>
int main () {
int x;
printf ("Add a value to variable 'x': ");
scanf ("i%", &x);
printf ("'x' = %i.\n", x);
system ("pause");
return 0;
}
当我编译它时,它只告诉我,无论我以前分配给它什么值,X的值都是0。