summaryrefslogtreecommitdiff
path: root/ges/parse.l
blob: 712d05d5d87b0a8a8aa0145b3e3c26c2dd91e5c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
%{
#include "ges-structure-parser.h"

%}

%option noyywrap
%option nounput
%option reentrant
%option extra-type="GESStructureParser *"
%option never-interactive
%option noinput
%option nounistd

CLIP            [ ]+\+clip[ ]+
TEST_CLIP       [ ]+\+test-clip[ ]+
TRANSITION      [ ]+\+transition[ ]+
EFFECT          [ ]+\+effect[ ]+
TITLE           [ ]+\+title[ ]+
TRACK           [ ]+\+track[ ]+
KEYFRAME        [ ]+\+keyframes[ ]+

SETTER          [ ]+set-[^ ]+[ ]+

STRING          \"(\\.|[^"])*\"
/* A value string, as understood by gst_structure_from_string
 * Characters are from GST_ASCII_IS_STRING
 * NOTE: character set is *not* supposed to be locale dependent */
VALUE           {STRING}|([abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_+/:.-]+)

%%

={VALUE}        {
		ges_structure_parser_parse_value (yyextra, yytext);
}

{STRING}        {
		ges_structure_parser_parse_string (yyextra, yytext, FALSE);
}

{KEYFRAME}|{TRACK}|{CLIP}|{TRANSITION}|{EFFECT}|{TEST_CLIP}|{TITLE}   {
		ges_structure_parser_parse_symbol (yyextra, yytext);
}

{SETTER}        {
		ges_structure_parser_parse_setter (yyextra, yytext);
}

[ \t\n]+        {
		ges_structure_parser_parse_whitespace (yyextra);
}

.               {
		/* add everything else */
		ges_structure_parser_parse_default (yyextra, yytext);
}

%%