Advertisement
Guest User

Untitled

a guest
Jan 24th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.83 KB | None | 0 0
  1.  
  2. commands = {
  3.     'prt': 0,
  4.     'jmp': 1
  5. }
  6.  
  7. program = """
  8.    prt 202;
  9.    jmp 3;
  10.    prt 101;
  11.    prt 256;
  12.    prt 45;
  13. """
  14. ignore = [chr(10), chr(13), chr(32)]
  15.  
  16.  
  17. def string_copy(str, i, l):
  18.     output = ""
  19.     for char in range(i, i+l):
  20.         output += str[char]
  21.     return output
  22.  
  23.  
  24. # COMPILE TO BYTECODE
  25. tokens = []
  26. values = []
  27. tok = ''
  28. for char in program:
  29.     if char in ignore:
  30.         continue
  31.     if char == ';':
  32.         cmd = string_copy(tok, 0, 3)
  33.         val = string_copy(tok, 3, len(tok)-3)
  34.         tokens.append(commands[cmd])
  35.         values.append(int(val))
  36.         tok = ''
  37.     else:
  38.         tok += char
  39.  
  40.  
  41. i = 0
  42. while i < (len(tokens)):
  43.     if tokens[i] == 0:
  44.         print('prt')
  45.         print(values[i])
  46.     elif tokens[i] == 1:
  47.         i = values[i]-1
  48.     i += 1
  49.  
  50. print(tokens)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement