?? class1.cs
字號:
using System;
using System.IO;
using System.Collections;
namespace Analyzer
{
/// <summary>
/// Class1 的摘要說明。
/// </summary>
class MainProcess
{
private static StreamReader br;
//private static ArrayList analTable;
private static ArrayList symbolTable;
private static int[,] LR=new int[30,30];
/// <summary>
/// 應(yīng)用程序的主入口點。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此處添加代碼以啟動應(yīng)用程序
//
//Console.WriteLine("//------------------------------------------------------//");
//Console.WriteLine("//------------71103405 張勁松---------------------------//");
//Console.WriteLine("//--------------詞法+語法分析器------------------------//");
//Console.WriteLine("//------------------------------------------------------//");
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
symbolTable = new ArrayList();
readFile("../../Res/test.txt");
string content = br.ReadToEnd();
Console.WriteLine("分析程序:");
Console.WriteLine(content);
br.Close();
Console.WriteLine();
readFile("../../Res/test.txt");
Lexical lex = new Lexical(br);
readFile("../../Res/analTableRes.txt");
//analTable = new ArrayList();
getAnalTable();
symbolTable = lex.getSymbolTable();
printAnswer();
//Syntax syn = new Syntax(symbolTable,analTable);
LRSyntax syn = new LRSyntax(symbolTable,LR);
syn.analyzer();
Console.ReadLine();
}
// private static void getAnalTable()
// {
// char c=' ';
// String str="";
//
// for(int i=0;i<15;i++)
// {
// analTable.Add(new ArrayList());
// for(int j=0;j<24;j++)
// {
// str="";
// c=(char)br.Read();
// while((int)c!=9&&(int)c!=13)
// {
// str+=c.ToString();
// c=(char)br.Read();
// }
// ((ArrayList)analTable[i]).Add(str);
//
// //System.out.print(str+" ");
// //if(str.Length != 0)
// // Console.WriteLine(str+" ");
// }
// br.Read();
// //System.out.println();
//
//Console.WriteLine();
// }
//
// br.Close();
// }
private static void getAnalTable()
{
//讀入LR—table
//Convert.ToInt32(s);
string strLR;
strLR="../../Res/LR-table.txt";
br = new StreamReader(strLR);
string strBufferLR;
int pp=0;
do
{
strBufferLR =br.ReadLine();
if(strBufferLR==null)
break;
else
{
int j=0;
foreach (String subString in strBufferLR.Split())
{
if(subString!=null)
{
int lllr=Convert.ToInt16(subString);
LR[pp,j]=lllr;
//Console.Write(LR[pp,j].ToString()+" ");
j++;
}
}
}
pp++;
//Console.WriteLine();
}
while (strBufferLR!=null);
}
public static void readFile(String fileName)
{
br = new StreamReader(fileName);
}
private static void printAnswer()
{
Console.WriteLine("//------------------------------------------------------//");
Console.WriteLine("//-------------------詞法分析結(jié)果-----------------------//");
Console.WriteLine("//------------------------------------------------------//");
for(int i=0;i<symbolTable.Count;i++)
{
ArrayList tempArray=(ArrayList)symbolTable[i];
for(int j=0;j<tempArray.Count;j++)
{
// System.out.print(tempArray.get(j).toString()+" ");
Console.Write(tempArray[j].ToString()+" ");
}
//System.out.println();
Console.WriteLine();
}
Console.WriteLine();
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -