Esempio 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()
Esempio 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()
Esempio n. 3
0
                if infilename == "<stdin>":
                    input_program_source = "the standard input device"
                else:
                    input_program_source = infilename
                sys.stderr.write("# Reading a coNCePTuaL program from %s ...\n" % input_program_source)
            if infilename == "<stdin>":
                entirefile = sys.stdin.read()
            else:
                infile = open(infilename)
                entirefile = infile.read()
                infile.close()
        except IOError, (errno, strerror):
            errmsg.error_fatal("unable to read from %s (%s)" % (infilename, strerror))

    # Instantiate a lexer, parser, and code generator.
    lexer = NCPTL_Lexer()
    parser = NCPTL_Parser(lexer)
    semantic = NCPTL_Semantic()
    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
Esempio n. 4
0
 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
Esempio n. 5
0
 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
Esempio n. 6
0
                    input_program_source = infilename
                sys.stderr.write(
                    "# Reading a coNCePTuaL program from %s ...\n" %
                    input_program_source)
            if infilename == "<stdin>":
                entirefile = sys.stdin.read()
            else:
                infile = open(infilename)
                entirefile = infile.read()
                infile.close()
        except IOError, (errno, strerror):
            errmsg.error_fatal("unable to read from %s (%s)" %
                               (infilename, strerror))

    # Instantiate a lexer, parser, and code generator.
    lexer = NCPTL_Lexer()
    parser = NCPTL_Parser(lexer)
    semantic = NCPTL_Semantic()
    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