Exemplo n.º 1
0
 def _compile(self, cont):
     # In words: take `x` and split to `x` and `cont`
     split = Split()
     x = self.x._compile(split)
     if self.greedy:
         split.succ = x
         split.split = cont
     else:
         split.succ = cont
         split.split = x
     # `Star` would return `split`
     return x
Exemplo n.º 2
0
 def _compile(self, cont):
     # In words: split to (`x` and return to split) and `cont`
     split = Split()
     x = self.x._compile(split)
     if self.greedy:
         split.succ = x
         split.split = cont
     else:
         split.succ = cont
         split.split = x
     # `Plus` would return `x`
     return split
Exemplo n.º 3
0
 def _compile(self, cont):
     a = self.a._compile(cont)
     b = self.b._compile(cont)
     return Split(a, b)
Exemplo n.º 4
0
 def _compile(self, cont):
     xcode = self.x._compile(cont)
     if self.greedy:
         return Split(xcode, cont)
     else:
         return Split(cont, xcode)