本文整理汇总了C#中Partition.FindClasses方法的典型用法代码示例。如果您正苦于以下问题:C# Partition.FindClasses方法的具体用法?C# Partition.FindClasses怎么用?C# Partition.FindClasses使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Partition
的用法示例。
在下文中一共展示了Partition.FindClasses方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Process
internal void Process(string fileArg)
{
GetNames(fileArg);
// check for file exists
OpenSource();
// parse source file
if (inputFile != null)
{
DateTime start = DateTime.Now;
try
{
handler = new ErrorHandler();
scanner = new QUT.Gplex.Lexer.Scanner(inputFile);
parser = new QUT.Gplex.Parser.Parser(scanner);
scanner.yyhdlr = handler;
parser.Initialize(this, scanner, handler, new OptionParser2(ParseOption));
aast = parser.Aast;
parser.Parse();
// aast.DiagnosticDump();
if (verbose)
Status(start);
CheckOptions();
if (!Errors && !ParseOnly)
{ // build NFSA
if (ChrClasses) {
DateTime t0 = DateTime.Now;
partition = new Partition( TargetSymCardinality, this );
partition.FindClasses( aast );
partition.FixMap();
if (verbose)
ClassStatus( t0, partition.Length );
}
else
CharRange.Init( TargetSymCardinality );
nfsa = new NFSA(this);
nfsa.Build(aast);
if (!Errors)
{ // convert to DFSA
dfsa = new DFSA(this);
dfsa.Convert(nfsa);
if (!Errors)
{ // minimize automaton
if (minimize)
dfsa.Minimize();
if (!Errors && !checkOnly)
{ // emit the scanner to output file
TextReader frameRdr = FrameReader();
TextWriter outputWrtr = OutputWriter();
dfsa.EmitScanner(frameRdr, outputWrtr);
if (!embedBuffers)
CopyBufferCode();
// Clean up!
if (frameRdr != null)
frameRdr.Close();
if (outputWrtr != null)
outputWrtr.Close();
}
}
}
}
}
catch (Exception ex)
{
string str = ex.Message;
handler.AddError(str, aast.AtStart);
throw;
}
}
}