/[CvsGraph]/cvsgraph/confl.l
ViewVC logotype

Annotate of /cvsgraph/confl.l

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.7 - (show annotations)
Tue Dec 18 22:50:12 2001 UTC (15 years, 10 months ago) by bertho
Branch: MAIN
Changes since 1.6: +4 -0 lines
- Added upside-down imaging of the tree
- Added extra branch-box at the bottom/top of the trunk
- Added stripping of untagged revisions
1 /*
2 * CvsGraph graphical representation generator of brances and revisions
3 * of a file in cvs/rcs.
4 *
5 * Copyright (C) 2001 B. Stultiens
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21
22 %x STR
23
24 %{
25 #include <stdio.h>
26 #include <stdlib.h>
27 #include <string.h>
28 #include <ctype.h>
29
30 #include "utils.h"
31 #include "readconf.h"
32 #include "y.tab.h"
33
34 static void reset_str(void);
35 static void add_str(const char *s, int l);
36 static char *get_str(void);
37
38 int line_number;
39
40 #define YY_NO_UNPUT 1
41
42 %}
43
44 %%
45 branch_bgcolor return tBRANCH_BGCOLOR;
46 branch_bspace return tBRANCH_BSPACE;
47 branch_color return tBRANCH_COLOR;
48 branch_font return tBRANCH_FONT;
49 branch_lspace return tBRANCH_LSPACE;
50 branch_rspace return tBRANCH_RSPACE;
51 branch_tspace return tBRANCH_TSPACE;
52 branch_connect return tBRANCH_CONNECT;
53 branch_margin return tBRANCH_MARGIN;
54 branch_mirror return tBRANCH_MIRROR;
55 box_shadow return tBOX_SHADOW;
56 upside_down return tUPSIDE_DOWN;
57 strip_untagged return tSTRIP_UNTAGGED;
58 color_bg return tCOLOR_BG;
59 cvsmodule return tCVSMODULE;
60 cvsroot return tCVSROOT;
61 date_format return tDATE_FORMAT;
62 rev_color return tREV_COLOR;
63 rev_bgcolor return tREV_BGCOLOR;
64 rev_font return tREV_FONT;
65 rev_separator return tREV_SEPARATOR;
66 rev_minline return tREV_MINLINE;
67 rev_maxline return tREV_MAXLINE;
68 rev_lspace return tREV_LSPACE;
69 rev_rspace return tREV_RSPACE;
70 rev_tspace return tREV_TSPACE;
71 rev_bspace return tREV_BSPACE;
72 rev_text return tREV_TEXT;
73 rev_text_color return tREV_TEXT_COLOR;
74 rev_text_font return tREV_TEXT_FONT;
75 tag_color return tTAG_COLOR;
76 tag_font return tTAG_FONT;
77 title return tTITLE;
78 title_x return tTITLE_X;
79 title_y return tTITLE_Y;
80 title_font return tTITLE_FONT;
81 title_align return tTITLE_ALIGN;
82 title_color return tTITLE_COLOR;
83 margin_top return tMARGIN_TOP;
84 margin_bottom return tMARGIN_BOTTOM;
85 margin_left return tMARGIN_LEFT;
86 margin_right return tMARGIN_RIGHT;
87 image_type return tIMAGE_TYPE;
88 image_quality return tIMAGE_QUALITY;
89 map_name return tMAP_NAME;
90 map_branch_href return tMAP_BRANCH_HREF;
91 map_branch_alt return tMAP_BRANCH_ALT;
92 map_rev_href return tMAP_REV_HREF;
93 map_rev_alt return tMAP_REV_ALT;
94 map_diff_href return tMAP_DIFF_HREF;
95 map_diff_alt return tMAP_DIFF_ALT;
96
97
98 jpeg yylval.num = IMAGE_JPEG; return tNUMBER;
99 png yylval.num = IMAGE_PNG; return tNUMBER;
100 gif yylval.num = IMAGE_GIF; return tNUMBER;
101
102 true yylval.num = 1; return tNUMBER;
103 false yylval.num = 0; return tNUMBER;
104
105 left yylval.num = 0; return tNUMBER;
106 center yylval.num = 1; return tNUMBER;
107 right yylval.num = 2; return tNUMBER;
108
109 tiny yylval.num = 0; return tNUMBER;
110 small yylval.num = 1; return tNUMBER;
111 medium yylval.num = 2; return tNUMBER;
112 large yylval.num = 3; return tNUMBER;
113 giant yylval.num = 4; return tNUMBER;
114
115 [a-zA-Z_][a-zA-Z0-9_]* yylval.str = xstrdup(yytext); return tUNKNOWN;
116
117 [+-]?0[0-7]* yylval.num = strtol(yytext, NULL, 8); return tNUMBER;
118 [+-]?[1-9][0-9]* yylval.num = strtol(yytext, NULL, 10); return tNUMBER;
119 [+-]?0[xX][0-9a-fA-F]+ yylval.num = strtol(yytext, NULL, 16); return tNUMBER;
120 [+-]?0[xX] yyerror("Invalid hex number");
121
122 = return *yytext;
123 ; return *yytext;
124
125 \" reset_str(); BEGIN(STR);
126 <STR>[^\\\"\n]* add_str(yytext, yyleng);
127 <STR>\\[abfnrtv] {
128 char ch;
129 switch(yytext[1])
130 {
131 case 'a': ch = '\a'; break;
132 case 'b': ch = '\b'; break;
133 case 'f': ch = '\f'; break;
134 case 'n': ch = '\n'; break;
135 case 'r': ch = '\r'; break;
136 case 't': ch = '\t'; break;
137 case 'v': ch = '\v'; break;
138 }
139 add_str(&ch, 1);
140 }
141 <STR>\\[012][0-7]{0,2} { char ch = strtol(yytext+1, NULL, 8); add_str(&ch, 1); }
142 <STR>\\[xX][a-fA-F0-9]{2} { char ch = strtol(yytext+1, NULL, 8); add_str(&ch, 1); }
143 <STR>\\[xX][a-fA-F0-9] yyerror("Invalid hex escape");
144 <STR>\\. add_str(yytext+1, 1);
145 <STR>\n yyerror("Newline in string");
146 <STR>\" yylval.str = get_str(); BEGIN(INITIAL); return tSTRING;
147
148 [ \t\f\v\r\b]+ ; /* Ignore whitespace */
149 #[^\n]* ; /* Ignore comments */
150
151 \n line_number++;
152 . yyerror("Unknown char/unmatched text '%c' (0x%02x)", isprint(*yytext) ? *yytext : ' ', *yytext);
153
154 %%
155
156 int yywrap(void)
157 {
158 return 1;
159 }
160
161 #define STRALLOCSIZE 128
162 static char *str;
163 static int nstr;
164 static int nastr;
165
166 static void reset_str(void)
167 {
168 nstr = 0;
169 }
170
171 static void add_str(const char *s, int l)
172 {
173 if(nstr + l + 1 > nastr)
174 {
175 str = xrealloc(str, nastr+STRALLOCSIZE);
176 nastr += STRALLOCSIZE;
177 }
178 memcpy(str+nstr, s, l);
179 nstr += l;
180 }
181
182 static char *get_str(void)
183 {
184 str[nstr] = '\0';
185 return xstrdup(str);
186 }
187

  ViewVC Help
Powered by ViewVC 1.1.0 with CvsGraph 1.7.0