标签: grammar

128千字节或128千字节?128 kBs还是128 kB?

我知道这是128欧元和128个苹果.

我认为它是128千字节,兆字节,千兆字节.或者它是128千字节,兆字节,千兆字节?

如果复数是正确的,我应该使用128 kBs,MBs,GBs.这看起来很陌生.

哪个是正确的,复数还是单数?

谢谢 :)

grammar wording

0
推荐指数
1
解决办法
616
查看次数

Prolog:简单的DCG a ^ nb ^ n

我一直在努力习惯在Prolog中使用DCG而失败.

如何定义一组语法规则来接受语言a ^ nb ^ n?

例如aaaabbbb或ab等...

谢谢 :).

grammar prolog dcg

0
推荐指数
1
解决办法
481
查看次数

Xtext项目列表或仅一个项目

我正在尝试创建一个解析以下内容的语法:

reference: java.util.String
Run Code Online (Sandbox Code Playgroud)

但同样

reference: {java.util.String, java.lang.Integer}
Run Code Online (Sandbox Code Playgroud)

换句话说,我希望它既解析一个合格名称列表,也只解析一个项目(在这种情况下不用'{'标记).

我试过的是这个:

Reference:
    'reference' ':' ('{' values+=QualifiedName (',' values+=QualifiedName)* '}') | (values+=QualifiedName);
Run Code Online (Sandbox Code Playgroud)

但是,我收到一个错误:在使用第一种形式的引用(没有{)时,在'java'中缺少'{'.有什么建议我应该尝试一下吗?

编辑:也尝试过

Reference:
    'reference' ':' ('{' values+=QualifiedName (',' values+=QualifiedName)* '}') | ((!'{')values+=QualifiedName);
Run Code Online (Sandbox Code Playgroud)

但在输入'!'时找不到可行的选择 语法定义中的错误.

编辑2:我没有"逗号分隔列表"的问题,我分开尝试了它,它运作良好.我唯一的问题是基于'{'字符来区分规则的两个部分.

grammar xtext

0
推荐指数
1
解决办法
2941
查看次数

自顶向下解析中的左递归问题

我已阅读此内容以了解更多自上而下和自下而上解析之间的区别,任何人都可以解释与自顶向下解析器中的左递归相关的问题吗?

grammar parsing programming-languages

0
推荐指数
1
解决办法
4008
查看次数

这是常规语法-S - > 0S0/00?

设L表示由语法S - > 0S0/00生成的语言.以下内容哪些是对的?(A)L = 0+(B)L是规则但不是0+(C)L是无上下文但不规则(D)L不是上下文无关

HI谁能解释我语法S - > 0S0/00所代表的语言是如何规则的?我非常清楚语法是没有上下文的,但不确定它是如何规则的?

grammar

0
推荐指数
1
解决办法
406
查看次数

NLTK 中的 PCFG 生成

我正在尝试从包含解析树的文件中学习 PCFG,例如:

(S (DECL_MD (NP_PPSS (PRON_PPSS (ii))) (VERB_MD (pt_verb_md need)) (NP_NN (ADJ_AT (aa)) (NOUN_NN (flight flight)) (PREP_IN (pt_prep_in from))) (AVPNP_NP (NOUN_NP (charlotte charlotte) ))

这是我的相关代码:

def loadData(path):
    with open(path ,'r') as f:
        data = f.read().split('\n')
    return data

def getTreeData(data):
    return map(lambda s: tree.Tree.fromstring(s), data)

# Main script
print("loading data..")
data = loadData('C:\\Users\\Rayyan\\Desktop\\MSc Data\\NLP\\parseTrees.txt')
print("generating trees..")
treeData = getTreeData(data)
print("done!")
print("done!")
Run Code Online (Sandbox Code Playgroud)

现在之后我在互联网上尝试了很多东西,例如:

grammar = induce_pcfg(S, productions)
Run Code Online (Sandbox Code Playgroud)

但这里的产品总是内置的功能,例如:

productions = []
for item in treebank.items[:2]:
  for tree in treebank.parsed_sents(item):
    productions += tree.productions() …
Run Code Online (Sandbox Code Playgroud)

python grammar nltk

0
推荐指数
1
解决办法
1360
查看次数

使用此语法在flex / bison中获取语法错误

我正在尝试为编译器生成中间代码。我在macOS上使用flex-bison。当我尝试输入时,出现语法错误,并且我不知道该语法错误来自何处。

这是我的词法:

%{
#include<stdbool.h>
#include <stdlib.h>
#include <string.h>
//#include "LinkedList.h"
#include "parser.tab.h"
char* tempString;
%}
%option yylineno

whole   0|[1-9][0-9]*
real    {whole}\.(([0-9])|([0-9][0-9]*[1-9]))
divisionop [/]
noSymbol    [^ \t\n\/\+\-\*\:\;\,\(\)\.]
error   {noSymbol}+

%%


[ \t\n\r]+  ;



\#[-+]?{whole}/[\ :\,\;\+\-\/\*\)\n\r]|".GT."|".GE."|".EQ."|".NE."|".LT."|".LE."|":="   {

    char* string = (char*) malloc(strlen(yytext));
    strcpy(string, yytext + 1);
    string[strlen(string)] = 0;
    //printf("Found integer : %d\n", atoi(string));
    //push(string,INTEGER,yylineno);
    return INTEGER;}


\#[-+]?{real}/[\ :\,\;\+\-\/\*\)\n\r]|".GT."|".GE."|".EQ."|".NE."|".LT."|".LE."|":="    {
    char* string = (char*) malloc(strlen(yytext));
    strcpy(string, yytext + 1);
    string[strlen(string)] = 0;
    //printf("Found real:%s\n",string);
    //push(string,REAL,0);
    return REALNUM;
}

[a-zA-Z][0-9][0-9a-zA-Z]*   {
    //printf("Found identifier:%s\n",yytext); …
Run Code Online (Sandbox Code Playgroud)

c compiler-construction grammar bison flex-lexer

0
推荐指数
1
解决办法
119
查看次数

Access SQL的语法

MS Access SQL语法是否存在语法(如EBNF或类似格式)?就像EBNF如何记录TSQL语法一样:https ://docs.microsoft.com/zh-cn/sql/t-sql/queries/select-transact-sql ? view = sql-server-2017 。

我只能找到带有示例的查找教程,但没有完整的语法。

sql ms-access grammar

0
推荐指数
1
解决办法
87
查看次数

这个C BNF语法不完整吗?

我经常在书中看到这种C语法。但是,似乎<identifier>从未声明过。

我是否缺少某些东西,或者该语法不完整?

c grammar bnf

0
推荐指数
1
解决办法
93
查看次数

在Java中替换单词时保持相同的大小写

我对 Java 比较陌生,所以请原谅任何白痴。

我正在使用 Bukkit 为 Minecraft 制作一个小插件。我想让它用正确的形式替换常见的语法错误。这是我的代码:

@EventHandler
public void onChat(AsyncPlayerChatEvent event){
    String message = event.getMessage().replaceAll("(?i)dont", "don't")
            .replaceAll("(?i)youre","you're");

    event.setMessage(message);
}
Run Code Online (Sandbox Code Playgroud)

这部作品在更换FINEdontdon't,并youreyou're
这种方法的问题在于它会替换DONTdon't, 而不是DON'T
DoNt-> don't, 而不是DoN't

有没有办法在保持正确大小写的同时替换单词?

java grammar replace minecraft bukkit

0
推荐指数
1
解决办法
66
查看次数