예제 #1
0
 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
     }
예제 #2
0
    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))
예제 #3
0
 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
예제 #4
0
 def __init__(self, logger):
     node.__init__(self, logger=logger)
     self._type = 'ORDERED_OR'
     self._prev_accepted_cnode_idx = -1
예제 #5
0
 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
예제 #6
0
 def __init__(self, target_text, logger):
     node.__init__(self, logger=logger)
     self._type = 'MATCH_TEXT'
     self._attr['target_text'] = target_text
예제 #7
0
 def __init__(self, logger):
     node.__init__(self, logger=logger)
     self._type = '?'
예제 #8
0
 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
예제 #9
0
 def __init__(self, logger):
     node.__init__(self, logger=logger)
     self._type = 'ALL_LETTER'
예제 #10
0
 def __init__(self, logger):
     node.__init__(self, logger=logger)
     self._freq = 0
     self._output = []
예제 #11
0
 def __init__(self, logger):
     node.__init__(self, logger=logger)
     self._type = 'EMPTY|BEGIN'
     self._white_space = re.compile('\s').match
예제 #12
0
 def __init__(self, logger):
     node.__init__(self, logger=logger)
     self._type = 'SM_FLOAT'
     self._pattern = re.compile('[0-9.,]+')
예제 #13
0
 def __init__(self, logger):
     node.__init__(self, logger=logger)
     self._type = 'WHITE_SPACE'
     self._white_space = re.compile('\s').match