📄 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>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
//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("//-------------------词法分析结果-----------------------//");
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();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -