code: def _compile(self, lines):
          '''Set the correct render method (boolean or function call)
          and read variables from the current line.
          '''
          m = self.__class__.RE_IF.match(lines.current)
          if m is None:
              raise DefineBlockError(
                  'Incorrect block definition at line {}, {}\nShould be '
                  'something like: #if @foo:'.format(lines.pos, lines.current))
          args = m.group(3)
          self._evaluate = m.group(2).replace('.', '-')
          self._isbool = args is None
          if not self._isbool:
              args = args.strip('() \t')
              self._args = [arg.strip('@ \t').replace('.', '-')
                            for arg in args.split(',')f _compile(self, lines):
          '''Set the correct render method (boolean or function call)
          and read variables from the current line.
          '''
          m = self.__class__.RE_IF.match(lines.current)
          if m is None:
              raise DefineBlockError(
                  'Incorrect block definition at line {}, {}\nShould be '
                  'something like: #if @foo:'.format(lines.pos, lines.current))
          args = m.group(3)
          self._evaluate = m.group(2).replace('.', '-')
          self._isbool = args is None
          if not self._isbool:
              args = args.strip('() \t')
              self._args = [arg.strip('@ \t').replace('.', '-')
                            for arg in args.split(',')]
docs: Set the correct render method (boolean or function call)
          and read variables from the current line.