public override TypeLibrary Load() { var loader = new TypeLibraryLoader(arch, true); loader.SetModuleName(DefaultModuleName(filename)); for (; ; ) { var tok = Get(); switch (tok.Type) { case TokenType.EOF: return loader.BuildLibrary(); case TokenType.EXPORTS: ParseExports(loader); break; case TokenType.LIBRARY: ParseLibrary(loader); break; default: throw new NotImplementedException( string.Format("Unknown token {0} ({1}) on line {2}.", tok.Type, tok.Text, tok.LineNumber)); } } }
private void ParseLibrary(TypeLibraryLoader lib) { if (Peek().Type == TokenType.Id) { lib.SetModuleName(Get().Text); } if (PeekAndDiscard(TokenType.BASE)) { throw new NotImplementedException(); } }
public TypeLibrary Load(Platform platform, string module) { this.platform = platform; this.tlLoader = new TypeLibraryLoader(platform, true); tlLoader.SetModuleName(module); for (;;) { var tok = Peek(); if (tok.Type == TokenType.EOF) break; if (PeekAndDiscard(TokenType.NL)) continue; ParseLine(); } return tlLoader.BuildLibrary(); }