Читайте данную работу прямо на сайте или скачайте

Скачайте в формате документа WORD


Препроцессор языка СИ

З д н¨¥:

д лìн¥йè¥м ¨á¯олìзо¢ âìáï ¯à¨ à з¡оॠHTML-доªãм¥нâо¢.

Т¥ªáâ ¯àо£à ммë:

#include <io.h>

#include <ctype.h>

#include <string.h>

#include <alloc.h>

#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",

/* text, preformatted text, HTML KEYWORD, attribute KEYWORD, */

/* attribute value KEYWORD

int in_close

int in_open

int opened_par = FALSE;

int state

int old_state = TEXT;

int cUKSZ = 0;

int USE_BUFFER = FALSE;

int lex_buff_size = 0;

typedef struct {

} tbuff;

tbuff lex_buff[5];

intа

intа

long charno;

long f_size;

intа

char comment[CMSZ];

typedef struct {

} kw_table;

/********** functions declarations ************/

void fixfile(FILE *, char*);

intа

void nlproc (FILE *);

intа

intа

void lexinit();

intа

/**********************************************/

/* Possible KEYWORDS - directives */

kw_table keyword_table[KWSZ] = {

};

/* Possible KEYWORDS - attributes */

kw_table attr_table[ATSZ] = {

};

/* Possible KEYWORDS - attribute's values */

kw_table aval_table[AVSZ] = {

};

/*

/*

int bsearch( char word[], kw_table word_table[], int tbsize)

{

}

int nexttok(char *val)

{



}

int yylex()

{


}

à¨м¥ç н¨¥: à á¯¥ç âª¨ ä йло¢ htm_cnst.h, htm_glob.h, htm_tokn.h ¨


З д н¨¥:

áл¥дãî騥 äãнªæ¨¨:

Т¥ªáâ ¯àо£à ммë:

#include <stdio.h>

#include <dos.h>

#include <ctype.h>

#include <string.h>

#define ERROR

#define IDENT

#define KEYWORD

#define BRACKETSа

#define OTHER

#define BEGIN

#define END

#define COMMA

#define SEMI

#define LBа

char val[100];

char comment[200];

intа

intа

intа

#define N_KW 8

char keywords[N_KW][20]={

// -----------------------------------------------------------------

void blockQuote (char *(&s),FILE *f)

{

}

// -----------------------------------------------------------------

int getNext (FILE *f)

{


}

void outVal (FILE *f,int back=0)

{

}

void outCR (FILE *f,int tab,int newLine=0)

{


}

// -----------------------------------------------------------------

int format (FILE *f_in,FILE *f_out)

{


}

à¨м¥ç н¨¥: ¥о¡åод¨мë¥ äãнªæ¨¨ ¡ëл¨ à¥ л¨зо¢ нë ¢ ¯олном о¡ê¥м¥


З д н¨¥:

àо н л¨з¨о¢ âì åä ¨ ¢ë¡ âì лãçèãî длï áлãç йно£о à á¯¥д¥л¥н¨ï ¨д-о¢

Ž¡о¡é¥нн ï äомãл  ¢ëç¨áл¥н¨ï åä:

h0 = 0;

h(i) = Alf* h(i-1) [+] C(i), i=1..k

k - \дл¨н  áâàоª¨. [+] - н¥ªоâо ï ¯àо¨з¢олìн ï о¯¥à æ¨ï

àо н л¨з¨о¢ âì í⨠¨ лî¡ë¥ дà㣨¥ åä н  ªол¨ç¥áâ¢о ªолл¨з¨й (ªонäл¨ªâо¢)

длï н¥ªоâоàëå áлãç йнëå ¯оáл¥до¢ â¥лìноáâì.  ¯à¨м¥à:

1) id'ë ïз몠 C (до

2) ---- "" ---- (до

3) ---- "" ---- (до 1).

4) Вн¥èн¨¥ ¨м¥н  áâ нд âной ¡¨¡ло¨оâ⥪¨ BC++.

5) Вн¥èн¨¥ ¨м¥н  £ ä¨ç¥áªой ¡¨¡л¨о⥪¨ BC++.

6) Слãç йно £¥н¥¨ã¥мë¥ ¨м¥н  (~600)

7) Ин£л¨й᪨¥ ááло¢  á ¯¥ä¨ªá м¨ ¨/¨л¨ áãä䨪á м¨ () - оªоло 200

8) 300 ¨м¥н ¢¨д : w, w001, w002, etc

Ин л¨з áâ â¨á⨪¨ ᢥá⨠¢ â ¡л¨æã/£à ä¨ª

Т¥ªá ¯àо£à ммë  н л¨з âоà :

#include <stdio.h>

#include <stdlib.h>

unsigned hash_shift(char *s)

{

}

unsigned hash_rotl(char *s)

{

}

long hash_pgw(char *s)

{

}

unsigned hash_4 (char *s)

{


}

main (int argc,char **argv)

{


}

r.php"; ?>