Added new error (current use: unexpected end of token stream)
Added .pop() method to token stream
Basic .matchrule() method implemented in parser
New tests
Fix: char counter increased after tokens are appended to stream
Implemented .copy() method (do stream.copy() instead of stream[:]) in token stream
New tests
Functionality to pass new tests
Code preparation for alternatives matching support
Preparation for refactoring
String parser-rule value now contains a string, not a list containing string
Unquantified matching by string literal or identifier is now improved (by refactoring)
Further refactoring
One test renamed
Simplified code that matches by identifiers
New test for * quantifier
Single codepath is used to match * and + quantifiers
Added tests for ? quantifier
Simpliefied rule-matching code
Renamed: Parser.tryrule() to .matchrule(), Parser.matchrule() to .consumerule()