6 #include "../gstinfo.h"
7 #include "grammar.tab.h"
13 #ifdef G_HAVE_ISO_VARARGS
14 #define PRINT(...) GST_DEBUG (GST_CAT_PIPELINE, "flex: "__VA_ARGS__)
15 #elif defined(G_HAVE_GNUC_VARARGS)
16 #define PRINT(args...) GST_DEBUG (GST_CAT_PIPELINE, "flex: "##args)
18 #define PRINT(args...)
21 #define YY_DECL int _gst_parse_yylex (YYSTYPE *lvalp)
24 _operators [(){}.:!,=]
25 _identifier [[:alpha:]][[:alnum:]\-_%]*
27 _char ("\\".)|([^[:space:]])
28 _string {_char}+|("\""([^\"]|"\\\"")*"\"")
30 _comma [[:space:]]*","[[:space:]]*
31 _assign [[:space:]]*"="[[:space:]]*
33 /* we must do this here, because nearly everything matches a {_string} */
34 _assignment {_identifier}{_assign}{_string}
36 /* get pad/element references and stuff with dots right */
37 _padref "."{_identifier}
38 _ref {_identifier}"."{_identifier}?
39 _binref {_identifier}[[:space:]]*"."[[:space:]]*"("
48 PRINT ("ASSIGNMENT: %s\n", yytext);
49 lvalp->s = gst_parse_strdup (yytext);
56 PRINT ("PADREF: %s\n", yytext);
57 lvalp->s = gst_parse_strdup (yytext);
63 PRINT ("REF: %s\n", yytext);
64 lvalp->s = gst_parse_strdup (yytext);
71 while (!g_ascii_isspace (*pos) && (*pos != '.')) pos++;
73 PRINT ("BINREF: %s\n", yytext);
74 lvalp->s = gst_parse_strdup (yytext);
80 PRINT ("IDENTIFIER: %s\n", yytext);
81 lvalp->s = gst_parse_strdup (yytext);
86 {_operators} { PRINT ("OPERATOR: [%s]\n", yytext); return *yytext; }
88 [[:space:]]+ { PRINT ("SPACE: [%s]\n", yytext); }
91 printf ("???: %s\n", yytext);