Пример #1
0
		/// <summary>
		/// Reads a CGT and creates all the objects needed to create
		/// a tokenizer and parser at a later time.
		/// </summary>
		/// <param name="stream">The CGT stream.</param>
		private void ReadFile(Stream stream)
		{
			try
			{
				Reset();
				this.stream = stream;
				CalithaBinReader reader = new CalithaBinReader(stream);
				string header = "";
				try
				{
					header = reader.ReadUnicodeString();
					if (! header.StartsWith("GOLD"))
						throw new CGTStructureException("File header is invalid");
				}
				catch (EndOfStreamException e)
				{
					throw new CGTStructureException("File header is invalid",e);
				}
				RecordCollection records = new RecordCollection();
				while (!(stream.Position == stream.Length))
				{
					records.Add(ReadRecord(reader));
				}
				structure = new CGTStructure(header,records);
				content = new CGTContent(structure);
				dfaStates = CreateDFAStates(content);
				parserStates = CreateParserStates(content);
			}
			finally
			{
				stream.Close();
			}
		}
Пример #2
0
		public CGTStructure(string header, RecordCollection records)
		{
		    this.header = header;
		    this.records = records;
		}
Пример #3
0
 public CGTStructure(string header, RecordCollection records)
 {
     this.header  = header;
     this.records = records;
 }