public Token DoAction(MakeStringContent content, string s) { if (content.C == '\'') { return(new Token(TokenType.STRING, s)); } else { return(null); } }
public static Token MakeString(PeekableEnumerableAdapter <char> iterator) { string s = ""; IMakeStringState startState = new StartMakeStringState(); MakeStringContent content = new MakeStringContent(startState); while (iterator.HasNext) { char c = iterator.Next(); content.C = c; Token token = content.State.DoAction(content, s + c); if (token != null) { return(token); } else { s = content.Concat(s); } } throw new LexicalException("Unexpected error"); }