⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 output.txt

📁 编译原理全套实验源代码。包括词法分析
💻 TXT
📖 第 1 页 / 共 2 页
字号:
KEYWORDS	include
OPERATOR	<
IDEN	stdlib
DOT	.
IDEN	h
OPERATOR	>
KEYWORDS	include
OPERATOR	<
IDEN	stdio
DOT	.
IDEN	h
OPERATOR	>
KEYWORDS	include
OPERATOR	<
IDEN	string
DOT	.
IDEN	h
OPERATOR	>
KEYWORDS	include
IDEN	symbol
DOT	.
IDEN	h
IDEN	define
IDEN	TRUE
INT	1
IDEN	define
IDEN	FALSE
OCT	0

IDEN	define
IDEN	BUFLEN
INT	256
IDEN	define
IDEN	TAB
INT	8
IDEN	define
IDEN	MAXTOKENLEN
INT	40
KEYWORDS	char
IDEN	tokenString
LBRACE	[
IDEN	MAXTOKENLEN
OPERATOR	+
INT	1
RBRACE	]
SEMI	;
KEYWORDS	int
IDEN	tokenType
SEMI	;
IDEN	FILE
OPERATOR	*
IDEN	fin
COMMA	,
OPERATOR	*
IDEN	fout
SEMI	;
IDEN	void
IDEN	init
LPAREN	(
RPAREN	)
SEMI	;
KEYWORDS	int
IDEN	iskeyword
LPAREN	(
RPAREN	)
SEMI	;
KEYWORDS	int
IDEN	isOperator
LPAREN	(
RPAREN	)
SEMI	;
KEYWORDS	int
IDEN	isSpecial
LPAREN	(
KEYWORDS	char
IDEN	ch
RPAREN	)
SEMI	;
IDEN	void
IDEN	nextToken
LPAREN	(
RPAREN	)
SEMI	;
IDEN	void
IDEN	scanIdent
LPAREN	(
RPAREN	)
SEMI	;
IDEN	void
IDEN	scanNum
LPAREN	(
KEYWORDS	int
IDEN	base
RPAREN	)
SEMI	;
IDEN	void
IDEN	skipComment
LPAREN	(
RPAREN	)
SEMI	;
IDEN	void
IDEN	scanOperator
LPAREN	(
RPAREN	)
SEMI	;
RBRACKET	}
KEYWORDS	char
IDEN	ch
SEMI	;
KEYWORDS	static
KEYWORDS	char
IDEN	lineBuf
LBRACE	[
IDEN	BUFLEN
RBRACE	]
SEMI	;
KEYWORDS	static
KEYWORDS	int
IDEN	linepos
OPERATOR	=
OCT	0;
KEYWORDS	static
KEYWORDS	int
IDEN	lineno
OPERATOR	=
OCT	0;
KEYWORDS	static
KEYWORDS	int
IDEN	row
OPERATOR	=
OCT	0,
IDEN	col
OPERATOR	=
OCT	0;
KEYWORDS	static
KEYWORDS	int
IDEN	bufsize
OPERATOR	=
OCT	0;
KEYWORDS	static
KEYWORDS	int
IDEN	EOF_flag
OPERATOR	=
IDEN	FALSE
SEMI	;
KEYWORDS	static
KEYWORDS	int
IDEN	getNextChar
LPAREN	(
RPAREN	)
LBRACKET	{
KEYWORDS	if
LPAREN	(
OPERATOR	!
LPAREN	(
IDEN	linepos
OPERATOR	<
IDEN	bufsize
RPAREN	)
RPAREN	)
LBRACKET	{
IDEN	lineno
OPERATOR	++
SEMI	;
KEYWORDS	if
LPAREN	(
IDEN	fgets
LPAREN	(
IDEN	lineBuf
COMMA	,
IDEN	BUFLEN
OPERATOR	-
INT	1
COMMA	,
IDEN	fin
RPAREN	)
RPAREN	)
LBRACKET	{
IDEN	bufsize
OPERATOR	=
IDEN	strlen
LPAREN	(
IDEN	lineBuf
RPAREN	)
SEMI	;
IDEN	linepos
OPERATOR	=
OCT	0;
KEYWORDS	return
IDEN	lineBuf
LBRACE	[
IDEN	linepos
OPERATOR	++
RBRACE	]
SEMI	;
RBRACKET	}
KEYWORDS	else
LBRACKET	{
IDEN	EOF_flag
OPERATOR	=
IDEN	TRUE
SEMI	;
KEYWORDS	return
IDEN	EOF
SEMI	;
RBRACKET	}
RBRACKET	}
KEYWORDS	else
KEYWORDS	return
IDEN	lineBuf
LBRACE	[
IDEN	linepos
OPERATOR	++
RBRACE	]
SEMI	;
RBRACKET	}
KEYWORDS	static
IDEN	void
IDEN	ungetNextChar
LPAREN	(
IDEN	void
RPAREN	)
LBRACKET	{
KEYWORDS	if
LPAREN	(
OPERATOR	!
IDEN	EOF_flag
RPAREN	)
IDEN	linepos
OPERATOR	--
SEMI	;
RBRACKET	}
IDEN	FILE
OPERATOR	*
IDEN	fin
COMMA	,
OPERATOR	*
IDEN	fout
SEMI	;
IDEN	void
IDEN	main
LPAREN	(
RPAREN	)
LBRACKET	{
IDEN	nextToken
LPAREN	(
RPAREN	)
SEMI	;
RBRACKET	}
IDEN	void
IDEN	nextToken
LPAREN	(
RPAREN	)
LBRACKET	{
KEYWORDS	char
IDEN	filename
LBRACE	[
INT	20
RBRACE	]
SEMI	;
KEYWORDS	int
IDEN	count
SEMI	;
IDEN	printf
LPAREN	(
IDEN	Please
IDEN	input
IDEN	the
IDEN	source
IDEN	file
OPERATOR	:
RPAREN	)
SEMI	;
IDEN	scanf
LPAREN	(
OPERATOR	%
IDEN	s
COMMA	,
IDEN	filename
RPAREN	)
SEMI	;
KEYWORDS	if
LPAREN	(
LPAREN	(
IDEN	fin
OPERATOR	=
IDEN	fopen
LPAREN	(
IDEN	filename
COMMA	,
IDEN	r
RPAREN	)
RPAREN	)
OPERATOR	==
IDEN	NULL
RPAREN	)
LBRACKET	{
IDEN	printf
LPAREN	(
IDEN	nCan
IDEN	t
IDEN	open
IDEN	the
IDEN	source
IDEN	file
OPERATOR	!
IDEN	n
RPAREN	)
SEMI	;
IDEN	exit
LPAREN	(
INT	1
RPAREN	)
SEMI	;
RBRACKET	}
IDEN	fout
OPERATOR	=
IDEN	fopen
LPAREN	(
IDEN	output
DOT	.
IDEN	txt
COMMA	,
IDEN	w
RPAREN	)
SEMI	;
KEYWORDS	while
LPAREN	(
LPAREN	(
IDEN	ch
OPERATOR	=
IDEN	getNextChar
LPAREN	(
RPAREN	)
RPAREN	)
OPERATOR	!=
IDEN	EOF
RPAREN	)
LBRACKET	{
KEYWORDS	switch
LPAREN	(
IDEN	ch
RPAREN	)
LBRACKET	{
KEYWORDS	case
OPERATOR	:
IDEN	col
OPERATOR	++
SEMI	;
KEYWORDS	break
SEMI	;
KEYWORDS	case
IDEN	t
OPERATOR	:
IDEN	col
OPERATOR	=
LPAREN	(
IDEN	col
SLASH	/
IDEN	TAB
OPERATOR	*
IDEN	TAB
RPAREN	)
OPERATOR	+
IDEN	TAB
SEMI	;
KEYWORDS	break
SEMI	;
KEYWORDS	case
IDEN	r
OPERATOR	:
IDEN	col
OPERATOR	=
OCT	0;
IDEN	row
OPERATOR	++
SEMI	;
KEYWORDS	break
SEMI	;
KEYWORDS	case
IDEN	n
OPERATOR	:
IDEN	col
OPERATOR	=
OCT	0;
IDEN	row
OPERATOR	++
SEMI	;
KEYWORDS	break
SEMI	;
KEYWORDS	case
IDEN	A
OPERATOR	:
KEYWORDS	case
IDEN	B
OPERATOR	:
KEYWORDS	case
IDEN	C
OPERATOR	:
KEYWORDS	case
IDEN	D
OPERATOR	:
KEYWORDS	case
IDEN	E
OPERATOR	:
KEYWORDS	case
IDEN	F
OPERATOR	:
KEYWORDS	case
IDEN	G
OPERATOR	:
KEYWORDS	case
IDEN	H
OPERATOR	:
KEYWORDS	case
IDEN	I
OPERATOR	:
KEYWORDS	case
IDEN	J
OPERATOR	:
KEYWORDS	case
IDEN	K
OPERATOR	:
KEYWORDS	case
IDEN	L
OPERATOR	:
KEYWORDS	case
IDEN	M
OPERATOR	:
KEYWORDS	case
IDEN	N
OPERATOR	:
KEYWORDS	case
IDEN	O
OPERATOR	:
KEYWORDS	case
IDEN	P
OPERATOR	:
KEYWORDS	case
IDEN	Q
OPERATOR	:
KEYWORDS	case
IDEN	R
OPERATOR	:
KEYWORDS	case
IDEN	S
OPERATOR	:
KEYWORDS	case
IDEN	T
OPERATOR	:
KEYWORDS	case
IDEN	U
OPERATOR	:
KEYWORDS	case
IDEN	V
OPERATOR	:
KEYWORDS	case
IDEN	W
OPERATOR	:
KEYWORDS	case
IDEN	X
OPERATOR	:
KEYWORDS	case
IDEN	Y
OPERATOR	:
KEYWORDS	case
IDEN	Z
OPERATOR	:
KEYWORDS	case
IDEN	a
OPERATOR	:
KEYWORDS	case
IDEN	b
OPERATOR	:
KEYWORDS	case
IDEN	c
OPERATOR	:
KEYWORDS	case
IDEN	d
OPERATOR	:
KEYWORDS	case
IDEN	e
OPERATOR	:
KEYWORDS	case
IDEN	f
OPERATOR	:
KEYWORDS	case
IDEN	g
OPERATOR	:
KEYWORDS	case
IDEN	h
OPERATOR	:
KEYWORDS	case
IDEN	i
OPERATOR	:
KEYWORDS	case
IDEN	j
OPERATOR	:
KEYWORDS	case
IDEN	k
OPERATOR	:
KEYWORDS	case
IDEN	l
OPERATOR	:
KEYWORDS	case
IDEN	m
OPERATOR	:
KEYWORDS	case
IDEN	n
OPERATOR	:
KEYWORDS	case
IDEN	o
OPERATOR	:
KEYWORDS	case
IDEN	p
OPERATOR	:
KEYWORDS	case
IDEN	q
OPERATOR	:
KEYWORDS	case
IDEN	r
OPERATOR	:
KEYWORDS	case
IDEN	s
OPERATOR	:
KEYWORDS	case
IDEN	t
OPERATOR	:
KEYWORDS	case
IDEN	u
OPERATOR	:
KEYWORDS	case
IDEN	v
OPERATOR	:
KEYWORDS	case
IDEN	w
OPERATOR	:
KEYWORDS	case
IDEN	x
OPERATOR	:
KEYWORDS	case
IDEN	y
OPERATOR	:
KEYWORDS	case
IDEN	z
OPERATOR	:
KEYWORDS	case
IDEN	_
OPERATOR	:
IDEN	scanIdent
LPAREN	(
RPAREN	)
SEMI	;
KEYWORDS	break
SEMI	;
KEYWORDS	case
OCT	0'
OPERATOR	:
IDEN	ch
OPERATOR	=
IDEN	getNextChar
LPAREN	(
RPAREN	)
SEMI	;
KEYWORDS	if
LPAREN	(
IDEN	ch
OPERATOR	==
IDEN	x
OPERATOR	||
IDEN	ch
OPERATOR	==
IDEN	X
RPAREN	)
LBRACKET	{
IDEN	ch
OPERATOR	=
IDEN	getNextChar
LPAREN	(
RPAREN	)
SEMI	;
KEYWORDS	if
LPAREN	(
OPERATOR	!
LPAREN	(
LPAREN	(
IDEN	ch
OPERATOR	>=
OCT	0'
OPERATOR	&&
IDEN	ch
OPERATOR	<=
INT	9
RPAREN	)
OPERATOR	||
LPAREN	(
IDEN	ch
OPERATOR	>=
IDEN	a
OPERATOR	&&
IDEN	ch
OPERATOR	<=
IDEN	f
RPAREN	)
OPERATOR	||
LPAREN	(
IDEN	ch
OPERATOR	>=
IDEN	A
OPERATOR	&&
IDEN	ch
OPERATOR	<=
IDEN	F
RPAREN	)
RPAREN	)
RPAREN	)
IDEN	error_manage
LPAREN	(
IDEN	ch
COMMA	,
IDEN	lineno
COMMA	,
IDEN	col
RPAREN	)
SEMI	;
IDEN	tokenString
LBRACE	[
OCT	0]
OPERATOR	=
OCT	0'
SEMI	;
IDEN	tokenString
LBRACE	[
INT	1
RBRACE	]
OPERATOR	=
IDEN	x
SEMI	;
IDEN	scanNum
LPAREN	(
INT	16
RPAREN	)
SEMI	;
RBRACKET	}
KEYWORDS	else
LBRACKET	{
IDEN	tokenString
LBRACE	[
OCT	0]
OPERATOR	=
OCT	0'
SEMI	;
IDEN	scanNum
LPAREN	(
INT	8
RPAREN	)
SEMI	;
RBRACKET	}
KEYWORDS	break
SEMI	;
KEYWORDS	case
INT	1
OPERATOR	:
KEYWORDS	case
INT	2
OPERATOR	:
KEYWORDS	case
INT	3
OPERATOR	:
KEYWORDS	case
INT	4
OPERATOR	:
KEYWORDS	case
INT	5
OPERATOR	:
KEYWORDS	case
INT	6
OPERATOR	:
KEYWORDS	case
INT	7
OPERATOR	:
KEYWORDS	case
INT	8
OPERATOR	:
KEYWORDS	case
INT	9
OPERATOR	:
IDEN	scanNum
LPAREN	(
INT	10
RPAREN	)
SEMI	;
KEYWORDS	break
SEMI	;
KEYWORDS	case
DOT	.
OPERATOR	:
IDEN	fprintf
LPAREN	(
IDEN	fout
COMMA	,
IDEN	DOT
IDEN	t
DOT	.
IDEN	n
RPAREN	)
SEMI	;
KEYWORDS	break
SEMI	;
KEYWORDS	case
COMMA	,
OPERATOR	:
IDEN	fprintf
LPAREN	(
IDEN	fout
COMMA	,
IDEN	COMMA
IDEN	t
COMMA	,
IDEN	n
RPAREN	)
SEMI	;
KEYWORDS	break
SEMI	;
KEYWORDS	case
SEMI	;
OPERATOR	:
IDEN	fprintf
LPAREN	(
IDEN	fout
COMMA	,
IDEN	SEMI
IDEN	t
SEMI	;
IDEN	n
RPAREN	)
SEMI	;
KEYWORDS	break
SEMI	;
KEYWORDS	case
LPAREN	(
OPERATOR	:
IDEN	fprintf
LPAREN	(
IDEN	fout
COMMA	,
IDEN	LPAREN
IDEN	t
LPAREN	(
IDEN	n
RPAREN	)
SEMI	;
KEYWORDS	break
SEMI	;
KEYWORDS	case
RPAREN	)
OPERATOR	:
IDEN	fprintf
LPAREN	(
IDEN	fout
COMMA	,
IDEN	RPAREN
IDEN	t
RPAREN	)
IDEN	n
RPAREN	)
SEMI	;
KEYWORDS	break
SEMI	;
KEYWORDS	case
LBRACE	[
OPERATOR	:
IDEN	fprintf
LPAREN	(
IDEN	fout
COMMA	,
IDEN	LBRACE
IDEN	t
LBRACE	[
IDEN	n
RPAREN	)
SEMI	;
KEYWORDS	break
SEMI	;
KEYWORDS	case
RBRACE	]
OPERATOR	:
IDEN	fprintf
LPAREN	(
IDEN	fout
COMMA	,
IDEN	RBRACE
IDEN	t
RBRACE	]
IDEN	n
RPAREN	)
SEMI	;
KEYWORDS	break
SEMI	;
KEYWORDS	case
LBRACKET	{
OPERATOR	:
IDEN	fprintf
LPAREN	(
IDEN	fout
COMMA	,
IDEN	LBRACKET
IDEN	t
LBRACKET	{
IDEN	n
RPAREN	)
SEMI	;
KEYWORDS	break
SEMI	;
KEYWORDS	case
RBRACKET	}
OPERATOR	:
IDEN	fprintf
LPAREN	(
IDEN	fout
COMMA	,
IDEN	RBRACKET
IDEN	t
RBRACKET	}
IDEN	n
RPAREN	)
SEMI	;
KEYWORDS	break
SEMI	;
KEYWORDS	case
SLASH	/
OPERATOR	:
IDEN	ch
OPERATOR	=
IDEN	getNextChar
LPAREN	(

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -