예제 #1
0
def consoleMode():
    # initialize variables
    reading = False
    line = ''
    stack = list()
    context = dict()
    
    # read from the console
    while True:
        if reading:
            # we are reading a multi-line segment
            cur = sys.stdin.readline()
            if re.match(ENDREAD_STRING, cur) :
                reading = False
                script = Script(line)
                script.execute(stack,context)
            else :
                line = line + cur + '\n'
        else :
            # execute the single line we just read
            line = sys.stdin.readline()
            if re.match(READ_STRING,line) :
                reading = True
                line = ''
            elif re.match(EXIT_STRING,line):
                return
            else :
                script = Script(line)
                script.execute(stack,context)
예제 #2
0
def main():
    VERSION = '1.0.0/0213'
    if len(sys.argv) == 1 :
        consoleMode()
    else :
        outFile = None
        inFile = None
        for i in xrange(1,len(sys.argv)) :
            if sys.argv[i] == '-i' :
                inFile = Script(sys.argv[i+1],True)
            elif sys.argv[i] == '-o' :
                try:
                    outFile = open(sys.argv[i+1],'w')
                except Exception as e :
                    sys.stderr.write('ERROR I cannot open: ' + sys.argv[i+1] +
                                     '\nThe error was:\n')
                    sys.stderr.write(str(e) + '\n')
                    return
                
            elif sys.argv[i] == '--help' :
                sys.stdout.write(
                    "1D5 Version: " + VERSION + "\n" +
                    "The scriptable dice roller.\n"+
                    "Usage: python onedeefive.py [options]\n\n"+
                    "Options:\n"+
                    "-i <file name>\n"+
                    "\tRead input from the specified file.\n\n"+
                    "-o <file name>\n"+
                    "\twrite output to the specified file.\n\n"+
                    "--help\n"+
                    "\tPrint this message.\n"
                    )
        
        if not outFile is None :
            setOutput(outFile)
        
        if inFile is None :
            consoleMode()
        else :
            inFile.execute()