import sys import os sys.path.insert(1, os.path.join(sys.path[0], '..')) from parser import createLineData, parseLine def next(): return sys.stdin.readline().rstrip('\n') def linedata_basic (): lineData = createLineData('') while l := next(): lineData['line'] = l parseLine(lineData) print("| level {level} | indent {indent} | offsetHead {offsetHead} | offsetTail {offsetTail} | line {line} |".format( level = lineData['level'], indent = lineData['indent'], offsetHead = lineData['offsetHead'], offsetTail = lineData['offsetTail'], line = lineData['line'] )) def linedata_tabs (): lineData = createLineData('', '\t') while l := next(): lineData['line'] = l parseLine(lineData) print("| level {level} | indent {indent} | offsetHead {offsetHead} | offsetTail {offsetTail} | line {line} |".format( level = lineData['level'], indent = lineData['indent'], offsetHead = lineData['offsetHead'], offsetTail = lineData['offsetTail'], line = lineData['line'] )) def linedata_head_tail (): lineData = createLineData('') while l := next(): lineData['line'] = l parseLine(lineData) head = lineData['line'][lineData['offsetHead']:lineData['offsetTail']] if len(lineData['line']) > lineData['offsetTail'] else '' tail = lineData['line'][lineData['offsetTail'] + 1:] if len(lineData['line']) > lineData['offsetTail'] + 1 else '' print("| head {head} | tail {tail} |".format( head = head, tail = tail )) tests = { 'linedata:basic': linedata_basic, 'linedata:tabs': linedata_tabs, 'linedata:head-tail': linedata_head_tail } def main(): testName = sys.argv[1] test = tests[testName] test() if __name__ == "__main__": main()