using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; namespace Larkdown.Parser.Lexer { class LineStartState : State { public override State Next(Lexer lexer) { var indent = lexer.Read(new Regex("^[\t ]*")); if (indent.Length > 0) { lexer.Emit(new Token(TokenType.Indentation, indent)); } if (lexer.IsEof()) { lexer.Emit(new Token(TokenType.Eof)); return null; } switch (lexer.Peek()) { case '\n': lexer.Emit(new Token(TokenType.Empty)); lexer.Read(); return this; default: return new TextState(); } } } }