📄 scanner.c
字号:
/*Copyright (c) 2000, Red Hat, Inc.This file is part of Source-Navigator.Source-Navigator is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public License as publishedby the Free Software Foundation; either version 2, or (at your option)any later version.Source-Navigator is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public License alongwith Source-Navigator; see the file COPYING. If not, write tothe Free Software Foundation, 59 Temple Place - Suite 330, Boston,MA 02111-1307, USA.*//* $Id: Scanner.c,v 1.2 2002/04/26 19:47:23 mdejong Exp $ */#define rbool char#define rtrue 1#define rfalse 0#define StdIn 0#include "Scanner.h"#ifdef __cplusplusextern "C" {#include "Source.h"#include "rSystem.h"#include "General.h"#include "DynArray.h"#include "Position.h"}#else#include "Source.h"#include "rSystem.h"#include "General.h"#include "DynArray.h"#include "Position.h"#endif#include <stdio.h>#if defined __STDC__ | defined __cplusplus#include <stdlib.h>#endif#include <string.h>#define yyStart(State) { yyPreviousStart = yyStartState; yyStartState = State;}#define yyPrevious { yyStateRange s = yyStartState; \ yyStartState = yyPreviousStart; yyPreviousStart = s; }#define yyEcho { (void) fwrite (TokenPtr, 1, \ TokenLength, stdout); }#define yyEol(Column) { yyLineCount ++; \ yyLineStart = (unsigned char *) TokenPtr + \ TokenLength - 1 - (Column); }#define output(c) (void) putchar ((int) c)#define yyColumn(Ptr) ((int) ((Ptr) - (char *) yyLineStart))#define yyOffset(Ptr) (yyFileOffset + ((Ptr) - yyChBufferStart2))#define yyDNoState 0#define yyFirstCh (unsigned char) '\0'#define yyLastCh (unsigned char) '\377'#define yyEolCh (unsigned char) '\12'#define yyEobCh (unsigned char) '\177'#define yyDStateCount 46#define yyTableSize 1163#define yyEobState 26#define yyDefaultState 27#define STD 1#define Comment 3static void yyExit ARGS ((void)){ rExit (1); }typedef unsigned short yyStateRange;typedef struct { yyStateRange yyCheck, yyNext; } yyCombType; char * TokenPtr ; int TokenLength ; tScanAttribute Attribute ; void (* Scanner_Exit) ARGS ((void)) = yyExit;static void yyInitialize ARGS ((void));static void yyErrorMessage ARGS ((int yyErrorCode));#ifdef xxinputstatic char input ARGS ((void));#endifstatic void unput ARGS ((char));static void yyLess ARGS ((int));static yyCombType yyComb [yyTableSize + 1] = {{ 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 30}, { 1, 28}, { 1, 16}, { 1, 16}, { 1, 17}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 32}, { 1, 16}, { 1, 45}, { 1, 46}, { 1, 36}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 38}, { 1, 37}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 22}, { 1, 41}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 34}, { 10, 20}, { 10, 20}, { 10, 20}, { 10, 20}, { 10, 20}, { 10, 20}, { 10, 20}, { 10, 20}, { 10, 20}, { 10, 20}, { 12, 12}, { 14, 14}, { 15, 12}, { 17, 9}, { 12, 12}, { 21, 15}, { 34, 35}, { 10, 20}, { 10, 20}, { 10, 20}, { 10, 20}, { 10, 20}, { 10, 20}, { 0, 0}, { 0, 0}, { 0, 0}, { 1, 39}, { 1, 6}, { 1, 42}, { 1, 16}, { 0, 0}, { 1, 16}, { 0, 0}, { 12, 12}, { 19, 24}, { 19, 24}, { 19, 24}, { 19, 24}, { 19, 24}, { 19, 24}, { 19, 24}, { 19, 24}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 10, 20}, { 10, 20}, { 10, 20}, { 10, 20}, { 10, 20}, { 10, 20}, { 0, 0}, { 0, 0}, { 0, 0}, { 1, 40}, { 1, 16}, { 1, 44}, { 1, 16}, { 25, 26}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 1, 16}, { 3, 31}, { 3, 29}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 20, 13}, { 20, 13}, { 20, 13}, { 20, 13}, { 20, 13}, { 20, 13}, { 20, 13}, { 20, 13}, { 20, 13}, { 20, 13}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 3, 33}, { 20, 13}, { 20, 13}, { 20, 13}, { 20, 13}, { 20, 13}, { 20, 13}, { 24, 11}, { 24, 11}, { 24, 11}, { 24, 11}, { 24, 11}, { 24, 11}, { 24, 11}, { 24, 11}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 20, 13}, { 20, 13}, { 20, 13}, { 20, 13}, { 20, 13}, { 20, 13}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 3, 43}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 0, 0}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 5, 5}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 0, 0}, { 6, 18}, { 6, 18}, { 6, 23}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 19}, { 6, 19}, { 6, 19}, { 6, 19}, { 6, 19}, { 6, 19}, { 6, 19}, { 6, 19}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 10}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 0, 0}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 6, 18}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 7, 7}, { 0, 0}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 7, 7}, { 8, 8}, { 0, 0}, { 0, 0}, { 0, 0}, { 8, 8}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 8, 8}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 8, 21}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0}, { 0, 0},
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -