Example #1
0
 def _coconut_compile(self, source, *args, **kwargs):
     """Version of _compile that checks Coconut code.
     None means that the code should not be run as is.
     Any other value means that it can."""
     if source.endswith("\n\n"):
         return True
     elif should_indent(source):
         return None
     else:
         return True
Example #2
0
 def _coconut_compile(self, source, *args, **kwargs):
     """Version of _compile that compiles Coconut code first."""
     awaiting_input = ("\n" in source.rstrip() or should_indent(source)) and not source.endswith("\n\n")
     try:
         compiled = memoized_parse_block(source, none_if_not_found=awaiting_input)
     except CoconutException as err:
         if source.endswith("\n\n"):
             raise err.syntax_err()
         else:
             return None
     else:
         if compiled is None:
             return None
         else:
             return self._python_compile(compiled)
Example #3
0
 def _coconut_compile(self, source, *args, **kwargs):
     """Version of _compile that compiles Coconut code first."""
     awaiting_input = ("\n" in source.rstrip() or should_indent(source)
                       ) and not source.endswith("\n\n")
     try:
         compiled = memoized_parse_block(source,
                                         none_if_not_found=awaiting_input)
     except CoconutException as err:
         if source.endswith("\n\n"):
             raise err.syntax_err()
         else:
             return None
     else:
         if compiled is None:
             return None
         else:
             return self._python_compile(compiled)
Example #4
0
 def _coconut_compile(self, source, *args, **kwargs):
     """Version of _compile that compiles Coconut code.
     None means that the code should not be run as is.
     Any other value means that it can."""
     if source.endswith("\n\n"):
         return True
     elif should_indent(source):
         return None
     elif "\n" not in source.rstrip():  # if at start
         try:
             memoized_parse_block(source)
         except CoconutException:
             return None
         else:
             return True
     else:
         return True
Example #5
0
 def handle_input(self, code):
     """Compiles Coconut interpreter input."""
     if not self.prompt.multiline:
         if not should_indent(code):
             try:
                 return self.comp.parse_block(code)
             except CoconutException:
                 pass
         while True:
             line = self.get_input(more=True)
             if line is None:
                 return None
             elif line:
                 code += "\n" + line
             else:
                 break
     try:
         return self.comp.parse_block(code)
     except CoconutException:
         logger.print_exc()
     return None
Example #6
0
 def handle_input(self, code):
     """Compile Coconut interpreter input."""
     if not self.prompt.multiline:
         if not should_indent(code):
             try:
                 return self.comp.parse_block(code)
             except CoconutException:
                 pass
         while True:
             line = self.get_input(more=True)
             if line is None:
                 return None
             elif line:
                 code += "\n" + line
             else:
                 break
     try:
         return self.comp.parse_block(code)
     except CoconutException:
         logger.display_exc()
     return None