jb302@1
|
1 {
|
jb302@1
|
2 "metadata": {
|
jb302@1
|
3 "name": "gen_language"
|
jb302@1
|
4 },
|
jb302@1
|
5 "nbformat": 3,
|
jb302@1
|
6 "nbformat_minor": 0,
|
jb302@1
|
7 "worksheets": [
|
jb302@1
|
8 {
|
jb302@1
|
9 "cells": [
|
jb302@1
|
10 {
|
jb302@1
|
11 "cell_type": "code",
|
jb302@1
|
12 "collapsed": false,
|
jb302@1
|
13 "input": [
|
jb302@1
|
14 "from pprint import pprint\n",
|
jb302@1
|
15 "import sys\n",
|
jb302@1
|
16 "sys.path.append('../assembler')\n",
|
jb302@1
|
17 "from assembler import *\n",
|
jb302@1
|
18 "f = open('instruction_set.txt', 'r')\n",
|
jb302@1
|
19 "lang = first_pass(f)\n",
|
jb302@1
|
20 "\n",
|
jb302@1
|
21 "r = open('instruction_table.txt', 'r')\n",
|
jb302@1
|
22 "r = filter(lambda l: l != '\\n', r.readlines())\n",
|
jb302@1
|
23 "codes = []\n",
|
jb302@1
|
24 "for line in r:\n",
|
jb302@1
|
25 " codes.append(line.split()[0])\n",
|
jb302@1
|
26 " "
|
jb302@1
|
27 ],
|
jb302@1
|
28 "language": "python",
|
jb302@1
|
29 "metadata": {},
|
jb302@1
|
30 "outputs": [],
|
jb302@1
|
31 "prompt_number": 2
|
jb302@1
|
32 },
|
jb302@1
|
33 {
|
jb302@1
|
34 "cell_type": "code",
|
jb302@1
|
35 "collapsed": false,
|
jb302@1
|
36 "input": [
|
jb302@1
|
37 "mne_syms = []\n",
|
jb302@1
|
38 "arg_syms = []\n",
|
jb302@1
|
39 "for line in lang:\n",
|
jb302@1
|
40 " mne_syms.append(line[0])\n",
|
jb302@1
|
41 " arg_syms.extend(line[1])\n",
|
jb302@1
|
42 "mne_set = set(mne_syms)\n",
|
jb302@1
|
43 "arg_set = set(arg_syms)\n",
|
jb302@1
|
44 "\n",
|
jb302@1
|
45 "iset = {}\n",
|
jb302@1
|
46 "for mne in mne_set:\n",
|
jb302@1
|
47 " i = 0\n",
|
jb302@1
|
48 " valid_args = {}\n",
|
jb302@1
|
49 " for line in lang:\n",
|
jb302@1
|
50 " if line[0] == mne:\n",
|
jb302@1
|
51 " valid_args.update({tuple(line[1]):int(codes[i])})\n",
|
jb302@1
|
52 " i = i + 1\n",
|
jb302@1
|
53 " iset.update({mne:valid_args})\n",
|
jb302@1
|
54 "pprint(iset)\n"
|
jb302@1
|
55 ],
|
jb302@1
|
56 "language": "python",
|
jb302@1
|
57 "metadata": {},
|
jb302@1
|
58 "outputs": []
|
jb302@1
|
59 }
|
jb302@1
|
60 ],
|
jb302@1
|
61 "metadata": {}
|
jb302@1
|
62 }
|
jb302@1
|
63 ]
|
jb302@1
|
64 } |