class GUIPyInterface( java.lang.Object ): def __init__(self, numtasks): "@sig public GUI_Interface( int numtasks )" self.lexer = NCPTL_Lexer() self.parser = NCPTL_Parser( self.lexer ) self.codegen = NCPTL_CodeGen(options=[], numtasks=numtasks) self.codegen.procmap = None def get_language_version( self ): "@sig public java.lang.String get_language_version()" return self.parser.language_version def parse( self, sourcecode, filesource, start ): "@sig public java.lang.Object parse( java.lang.String sourcecode, java.lang.String filesource, java.lang.String start )" try: return self.parser.parsetokens( self.lexer.tokenize( sourcecode, filesource ), filesource, start ) except: # Convert SystemExit (and other) exceptions into something # that Jython will pass through to Java. raise Exception def get_comments( self ): "@sig public java.lang.Object get_comments()" return self.lexer.line2comment def process_node( self, node ): "@sig public java.lang.Object process_node( java.lang.Object node )" self.codegen.clear_events() self.codegen.fake_semantic_analysis( node ) return self.codegen.process_node( node ) def get_eventlists( self ): "@sig public java.lang.Object get_eventlists()" return self.codegen.eventlist def set_numtasks( self, numtasks ): "@sig public void set_numtasks( int numtasks )" self.codegen.numtasks = numtasks def is_source_task_expr( self, node ): "@sig public boolean is_source_task_expr( java.lang.Object node )" try: self.parser._make_source_task( [node], 0 ) return 1 except: return 0 def is_target_task_expr( self, node ): "@sig public boolean is_target_task_expr( java.lang.Object node )" try: self.parser._make_target_tasks( [node], 0 ) return 1 except: return 0 def get_predeclared_variables( self ): "@sig public java.lang.String[] get_predeclared_variables()" return Variables.variables.keys()
class GUIPyInterface(java.lang.Object): def __init__(self, numtasks): "@sig public GUI_Interface( int numtasks )" self.lexer = NCPTL_Lexer() self.parser = NCPTL_Parser(self.lexer) self.codegen = NCPTL_CodeGen(options=[], numtasks=numtasks) self.codegen.procmap = None def get_language_version(self): "@sig public java.lang.String get_language_version()" return self.parser.language_version def parse(self, sourcecode, filesource, start): "@sig public java.lang.Object parse( java.lang.String sourcecode, java.lang.String filesource, java.lang.String start )" try: return self.parser.parsetokens( self.lexer.tokenize(sourcecode, filesource), filesource, start) except: # Convert SystemExit (and other) exceptions into something # that Jython will pass through to Java. raise Exception def get_comments(self): "@sig public java.lang.Object get_comments()" return self.lexer.line2comment def process_node(self, node): "@sig public java.lang.Object process_node( java.lang.Object node )" self.codegen.clear_events() self.codegen.fake_semantic_analysis(node) return self.codegen.process_node(node) def get_eventlists(self): "@sig public java.lang.Object get_eventlists()" return self.codegen.eventlist def set_numtasks(self, numtasks): "@sig public void set_numtasks( int numtasks )" self.codegen.numtasks = numtasks def is_source_task_expr(self, node): "@sig public boolean is_source_task_expr( java.lang.Object node )" try: self.parser._make_source_task([node], 0) return 1 except: return 0 def is_target_task_expr(self, node): "@sig public boolean is_target_task_expr( java.lang.Object node )" try: self.parser._make_target_tasks([node], 0) return 1 except: return 0 def get_predeclared_variables(self): "@sig public java.lang.String[] get_predeclared_variables()" return Variables.variables.keys()
if backend != None: codegen = NCPTL_CodeGen(backend_options) # Compile the program into backend-specific source code. try: sys.setcheckinterval(100000) except AttributeError: # Jython 2.2a1 doesn't support sys.setcheckinterval. pass if be_verbose: sys.stderr.write("# Lexing ...\n") tokenlist = lexer.tokenize(entirefile, filesource=infilename) del lexer if be_verbose: sys.stderr.write("# Parsing ...\n") syntree = parser.parsetokens(tokenlist, filesource=infilename) del parser if be_verbose: sys.stderr.write("# Analyzing program semantics ...\n") syntree = semantic.analyze(syntree, filesource=infilename, lenient=lenient) del semantic if backend == None: # If a backend wasn't specified we have nothing left to do. if be_verbose: sys.stderr.write("# Not compiling %s -- no backend was specified.\n" % infilename) sys.exit(0) if be_verbose: if backend_options == []: sys.stderr.write("# Compiling %s using the %s backend ...\n" % (infilename, backend)) else:
if backend != None: codegen = NCPTL_CodeGen(backend_options) # Compile the program into backend-specific source code. try: sys.setcheckinterval(100000) except AttributeError: # Jython 2.2a1 doesn't support sys.setcheckinterval. pass if be_verbose: sys.stderr.write("# Lexing ...\n") tokenlist = lexer.tokenize(entirefile, filesource=infilename) del lexer if be_verbose: sys.stderr.write("# Parsing ...\n") syntree = parser.parsetokens(tokenlist, filesource=infilename) del parser if be_verbose: sys.stderr.write("# Analyzing program semantics ...\n") syntree = semantic.analyze(syntree, filesource=infilename, lenient=lenient) del semantic if backend == None: # If a backend wasn't specified we have nothing left to do. if be_verbose: sys.stderr.write( "# Not compiling %s -- no backend was specified.\n" % infilename) sys.exit(0) if be_verbose: if backend_options == []: sys.stderr.write("# Compiling %s using the %s backend ...\n" %