mp3 | Магазин | Рефераты | Рецепты | Цветочки | Общение | Знакомства | Вебмастерам | Домой

Препроцессор языка СИ (WinWord) [Курсовая]


запомнить в избранное
 
искать в этом разделе


ВНИМАНИЕ !!! Это сокращенная версия файла. Предназначена она только для того, чтобы вы могли предварительно ознакомиться с документом, перед тем как его скачать. Здесь нет картинок, не сохранен формат, шрифт, размеры и положение на странице.
Чтобы скачать полную версию, нажмите ссылки которые находятся чуть-чуть ниже (Info File Mail)
 Info File Mail 
Файл относится к разделу:
ПРОГРАММИРОВАHИЕ, БАЗЫ ДАHHЫХ
Лабораторная работа 1
Задание:
Построить лексический анализатор (сканер), который будет в
дальнейшем использоваться при разборе HTML-документов.
Текст программы:
#include
#include
#include
#include
#include "parser\htm_cnst.h"
#include "parser\htm_glob.h"
#include "parser\htm_tokn.h"
#include "parser\htm_err.h"
#include "parse.h"
#pragma hdrstop
extern YYSTYPE yylval;
enum {TEXT=0, PRE, KEYWORD, ATTR, AVALUE, IN_QUOTE};
char *states [ 6] = {"TEXT", "PRE", "KEYWORD", "ATTR", "AVALUE", "IN_QUOTE"};
char *tktypes[10] = {"_OpenTag", "_CloseTag", "_EndTag", "_C_KEYWORD",
"_S_KEYWORD", "_A_KEYWORD", "_V_KEYWORD", "_NUM",
"_IDENTIFIER", "_QUOTED_ATTR"};
/* text, preformatted text, HTML KEYWORD, attribute KEYWORD, */
/* attribute value KEYWORD */
int in_close = FALSE;
int in_open = FALSE;
int opened_par = FALSE;
int state = TEXT;
int old_state = TEXT;
int cUKSZ = 0;
int USE_BUFFER = FALSE;
int lex_buff_size = 0;
typedef struct {
int tktyp;
char tkval[NMSZ];
} tbuff;
tbuff lex_buff[5];
int c;
int lineno;
long charno;
long f_size;
int icm;
/* !!!!!! */
char comment[CMSZ];
/* !!!!!! */
typedef struct {
char name[TKSZ];
int kw_token;
int in_paragraph;
} kw_table;
/********** functions declarations ************/
void fixfile(FILE *, char*);
int nextchar(FILE *, FILE *);
void nlproc (FILE *);
int bsearch (char *, kw_table *, int);
int nexttok (char *);
void lexinit);
int yylex);
/**********************************************/
/* Possible KEYWORDS - directives */
kw_table keyword_table[KWSZ] = {
- 2 -
{"A", _C_KEYWORD, TRUE },
// .
{"WBR", _S_KEYWORD, TRUE }
};
/* Possible KEYWORDS - attributes */
kw_table attr_table[ATSZ] = {
{"ALIGN", _A_KEYWORD },
// .
{"WRAP", _A_KEYWORD }
};
/* Possible KEYWORDS - attribute's values */
kw_table aval_table[AVSZ] = {
{"ABSBOTTOM", _V_KEYWORD },
// .
{"_top", _V_KEYWORD }
};
/*
* функции
*/
/*
* Функция бинарного поиска имени в таблице имен. Возвращает индекс
* найд


подписаться на рассылку.
добавить в избранное.
нашли ошибки ?

Это место продается !!!

Ищу реферат (диплом) Если вы не можете найти реферат, то дайте в этом разделе объявление и возможно вам помогут :)
Предлагаю реферат (диплом) Если у вас есть свои рефераты и вы готовы помочь другим, то дайте в этом разделе свое объявление и к вам потянуться люди :)
Пополнить коллекцию Здесь вы можете пополнить нашу коллекцию своими рефератами.

mp3 | Магазин | Рефераты | Рецепты | Цветочки | Общение | Знакомства | Вебмастерам | Домой

время поиска - 0.03.