/[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.8 - (hide annotations)
Wed Dec 19 18:10:58 2001 UTC (15 years, 11 months ago) by bertho
Branch: MAIN
Changes since 1.7: +1 -1 lines
- Updated the docu a bit
- Renamed the branch_mirror to branch_dupbox which is more appropriate
- strip_untagged displays now draw dashed connector lines to indicate a jump
1 bertho 1.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 bertho 1.2 #include "readconf.h"
32 bertho 1.1 #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 bertho 1.4 branch_connect return tBRANCH_CONNECT;
53     branch_margin return tBRANCH_MARGIN;
54 bertho 1.8 branch_dupbox return tBRANCH_DUPBOX;
55 bertho 1.6 box_shadow return tBOX_SHADOW;
56 bertho 1.7 upside_down return tUPSIDE_DOWN;
57     strip_untagged return tSTRIP_UNTAGGED;
58 bertho 1.1 color_bg return tCOLOR_BG;
59     cvsmodule return tCVSMODULE;
60     cvsroot return tCVSROOT;
61 bertho 1.6 date_format return tDATE_FORMAT;
62 bertho 1.1 rev_color return tREV_COLOR;
63 bertho 1.6 rev_bgcolor return tREV_BGCOLOR;
64 bertho 1.1 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 bertho 1.6 rev_text return tREV_TEXT;
73     rev_text_color return tREV_TEXT_COLOR;
74     rev_text_font return tREV_TEXT_FONT;
75 bertho 1.1 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 bertho 1.2 image_type return tIMAGE_TYPE;
88     image_quality return tIMAGE_QUALITY;
89 bertho 1.3 map_name return tMAP_NAME;
90 bertho 1.5 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 bertho 1.6 map_diff_href return tMAP_DIFF_HREF;
95     map_diff_alt return tMAP_DIFF_ALT;
96 bertho 1.7
97 bertho 1.2
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 bertho 1.1
102     true yylval.num = 1; return tNUMBER;
103     false yylval.num = 0; return tNUMBER;
104    
105 bertho 1.4 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 bertho 1.1
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 bertho 1.5 <STR>\\. add_str(yytext+1, 1);
145 bertho 1.1 <STR>\n yyerror("Newline in string");
146     <STR>\" yylval.str = get_str(); BEGIN(INITIAL); return tSTRING;
147    
148 bertho 1.4 [ \t\f\v\r\b]+ ; /* Ignore whitespace */
149 bertho 1.1 #[^\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