private void LoadDirectives()
{
Token indentation = null;
Token directive = null;
bool ended = false;
while (!ended)
{
indentation = m_serializer.ReadIndentationToken(this);
directive = m_serializer.ReadTextToken(this);
if (directive != null)
{
switch (directive.Text.ToLower())
{
case "tokens":
directive.Type = TokenType.Directive;
directive.ProjectNode = new TokenSetNode(m_serializer);
directive.ProjectNode.Index = directive.Offset;
Children.Add(directive.ProjectNode);
break;
case "rule":
directive.Type = TokenType.Directive;
directive.ProjectNode = new RuleNode(m_serializer);
directive.ProjectNode.Index = directive.Offset;
Children.Add(directive.ProjectNode);
break;
case "startingrule":
directive.Type = TokenType.Directive;
directive.ProjectNode = new StartingRuleNode(m_serializer);
directive.ProjectNode.Index = directive.Offset;
Children.Add(directive.ProjectNode);
break;
case "column":
directive.Type = TokenType.Directive;
directive.ProjectNode = new ColumnNode(m_serializer);
directive.ProjectNode.Index = directive.Offset;
Children.Add(directive.ProjectNode);
// LoadColumn();
break;
default:
m_serializer.Warn("'" + directive.Text + "' is not a valid directive.", this);
break;
}
}
else
{
ended = m_serializer.ReadLineBreakToken(this).Length == 0;
}
}
//Token t = m_serializer.ReadToken(TokenType.Directive | TokenType.Indentation | TokenType.LineBreak);
//while (t != null)
//{
// switch(t.Type)
// {
// case TokenType.Directive:
// switch (t.Text.ToLower())
// {
// }
// break;
// }
// t = m_serializer.ReadToken(TokenType.Directive | TokenType.Indentation | TokenType.LineBreak);
//}
}