def doString(): length = len(pattern.letters) if special_char(pattern.letters): length = 1 comparison = "compareChar" if pattern.options == "{case}": comparison = "compareCharCase" data = """ %(result)s.setValue(Value((void*) "%(string)s")); for (int i = 0; i < %(length)d; i++){ if (%(compare)s("%(string)s"[i], %(stream)s.get(%(result)s.getPosition()))){ %(result)s.nextPosition(); } else { %(failure)s } } """ % { 'result': result, 'string': pattern.letters.replace('"', '\\"'), 'length': length, 'compare': comparison, 'stream': stream, 'failure': indent(indent(failure())) } return data
def doString(): length = len(pattern.letters) if special_char(pattern.letters): length = 1 data = """ if '%s' == %s.get(%s.getPosition(), %s) then %s.nextPosition(%s) %s.setValue('%s') else %s end """ % (pattern.letters, stream, result, length, result, length, result, pattern.letters, indent(failure())) return data
def doString(): length = len(pattern.letters) if special_char(pattern.letters): length = 1 import re letters = re.sub(r"'", "\\'", pattern.letters) data = """ if '%s' == %s.get(%s.getPosition(), %s): %s.nextPosition(%s) %s.setValue('%s') else: %s """ % (letters, stream, result, length, result, length, result, letters, indent(failure())) return data
def doString(): length = len(pattern.letters) if special_char(pattern.letters): length = 1 comparison = "compareChar" if pattern.options == "{case}": comparison = "compareCharCase" data = """ %s.setValue(Value((void*) "%s")); for (int i = 0; i < %d; i++){ if (%s("%s"[i], %s.get(%s.getPosition()))){ %s.nextPosition(); } else { %s } } """ % (result, pattern.letters.replace('"', '\\"'), length, comparison, pattern.letters.replace( '"', '\\"'), stream, result, result, indent(indent(failure()))) return data
def doString(): length = len(pattern.letters) if special_char(pattern.letters): length = 1 import re letters = re.sub(r"'", "\\'", pattern.letters) if letters == "\n": letters = "\\n" if letters == "\r": letters = "\\r" if letters == "\t": letters = "\\t" data = """ if '%s' == %s.get(%s.getPosition(), %s): %s.nextPosition(%s) %s.setValue('%s') else: %s """ % (letters, stream, result, length, result, length, result, letters, indent(failure())) return data
def doString(): length = len(pattern.letters) if special_char(pattern.letters): length = 1 comparison = "compareChar" if pattern.options == "{case}": comparison = "compareCharCase" data = """ %(result)s.setValue(Value((void*) "%(string)s")); for (int i = 0; i < %(length)d; i++){ if (%(compare)s("%(string)s"[i], %(stream)s.get(%(result)s.getPosition()))){ %(result)s.nextPosition(); } else { %(failure)s } } """ % {'result': result, 'string': pattern.letters.replace('"', '\\"'), 'length': length, 'compare': comparison, 'stream': stream, 'failure': indent(indent(failure()))} return data