def __init__(self, logger): node.__init__(self, logger=logger) self._type = 'SM_CARDINAL_INT' self._pattern1 = { re.compile("열"): (10, True), re.compile("스무"): (20, False), re.compile("스물"): (20, True), re.compile("서른"): (30, True), re.compile("마흔"): (40, True), re.compile("쉰"): (50, True), re.compile("예순"): (60, True), re.compile("일흔"): (70, True), re.compile("여든"): (80, True), re.compile("아흔"): (90, True) } self._pattern2 = { re.compile("한"): 1, re.compile("두"): 2, re.compile("세"): 3, re.compile("네"): 4, re.compile("다섯"): 5, re.compile("여섯"): 6, re.compile("일곱"): 7, re.compile("여덟"): 8, re.compile("아홉"): 9 }
def __init__(self, left, operator, right, logger): node.__init__(self, logger=logger) self._type = 'VAR_CONDITION' self._attr['left'] = left.split(',') self._attr['operator'] = operator self._attr['right'] = right.split(',') if len(self._attr['left']) != len(self._attr['right']): if self._logger: self._logger.error( 'Inconsistent # of operands for node_var_condition = {}, {}' .format(left, right))
def __init__(self, vname, vvalue, logger): node.__init__(self, logger=logger) self._type = 'VAR_ASSIGN' self._attr['variables'] = OrderedDict() names = vname.split(',') values = vvalue.split(',') for i, n in enumerate(names): if n[0] != '$': if self._logger: self._logger.error('var name must begin with $') n = n[1:] if i >= len(values): if self._logger: self._logger.error('value not exist') v = values[i] self._attr['variables'][n] = v
def __init__(self, logger): node.__init__(self, logger=logger) self._type = 'ORDERED_OR' self._prev_accepted_cnode_idx = -1
def __init__(self, var_name, var_func, logger): node.__init__(self, logger=logger) self._type = 'VAR_REFER' self._attr['var_name'] = var_name self._attr['var_func'] = var_func
def __init__(self, target_text, logger): node.__init__(self, logger=logger) self._type = 'MATCH_TEXT' self._attr['target_text'] = target_text
def __init__(self, logger): node.__init__(self, logger=logger) self._type = '?'
def __init__(self, lower, upper, logger): node.__init__(self, logger=logger) self._lower = int(lower) if lower else 0 self._upper = int(upper) if upper else None self._type = '{' + '{},{}'.format(lower, upper) + '}' self._cur = 0
def __init__(self, logger): node.__init__(self, logger=logger) self._type = 'ALL_LETTER'
def __init__(self, logger): node.__init__(self, logger=logger) self._freq = 0 self._output = []
def __init__(self, logger): node.__init__(self, logger=logger) self._type = 'EMPTY|BEGIN' self._white_space = re.compile('\s').match
def __init__(self, logger): node.__init__(self, logger=logger) self._type = 'SM_FLOAT' self._pattern = re.compile('[0-9.,]+')
def __init__(self, logger): node.__init__(self, logger=logger) self._type = 'WHITE_SPACE' self._white_space = re.compile('\s').match