Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
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()
Ejemplo n.º 3
0
    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:
Ejemplo n.º 4
0
    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" %