         let upper = String(right)
         let ch = String(reader.read())
         let found = (lower <= ch) && (ch <= upper)
-        if(parser.debug_rules) {
-            print("\t\t\(ch) - \(found)")
-        }
+        parser.leave("range \t\t\(ch)", found)
         
         if(!found) {
             reader.seek(pos)


public func | (left: ParserRule, right: ParserRule) -> ParserRule {
    return {(parser: Parser, reader: Reader) -> Bool in
        let pos = reader.position
        var result = left(parser: parser, reader: reader)
        if(!result) {

// match a range of characters eg: "0"-"9"
public func - (left: Character, right: Character) -> ParserRule {
    return {(parser: Parser, reader: Reader) -> Bool in
        parser.enter("range [\(left)-\(right)]")
        
        let pos = reader.position
        
