это мой первый пост, и прежде всего я хочу сказать, что я абсолютный новичок. Извините, если мой вопрос может показаться простым, но я действительно не нашел ответа.
Я хотел бы иметь возможность проанализировать файл JSON, который я написал. Благодаря руководству я смог создать свою грамматику, но я хотел бы иметь возможность получить доступ к соответствующим значениям, чтобы использовать их в C функциях, и я не знаю, как это сделать.
Вот мои файлы lex и ya cc:
%{
#include <stdio.h>
int yywrap() { return 1;}
void yyerror(const char* s) {fprintf(stderr,"Error : %s.\n",s);}
%}
%token X Y DIRECTION POINT1 POINTS2
%token INTEGER STRING
%start linkage
%%
linkage: '{' point1 ',' points2 '}' ;
point1: POINT1 ':' point ;
point: '{'
X ':' INTEGER ','
Y ':' INTEGER ','
DIRECTION ':' STRING {printf("%s",$3);}
'}';
points2: POINTs2 ':' '[' points2_list ']';
points2_list: points2_ | points2_list ',' points2_ ;
points2_: '{'
X ':' INTEGER ','
Y ':' INTEGER ','
DIRECTION ':' STRING
'}';
%%
int main(int argc,char** argv)
{
yyparse();
}
%{
#include <stdio.h>
#include "sample.tab.h"
%}
%%
"\"x\"" return X;
"\"point1\"" return POINT1;
"\"y\"" return Y;
"\"points2\"" return POINTS2;
[0-9]+ return INTEGER;
\"[^\"]*\" return STRING;
[ \n\t\r] ;
. return yytext[0];
%%
Я не очень понимаю, как работают переменные, например, для печати направления. Опять же, я новичок, я не программист, я просто хочу узнать больше:)
Спасибо вам