Getter für Block, Compilefehler entfernt

This commit is contained in:
2014-04-04 08:59:28 +02:00
parent 709b088a22
commit a09f936de6
2 changed files with 60 additions and 32 deletions

View File

@@ -20,7 +20,7 @@ namespace WorldOfPeacecraft
LastLineRegex = new Regex ("^end:[0-9]+$");
}
public void RunParser ()
private void RunParser ()
{
while (true) {
bool waitRequired = false;
@@ -38,7 +38,7 @@ namespace WorldOfPeacecraft
}
}
public void Parse ()
private void Parse ()
{
// If package is not complete wait for more lines
if (!IsCompletePackage ())
@@ -47,12 +47,12 @@ namespace WorldOfPeacecraft
MapData (mainBlock);
}
public void MapData (Block block)
private void MapData (Block block)
{
// TODO Implement
}
public bool IsCompletePackage()
private bool IsCompletePackage ()
{
string lastLine = message.Last.Value;
return LastLineRegex.IsMatch (lastLine);
@@ -82,16 +82,13 @@ namespace WorldOfPeacecraft
int pos = start;
Name = StringUtils.SubstringAfter (message [pos], ":");
pos++;
while (pos < end)
{
while (pos < end) {
// Is the next element a block or a value?
if (message[pos].StartsWith("begin:"))
{
if (message [pos].StartsWith ("begin:")) {
// It's a block
int blockstart = pos;
int begins = 1;
while (begins > 0)
{
while (begins > 0) {
pos++;
if (pos >= end)
throw new ParsingException ("The message is missing end:-lines");
@@ -101,9 +98,7 @@ namespace WorldOfPeacecraft
begins++;
}
Blocks.Add (new Block (message, blockstart, pos));
}
else
{
} else {
// It's a value
string name = StringUtils.SubstringBefore (message [pos], ":");
string val = StringUtils.SubstringAfter (message [pos], ":");
@@ -112,6 +107,31 @@ namespace WorldOfPeacecraft
}
}
}
public string GetName ()
{
return Name;
}
public ISet<Block> GetBlocks ()
{
return Blocks;
}
public string GetStringValue (string name)
{
return Values [name];
}
public int GetIntValue (string name)
{
return int.Parse (Values [name]);
}
public long GetLongValue (string name)
{
return long.Parse (Values [name]);
}
}
}
}

View File

@@ -5,12 +5,20 @@ namespace WorldOfPeacecraft
{
public class ParsingException : Exception
{
public ParsingException () : base();
public ParsingException () : base()
{
}
public ParsingException (string message) : base(message);
public ParsingException (string message) : base(message)
{
}
public ParsingException (SerializationInfo info, StreamingContext context) : base(info, context);
public ParsingException (SerializationInfo info, StreamingContext context) : base(info, context)
{
}
public ParsingException (string message, Exception innerException) : base(message, innerException);
public ParsingException (string message, Exception innerException) : base(message, innerException)
{
}
}
}