小编And*_*ith的帖子

将bash变量管道化为awk并存储输出

为了说明我的问题,

TEST="Hi my name is John"
OUTP=`echo $TEST | awk '{print $3}'`
echo $OUTP
Run Code Online (Sandbox Code Playgroud)

我期望这样做是将$ TEST变量传递给awk并将第三个字存储到$ OUTP中.

相反,我得到"嗨:没找到",好像它期望输入是一个文件.但是,如果我只传递一个字符串而不是一个变量,则没有问题.什么是最好的方法来解决这个问题?

谢谢大家!

bash awk

8
推荐指数
2
解决办法
4万
查看次数

分析器生成器:如何一起使用GPLEX和GPPG?

在查看好的C#解析器生成器的帖子之后,我偶然发现了GPLEX和GPPG.我想使用GPLEX为GPPG生成令牌以解析和创建树(类似于lex/yacc关系).但是,我似乎无法找到这两者如何相互作用的例子.使用lex/yacc,lex返回由yacc定义的标记,并且可以在yylval中存储值.如何在GPLEX/GPPG中完成此操作(文档中缺少这些内容)?

附件是我想要转换为GPLEX的lex代码:

%{
 #include <stdio.h>
 #include "y.tab.h"
%}
%%
[Oo][Rr]                return OR;
[Aa][Nn][Dd]            return AND;
[Nn][Oo][Tt]            return NOT;
[A-Za-z][A-Za-z0-9_]*   yylval=yytext; return ID;
%%
Run Code Online (Sandbox Code Playgroud)

谢谢!安德鲁

c# parsing gppg

7
推荐指数
1
解决办法
7074
查看次数

在C中宣布全球工会

我不确定如何在C中声明一个全局联合.下面是我的代码(所有这些都在main之外).

typedef union{
    int iVal;
    char* cVal;
} DictVal;
struct DictEntry{
    struct DictEntry* next;
    char* key;
    DictVal val;

    int cTag;
};

DictVal find(char* key);

int main()
{
    struct DictEntry dictionary[101];
    //printf("Hello");
}

DictValue find(char* key)
{
  DictVal a;
  a.iVal = 3;
  return a;
}
Run Code Online (Sandbox Code Playgroud)

有了这个,我收到错误:

test.c:35: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘find’.
Run Code Online (Sandbox Code Playgroud)

如何以一种我可以将它用作函数的返回类型的方式声明联合?

先感谢您!安德鲁

c global-variables unions

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

标签 统计

awk ×1

bash ×1

c ×1

c# ×1

global-variables ×1

gppg ×1

parsing ×1

unions ×1