?? parser.java
字號:
package cminus;
/****************************************************************************
* U N R E G I S T E R E D C O P Y
*
* You are on day 2 of your 30 day trial period.
*
* This file was produced by an UNREGISTERED COPY of Parser Generator. It is
* for evaluation purposes only. If you continue to use Parser Generator 30
* days after installation then you are required to purchase a license. For
* more information see the online help or go to the Bumble-Bee Software
* homepage at:
*
* http://www.bumblebeesoftware.com
*
* This notice must remain present in the file. It cannot be removed.
****************************************************************************/
/*******************************************************************************
* Text1.java Java source file generated from Text1.l.
*
* Date: 11/15/07 Time: 14:01:26
*
* ALex Version: 2.07
******************************************************************************/
// line 5 ".\\Text1.l"
import java.io.*;
import java.util.*;
// line 33 "Text1.java"
import yl.*;
// ///////////////////////////////////////////////////////////////////////////
// Parser
public class Parser extends yyflexer implements TokenType {// line 12
// line 12 ".\\Text1.l"
// Attributes
public static int lineno = 1;
public String sourceFileName;
private TokenProcess tokenPro = new TokenProcess();
// line 56 "Text1.java"
public Parser() {
yytables();
// line 28 ".\\Text1.l"
// do nothing
// line 67 "Text1.java"
}
public static final int INITIAL = 0;
protected static yyftables yytables = null;
public final int yyaction(int action) {
yyreturnflg = true;
switch (action) {
case 1: {
// line 50 ".\\Text1.l"
return ELSE;
// line 81 "Text1.java"
}
case 2: {
// line 51 ".\\Text1.l"
return IF;
// line 87 "Text1.java"
}
case 3: {
// line 52 ".\\Text1.l"
return INT;
// line 93 "Text1.java"
}
case 4: {
// line 53 ".\\Text1.l"
return RETURN;
// line 99 "Text1.java"
}
case 5: {
// line 54 ".\\Text1.l"
return VOID;
// line 105 "Text1.java"
}
case 6: {
// line 55 ".\\Text1.l"
return WHILE;
// line 111 "Text1.java"
}
case 7: {
// line 56 ".\\Text1.l"
return ID;
// line 117 "Text1.java"
}
case 8: {
// line 57 ".\\Text1.l"
return ADD;
// line 123 "Text1.java"
}
case 9: {
// line 58 ".\\Text1.l"
return MINUS;
// line 129 "Text1.java"
}
case 10: {
// line 59 ".\\Text1.l"
return MUL;
// line 135 "Text1.java"
}
case 11: {
// line 60 ".\\Text1.l"
return DIV;
// line 141 "Text1.java"
}
case 12: {
// line 61 ".\\Text1.l"
return LESSTHEN;
// line 147 "Text1.java"
}
case 13: {
// line 62 ".\\Text1.l"
return LESSEQUALTHEN;
// line 153 "Text1.java"
}
case 14: {
// line 63 ".\\Text1.l"
return MORETHEN;
// line 159 "Text1.java"
}
case 15: {
// line 64 ".\\Text1.l"
return MOREEQUALTHEN;
// line 165 "Text1.java"
}
case 16: {
// line 65 ".\\Text1.l"
return EQUAL;
// line 171 "Text1.java"
}
case 17: {
// line 66 ".\\Text1.l"
return NOTEQUAL;
// line 177 "Text1.java"
}
case 18: {
// line 67 ".\\Text1.l"
return ASSIGN;
// line 183 "Text1.java"
}
case 19: {
// line 68 ".\\Text1.l"
return SEMICOLON;
// line 189 "Text1.java"
}
case 20: {
// line 69 ".\\Text1.l"
return COMMA;
// line 195 "Text1.java"
}
case 21: {
// line 70 ".\\Text1.l"
return LSB;
// line 201 "Text1.java"
}
case 22: {
// line 71 ".\\Text1.l"
return RSB;
// line 207 "Text1.java"
}
case 23: {
// line 72 ".\\Text1.l"
return LMB;
// line 213 "Text1.java"
}
case 24: {
// line 73 ".\\Text1.l"
return RMB;
// line 219 "Text1.java"
}
case 25: {
// line 74 ".\\Text1.l"
return LBB;
// line 225 "Text1.java"
}
case 26: {
// line 75 ".\\Text1.l"
return RBB;
// line 231 "Text1.java"
}
case 27: {
// line 76 ".\\Text1.l"
int c;
boolean bloop = true;
try {
while (bloop) {
c = yyinput();
if (c == '\n')
lineno++;
else if (c == '*') {
int cc = yyinput();
if (cc == '/')
bloop = false;
}
}
} catch (Exception e) {
}
break;
// line 252 "Text1.java"
}
case 28: {
// line 93 ".\\Text1.l"
return NUM;
// line 258 "Text1.java"
}
case 29: {
// line 94 ".\\Text1.l"
lineno++;
// line 264 "Text1.java"
}
case 30: {
// line 95 ".\\Text1.l"
/* skip whitespace */break;
// line 270 "Text1.java"
}
case 31: {
// line 96 ".\\Text1.l"
return ERROR;
// line 276 "Text1.java"
}
default:
break;
}
yyreturnflg = false;
return 0;
}
protected final void yytables() {
yystext_size = 100;
yysunput_size = 100;
yytext_max = 0;
yyunput_max = 0;
yycreatetables();
yymatch = yytables.yymatch;
yytransition = yytables.yytransition;
yystate = yytables.yystate;
yybackup = yytables.yybackup;
}
public static synchronized final void yycreatetables() {
if (yytables == null) {
yytables = new yyftables();
final short match[] = { 0 };
yytables.yymatch = match;
final yytransition transition[] = { new yytransition(0, 0),
new yytransition(4, 1), new yytransition(0, 1),
new yytransition(4, 4), new yytransition(29, 5),
new yytransition(5, 1), new yytransition(14, 14),
new yytransition(14, 14), new yytransition(14, 14),
new yytransition(14, 14), new yytransition(14, 14),
new yytransition(14, 14), new yytransition(14, 14),
new yytransition(14, 14), new yytransition(14, 14),
new yytransition(14, 14), new yytransition(32, 16),
new yytransition(33, 17), new yytransition(34, 18),
new yytransition(36, 23), new yytransition(35, 22),
new yytransition(30, 6), new yytransition(38, 24),
new yytransition(39, 25), new yytransition(4, 1),
new yytransition(6, 1), new yytransition(4, 4),
new yytransition(37, 23), new yytransition(40, 26),
new yytransition(41, 35), new yytransition(42, 37),
new yytransition(43, 38), new yytransition(7, 1),
new yytransition(8, 1), new yytransition(9, 1),
new yytransition(10, 1), new yytransition(11, 1),
new yytransition(12, 1), new yytransition(44, 39),
new yytransition(13, 1), new yytransition(14, 1),
new yytransition(14, 1), new yytransition(14, 1),
new yytransition(14, 1), new yytransition(14, 1),
new yytransition(14, 1), new yytransition(14, 1),
new yytransition(14, 1), new yytransition(14, 1),
new yytransition(14, 1), new yytransition(45, 40),
new yytransition(15, 1), new yytransition(16, 1),
new yytransition(17, 1), new yytransition(18, 1),
new yytransition(46, 41), new yytransition(47, 43),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(20, 1), new yytransition(48, 44),
new yytransition(21, 1), new yytransition(49, 45),
new yytransition(50, 47), new yytransition(51, 49),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(22, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(23, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(24, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(25, 1),
new yytransition(26, 1), new yytransition(19, 1),
new yytransition(19, 1), new yytransition(19, 1),
new yytransition(27, 1), new yytransition(52, 50),
new yytransition(28, 1), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(31, 13),
new yytransition(0, 0), new yytransition(0, 0),
new yytransition(0, 0), new yytransition(0, 0),
new yytransition(0, 0), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52), new yytransition(19, 52),
new yytransition(19, 52) };
yytables.yytransition = transition;
final yystate state[] = { new yystate(0, 0, 0),
new yystate(-3, -8, 0), new yystate(1, 0, 0),
new yystate(0, 0, 31), new yystate(0, -6, 30),
new yystate(0, -6, 31), new yystate(0, -40, 31),
new yystate(0, 0, 21), new yystate(0, 0, 22),
new yystate(0, 0, 10), new yystate(0, 0, 8),
new yystate(0, 0, 20), new yystate(0, 0, 9),
new yystate(0, 102, 11), new yystate(0, -42, 28),
new yystate(0, 0, 19), new yystate(0, -45, 12),
new yystate(0, -44, 18), new yystate(0, -43, 14),
new yystate(52, 0, 7), new yystate(0, 0, 23),
new yystate(0, 0, 24), new yystate(52, -88, 7),
new yystate(52, -83, 7), new yystate(52, -79, 7),
new yystate(52, -88, 7), new yystate(52, -76, 7),
new yystate(0, 0, 25), new yystate(0, 0, 26),
new yystate(0, 0, 29), new yystate(0, 0, 17),
new yystate(0, 0, 27), new yystate(0, 0, 13),
new yystate(0, 0, 16), new yystate(0, 0, 15),
new yystate(52, -86, 7), new yystate(52, 0, 2),
new yystate(52, -86, 7), new yystate(52, -85, 7),
new yystate(52, -67, 7), new yystate(52, -55, 7),
new yystate(52, -46, 7), new yystate(52, 0, 3),
new yystate(52, -61, 7), new yystate(52, -16, 7),
new yystate(52, -22, 7), new yystate(52, 0, 1),
new yystate(52, -27, 7), new yystate(52, 0, 5),
new yystate(52, -13, 7), new yystate(52, 6, 7),
new yystate(52, 0, 6), new yystate(0, 53, 4) };
yytables.yystate = state;
final boolean backup[] = { false, false, false, false, false,
false, false, false, false, false, false, false, false,
false, false, false, false, false, false, false, false,
false, false, false, false, false, false, false, false,
false, false, false };
yytables.yybackup = backup;
}
}
// line 98 ".\\Text1.l"
public void setSourceFile(String filename){
sourceFileName = filename;
}
public void getToken() throws Exception {
String tokenFile = "tokenFile";
String tokenTypeFile = "tokenTypeFile";
//clear the file
FileWriter Token = new FileWriter(tokenFile);
FileWriter TokenType = new FileWriter(tokenTypeFile);
Token.close();
TokenType.close();
//declaration for file appender
FileWriter writeToken = new FileWriter(tokenFile, true);
PrintWriter writeTokenType =
new PrintWriter(new FileWriter(tokenTypeFile, true));
//set source file
try {
File file = new File(sourceFileName);
yyin = new InputStreamReader(new FileInputStream(file));
} catch (FileNotFoundException e) {
System.err.println("文件無法找到: " + e.getMessage());
try{
System.in.read();
System.exit(0);
}catch(IOException ee){
e.printStackTrace();
}
}
yycreate();
int n = 0;
while ((n = yylex()) != 0) {
writeTokenType.println("Line-"+this.lineno+" "+tokenPro.tokenToString(n));
writeToken.write("Line-"+this.lineno+" ");
for(int i = 0;i<yyleng;i++){
writeToken.write((char)yytext[i]);
}
writeToken.write("\n");
writeToken.flush();
}
writeToken.close();
writeTokenType.close();
System.out.println("Scanning completed!\nSee file '"+tokenFile+"' and '"+tokenTypeFile+"'.");
}
public void showTokens(){
try{
System.out.println("\nThe tokens are as below:");
BufferedReader fileIn =
new BufferedReader(new FileReader("tokenFile"));
String line = fileIn.readLine();
while(line!=null){
System.out.println("\t\t"+line);
line = fileIn.readLine();
}
fileIn.close();
}catch(IOException e){
System.err.println("Reading file error: "+e.getMessage());
}
}
public static void main(String args[]) throws Exception {
Parser parser = new Parser();
try {
parser.setSourceFile("zhangsdf.cm");
parser.getToken();
} catch (Exception e) {
System.err.println("Scanning error: "+e.getMessage());
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -