public Parse ( string filename, TextReader reader ) : void | ||
filename | string | |
reader | TextReader | |
return | void |
public void Parse(string filename, TextReader reader)
{
Open(filename, reader);
while (!See(CiToken.EndOfFile)) {
CiCodeDoc doc = ParseDoc();
bool pub = Eat(CiToken.Public);
CiSymbol symbol;
if (See(CiToken.Enum))
symbol = ParseEnum();
else if (See(CiToken.Class) || See(CiToken.Abstract))
symbol = ParseClass();
else if (See(CiToken.Delegate))
symbol = ParseDelegate();
else
throw new ParseException("Expected class, enum or delegate");
symbol.Documentation = doc;
symbol.Visibility = pub ? CiVisibility.Public : CiVisibility.Internal;
this.Symbols.Add(symbol);
}
}
static CiProgram ParseAndResolve(CiParser parser, CiScope parent, List <string> files, List <string> searchDirs) { parser.Program = new CiProgram { Parent = parent }; foreach (string file in files) { parser.Parse(file, File.OpenText(file)); } new CiResolver(parser.Program, searchDirs); return(parser.Program); }