Пример #1
0
def toNumber(args,env):
    if len(args) != 1:
        raise ArgumentError
    for item in NI.interpret(args[0], env):
        if ((not item in NI.map_num) and item != u'.' and item != u'-'):
            raise NotANumber
    return (NI.interpret(args[0], env))
Пример #2
0
def replaceString(args, env):
    if len(args) != 3:
        raise ArgumentError
    s = NI.interpret(args[0], env)
    os = NI.interpret(args[1], env)
    ns = NI.interpret(args[2], env)
    if type(s) != type(u'ल') \
        or type(u'ल') != type(os)\
        or type(ns) != type(u'ल'):
        raise ArgumentError
    return s.replace(os, ns)
Пример #3
0
def breakString(args, env):
    if (len(args) != 2):
        raise ArgumentError

    string = NI.interpret(args[0], env)
    pattern = NI.interpret(args[1], env)

    # type checking we accept only unicode string
    if type(string) != type(u'ल') or type(u'ल') != type(pattern):
        raise ArgumentError

    return string.split(pattern)
Пример #4
0
 def RunProgram(self, e):
     try:
         input = self.tc2.GetValue()
         lexer = lex.lex(module=NepL)
         parser = yacc.yacc(module=NepP)
         ast = parser.parse(input, lexer=lexer)
         #print ast
         self.tc3.SetValue('')
         self.running = True
         NepI.interpret(ast, None, self)
         NepI._envclear()
     except KeyboardInterrupt, e:
         self.tc3.SetValue(self.tc3.GetValue() + u"\nबन्द गरियो\n")
Пример #5
0
 def RunProgram(self, e):
     try:
         input = self.tc2.GetValue()
         lexer = lex.lex(module=NepL)
         parser = yacc.yacc(module=NepP)
         ast = parser.parse(input, lexer=lexer)
         #print ast
         self.tc3.SetValue('')
         self.running = True
         NepI.interpret(ast,None,self)
         NepI._envclear()
     except KeyboardInterrupt,e:
         self.tc3.SetValue(self.tc3.GetValue() + u"\nबन्द गरियो\n")
Пример #6
0
def writefileln(args,env):
    id = args[0]
    file = NI.env_lookup(id,env)
    for items in args[1]:
        file.write(NI.interpret(items,env))
    file.write(u"\n")
    return
Пример #7
0
def writefile(args,env):
    id = args[0]
    file = NI.env_lookup(id,env)
    for items in args[1]:
        a = NI.interpret(items,env)
        file.write(a)
    return
Пример #8
0
def isNumber(args,env):
    if len(args) != 1:
        raise ArgumentError
    for item in NI.interpret(args[0], env):
        if ((not item in NI.map_num) and item != u'.' and item != u'-'):
            return u'०'
    return u'१'
Пример #9
0
def openfile(args,env):
    filename = NI.interpret(args[0],env)
    mode = NI.interpret(args[1],env)
    if mode == u'लेख्न':
        return codecs.open(filename,"w",encoding="UTF8")
    elif mode == u'पढ्न':
        if not os.path.exists(filename):
            raise IOError
            #return a generator, then we'll just do writes

        #return the file, but also save the generator so as to use it later
        file = codecs.open(filename,"r",encoding="UTF8")
        filename += u"generator"
        gen = (i for i in file.readlines())
        return file,gen

    elif mode == u'जोड्न':
        return codecs.open(filename,"a",encoding="UTF8")
Пример #10
0
def initgraphics(args,env):
    root = Tk()
    if len(args) < 3:
        raise ArgumentError()

    name = NI.interpret(args[0],env)
    name = name.encode('UTF8')
    height = int(NI.to_ascii(NI.interpret(args[1],env)))
    width = int(NI.to_ascii(NI.interpret(args[2],env)))
    root.title(name)
    root.configure(height=height, width=width)  #set width and height
    root.resizable(0,0)                         #disable resizing
    canvas = Canvas(root,width=width,height=height)
    canvas.pack(fill='both')

    #hide the windows
    root.withdraw()
    root.bind("<Key>",keyboardhandler)
    return root,canvas
Пример #11
0
def findString(args, env):
    if (len(args) < 2 or len(args) > 4):
        raise ArgumentError
    string = NI.interpret(args[0], env)
    pattern = NI.interpret(args[1], env)
    begin = (len(args)>2) and NI.interpret(args[2], env) or u'०'
    end =   (len(args)>3) and NI.interpret(args[3], env) or u'०'

    if type(string) != type(u'ल') \
       or type(u'ल') != type(pattern) \
       or type(u'ल') != type(pattern) \
        or type(u'ल') != type(pattern):
        raise ArgumentError

    begin = int(NI.to_ascii(begin))
    end = int(NI.to_ascii(end))
    
    if (end != 0):
        return NI.get_key_from_value(NI.map_num, string.find(pattern, begin, end))
    return NI.to_unicode(string.find(pattern, begin))
Пример #12
0
def drawgraphics(args,env):
    interpreted_args = [NI.env_lookup(args[0],env)]
    args = args[1:] #discard the root/canvas info
    for arg in args:
        if isinstance(arg,tuple) or isinstance(arg,list):
            interpreted_args.append(NI.interpret(arg))
        else:
            interpreted_args.append(arg)
    if interpreted_args[1] == u"गोलो":
        drawcircle(interpreted_args)
    elif interpreted_args[1] == u"कोठा":
        drawrectangle(interpreted_args)
    elif interpreted_args[1] == u"लाइन":
        drawline(interpreted_args)
    elif interpreted_args[1] == u"डट":
        drawpoint(interpreted_args)
    elif interpreted_args[1] == u"शब्द":
        drawtext(interpreted_args)
    return
Пример #13
0
def joinString(args, env):
    return ''.join([NI.interpret(args[0], env), NI.interpret(args[1], env)])
Пример #14
0
def squareRoot(args, env):
    if len(args) != 1:
        raise ArgumentError
    return NI.to_unicode(math.sqrt(NI.to_ascii(NI.interpret(args[0], env))))
Пример #15
0
def trimString(args,env):
    if len(args) != 1:
        raise ArgumentError
    return NI.interpret(args[0]).strip(" ")
Пример #16
0
def count(args, env):
    # if (!args) raise ArgumentError
    if (len(args) != 1):
        raise ArgumentError
    return NI.to_unicode(len(NI.interpret(args[0],env)))