.NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

45 lines
1.3 KiB

// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.IO;
using System.Text;
using ICSharpCode.NRefactory.VB.Parser;
namespace ICSharpCode.NRefactory.VB
{
/// <summary>
/// Static helper class that constructs lexer and parser objects.
/// </summary>
public static class ParserFactory
{
public static VBLexer CreateLexer(TextReader textReader)
{
return new ICSharpCode.NRefactory.VB.Parser.VBLexer(textReader);
}
public static VBLexer CreateLexer(TextReader textReader, VBLexerMemento state)
{
return new ICSharpCode.NRefactory.VB.Parser.VBLexer(textReader, state);
}
public static VBParser CreateParser(TextReader textReader)
{
Parser.VBLexer lexer = CreateLexer(textReader);
return new ICSharpCode.NRefactory.VB.Parser.VBParser(lexer);
}
public static VBParser CreateParser(string fileName)
{
return CreateParser(fileName, Encoding.UTF8);
}
public static VBParser CreateParser(string fileName, Encoding encoding)
{
string ext = Path.GetExtension(fileName);
if (ext.Equals(".vb", StringComparison.OrdinalIgnoreCase))
return CreateParser(new StreamReader(fileName, encoding));
return null;
}
}
}