File: tree_cst.ll

package info (click to toggle)
foundry 0.0.20130809-2
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 632 kB
  • ctags: 2,340
  • sloc: cpp: 6,376; yacc: 366; makefile: 192; lex: 184
file content (71 lines) | stat: -rw-r--r-- 2,541 bytes parent folder | download
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
%{
#include "tree_cst_cst.hpp"
#include "tree_cst_parse.hpp"
#define YY_USER_ACTION yylloc->first_line = yylloc->last_line = yylineno;
%}

%option nostdinit
/*%option nodefault*/
%option nounput
%option noyywrap
%option reentrant
%option bison-bridge
%option bison-locations
%option yylineno
%option prefix="tree_cst_"
%option header-file="tree_cst_lex.hpp"

%s DIRECTIVE

IDENT                       [[:alpha:]_][[:alnum:]_]*
INTEGER                     [[:digit:]]+

%%

<INITIAL>%                  BEGIN(DIRECTIVE); return PERCENT;
<DIRECTIVE>(%|\n)           BEGIN(INITIAL); return PERCENT;

\                           /* ignore */
\n                          /* ignore */
\t                          /* ignore */
\r                          /* ignore */

\(                          return LPAREN;
\)                          return RPAREN;
\{                          return LBRACE;
\}                          return RBRACE;
\[                          return LBRACKET;
\]                          return RBRACKET;
\<                          return LANGLE;
\>                          return RANGLE;
&                           return AMPERSAND;
,                           return COMMA;
;                           return SEMICOLON;
::                          return DOUBLECOLON;
\*                          return ASTERISK;
\.\.\.                      return ELLIPSIS;

<INITIAL>visitor            return VISITOR;
<INITIAL>group              return GROUP;
<DIRECTIVE>multiparent      return MULTIPARENT;
<DIRECTIVE>scoped_ptr       return SCOPED_PTR;
<DIRECTIVE>shared_ptr       return SHARED_PTR;
<DIRECTIVE>intrusive_ptr    return INTRUSIVE_PTR;
<DIRECTIVE>smartpointer     return SMARTPOINTER;
<DIRECTIVE>include          return INCLUDE;

namespace                   return NAMESPACE;
const                       return CONST;
volatile                    return VOLATILE;
void                        return VOID;

node                        return NODE;
<INITIAL>parent             return PARENT;

true                        return TRUE;
false                       return FALSE;

{IDENT}                     yylval->string.data = yytext; yylval->string.length = yyleng; return IDENTIFIER;
{INTEGER}                   yylval->string.data = yytext; yylval->string.length = yyleng; return INTEGER;
\"([^"\\\n]|\\.|\\\n)*\"    yylval->string.data = yytext+1; yylval->string.length = yyleng-2; return QUOTED_NAME;
<DIRECTIVE>\<[^\>]*\>       yylval->string.data = yytext+1; yylval->string.length = yyleng-2; return HEADER_NAME;