annotate utils/gen_language.ipynb @ 10:484a6777511b

forgot to hg addremove
author james <jb302@eecs.qmul.ac.uk>
date Sun, 08 Dec 2013 18:43:28 +0000
parents 82e82dda442b
children 2b8eb2c86602
rev   line source
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 }