/[global]/global/htags/cpp.l
ViewVC logotype

Diff of /global/htags/cpp.l

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.10 by h-iwamoto, Mon Oct 4 12:15:34 2004 UTC revision 1.11 by h-iwamoto, Sat Oct 9 06:15:06 2004 UTC
# Line 61  ALPHA          [a-zA-Z_\x80-\xff] Line 61  ALPHA          [a-zA-Z_\x80-\xff]
61  ALPHANUM        [a-zA-Z_\x80-\xff0-9]  ALPHANUM        [a-zA-Z_\x80-\xff0-9]
62  WORD            {ALPHA}{ALPHANUM}*  WORD            {ALPHA}{ALPHANUM}*
63    
64  %start  CPP C_COMMENT CPP_COMMENT SHELL_COMMENT STRING LITERAL PREPROCESSING_DIRECTIVE  %start  CPP C_COMMENT CPP_COMMENT SHELL_COMMENT STRING LITERAL PREPROCESSOR_LINE
65  %option 8bit noyywrap noyy_top_state stack prefix="cpp"  %option 8bit noyywrap noyy_top_state stack prefix="cpp"
66  %%  %%
67   /* Backslash-newline */   /* Backslash-newline */
68  \\\n            DEFAULT_BACKSLASH_NEWLINE_ACTION  \\\n            DEFAULT_BACKSLASH_NEWLINE_ACTION
69    
70   /* Comment */   /* Comment */
71  <CPP,PREPROCESSING_DIRECTIVE>"/*"       { echos(comment_begin); ECHO; yy_push_state(C_COMMENT); }  <CPP,PREPROCESSOR_LINE>"/*"     { echos(comment_begin); ECHO; yy_push_state(C_COMMENT); }
72  <C_COMMENT>"*/" { ECHO; echos(comment_end); yy_pop_state(); }  <C_COMMENT>"*/" { ECHO; echos(comment_end); yy_pop_state(); }
73  <C_COMMENT>.    { put_char(LEXTEXT[0]); }  <C_COMMENT>.    { put_char(LEXTEXT[0]); }
74  <C_COMMENT><<EOF>> {  <C_COMMENT><<EOF>> {
# Line 76  WORD           {ALPHA}{ALPHANUM}* Line 76  WORD           {ALPHA}{ALPHANUM}*
76                          unexpected_eof(LINENO);                          unexpected_eof(LINENO);
77                  yyterminate();                  yyterminate();
78          }          }
79  <CPP,PREPROCESSING_DIRECTIVE>"//"       { echos(comment_begin); ECHO; yy_push_state(CPP_COMMENT); }  <CPP,PREPROCESSOR_LINE>"//"     { echos(comment_begin); ECHO; yy_push_state(CPP_COMMENT); }
80    
81   /* String */   /* String */
82  <CPP,PREPROCESSING_DIRECTIVE>\" { ECHO; yy_push_state(STRING); }  <CPP,PREPROCESSOR_LINE>\"       { ECHO; yy_push_state(STRING); }
83  <STRING>\"      { ECHO; yy_pop_state(); }  <STRING>\"      { ECHO; yy_pop_state(); }
84  <STRING>\\.     { put_char(LEXTEXT[0]); put_char(LEXTEXT[1]); }  <STRING>\\.     { put_char(LEXTEXT[0]); put_char(LEXTEXT[1]); }
85    
86   /* Literal */   /* Literal */
87  <CPP,PREPROCESSING_DIRECTIVE>\' { ECHO; yy_push_state(LITERAL); }  <CPP,PREPROCESSOR_LINE>\'       { ECHO; yy_push_state(LITERAL); }
88  <LITERAL>\'     { ECHO; yy_pop_state(); }  <LITERAL>\'     { ECHO; yy_pop_state(); }
89  <LITERAL>\\.    { put_char(LEXTEXT[0]); put_char(LEXTEXT[1]); }  <LITERAL>\\.    { put_char(LEXTEXT[0]); put_char(LEXTEXT[1]); }
90    
# Line 167  WORD           {ALPHA}{ALPHANUM}* Line 167  WORD           {ALPHA}{ALPHANUM}*
167                          if (wflag)                          if (wflag)
168                                  unknown_preprocessing_directive(p, LINENO);                                  unknown_preprocessing_directive(p, LINENO);
169                  }                  }
170                  yy_push_state(PREPROCESSING_DIRECTIVE);                  yy_push_state(PREPROCESSOR_LINE);
171          }          }
172   /* Null directive */   /* Null directive */
173  <CPP>^[ \t]*\#  { put_macro(LEXTEXT); }  <CPP>^[ \t]*\#  { put_macro(LEXTEXT); }
174    
175  <CPP,PREPROCESSING_DIRECTIVE>{NUMBER}   ECHO;  <CPP,PREPROCESSOR_LINE>{NUMBER} ECHO;
176  <CPP,PREPROCESSING_DIRECTIVE>{WORD} {  <CPP,PREPROCESSOR_LINE>{WORD} {
177                  if (reserved_word(LEXTEXT, LEXLENG))                  if (reserved_word(LEXTEXT, LEXLENG))
178                          put_reserved_word(LEXTEXT);                          put_reserved_word(LEXTEXT);
179                  else if (YY_START == PREPROCESSING_DIRECTIVE                  else if (YY_START == PREPROCESSOR_LINE
180                      && (last_directive == SHARP_IF || last_directive == SHARP_ELIF)                      && (last_directive == SHARP_IF || last_directive == SHARP_ELIF)
181                      && strcmp(LEXTEXT, "defined") == 0)                      && strcmp(LEXTEXT, "defined") == 0)
182                          put_reserved_word(LEXTEXT);                          put_reserved_word(LEXTEXT);
# Line 190  WORD           {ALPHA}{ALPHANUM}* Line 190  WORD           {ALPHA}{ALPHANUM}*
190                          }                          }
191                  }                  }
192          }          }
193  <CPP,PREPROCESSING_DIRECTIVE>[{}]       { put_brace(LEXTEXT); }  <CPP,PREPROCESSOR_LINE>[{}]     { put_brace(LEXTEXT); }
194   /* New line */   /* New line */
195  \n              C_FAMILY_END_OF_LINE_ACTION  \n              C_FAMILY_END_OF_LINE_ACTION
196  .               { put_char(LEXTEXT[0]); }  .               { put_char(LEXTEXT[0]); }

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26