/* LLString.cs */

using System;
using System.Collections.Generic;

sealed public class LLString:Rule
{
  private LLString(String spelling, List<Rule> rules) :
  base(spelling, rules)
  {
  }

  public override Object Accept(Visitor visitor)
  {
    return visitor.Visit(this);
  }

  public static LLString Parse(ParserContext context)
  {
    context.Push("LLString");
    
    LLString rule = null;

    try
    {
        int length = 
            int.Parse(
                context.text.Substring(
                    context.index, 
                    2));

        rule = 
            new LLString(
                context.text.Substring(
                    context.index + 2, 
                    length), 
                null);

        context.index += (2 + length);
    }
    catch (Exception) {}

    context.Pop("LLString", rule != null);

    return (LLString)rule;
  }
}

/* eof */