예제 #1
0
파일: das_ply.py 프로젝트: ktf/DAS
    def __init__(self, parserdir, daskeys, dassystems,
                 operators=None, specials=None, filters=None,
                 aggregators=None, mapreduces=None, verbose=0):
        self.daskeys = daskeys
        self.verbose = verbose
        self.lexer   = None # defined at run time using self.build()
        self.parser  = None # defined at run time using self.build()

        self.dassystems = dassystems
        self.parsertab_dir = parserdir
        if  not os.path.isdir(self.parsertab_dir):
            msg = 'Directory %s does not exists' % self.parsertab_dir
            raise Exception(msg)
        
        # test if we have been given a list of desired operators/filters
        # /aggregators, if not get the lists from das_ql
        operators = operators if operators else das_operators()
        filters = filters if filters else das_filters()
        aggregators = aggregators if aggregators else das_aggregators()
        mapreduces = mapreduces if mapreduces else das_mapreduces()
        specials = specials if specials else das_special_keys()
        
        # build a map of token->token.type which we can use in the
        # enlarged VALUE rule
        self.tokenmap = {}
        for o in operators:
            self.tokenmap[o] = 'OPERATOR'
        for f in filters:
            self.tokenmap[f] = 'FILTER'
        for a in aggregators:
            self.tokenmap[a] = 'AGGREGATOR'
        for m in mapreduces:
            self.tokenmap[m] = 'MAPREDUCE'
        for s in specials:
            self.tokenmap[s] = 'SPECIALKEY'
예제 #2
0
 def __init__(self,
              daskeys,
              dassystems,
              operators=None,
              specials=None,
              filters=None,
              aggregators=None,
              mapreduces=None,
              verbose=0):
     super(DASQueryParser, self).__init__()
     self.daskeys = daskeys + ['queries', 'records']
     self.verbose = verbose
     self.dassystems = dassystems
     # test if we have been given a list of desired operators/filters
     # /aggregators, if not get the lists from das_ql
     self.operators = operators if operators else das_operators()
     self.filters = filters if filters else das_filters()
     self.aggregators = aggregators if aggregators else das_aggregators()
     self.mapreduces = mapreduces if mapreduces else das_mapreduces()
     self.specials = specials if specials else das_special_keys()
     if self.verbose:
         print("operators", self.operators)
         print('filters', self.filters)
         print('mapreduces', self.mapreduces)
         print('specials', self.specials)
     self.daskeys += self.specials
예제 #3
0
 def __init__(self, daskeys, dassystems,
              operators=None, specials=None, filters=None,
              aggregators=None, mapreduces=None, verbose=0):
     super(DASQueryParser, self).__init__()
     self.daskeys = daskeys + ['queries', 'records']
     self.verbose = verbose
     self.dassystems = dassystems
     # test if we have been given a list of desired operators/filters
     # /aggregators, if not get the lists from das_ql
     self.operators = operators if operators else das_operators()
     self.filters = filters if filters else das_filters()
     self.aggregators = aggregators if aggregators else das_aggregators()
     self.mapreduces = mapreduces if mapreduces else das_mapreduces()
     self.specials = specials if specials else das_special_keys()
     if  self.verbose:
         print("operators", self.operators)
         print('filters', self.filters)
         print('mapreduces', self.mapreduces)
         print('specials', self.specials)
     self.daskeys += self.specials