view utils/gen_language.ipynb @ 1:82e82dda442b

alpha version of assembler 'finished' some more documentation and test files added
author james <jb302@eecs.qmul.ac.uk>
date Fri, 06 Dec 2013 23:39:54 +0000
parents
children 2b8eb2c86602
line wrap: on
line source
{
 "metadata": {
  "name": "gen_language"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from pprint import pprint\n",
      "import sys\n",
      "sys.path.append('../assembler')\n",
      "from assembler import *\n",
      "f = open('instruction_set.txt', 'r')\n",
      "lang = first_pass(f)\n",
      "\n",
      "r = open('instruction_table.txt', 'r')\n",
      "r = filter(lambda l: l != '\\n', r.readlines())\n",
      "codes = []\n",
      "for line in r:\n",
      "    codes.append(line.split()[0])\n",
      "    "
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 2
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "mne_syms = []\n",
      "arg_syms = []\n",
      "for line in lang:\n",
      "    mne_syms.append(line[0])\n",
      "    arg_syms.extend(line[1])\n",
      "mne_set = set(mne_syms)\n",
      "arg_set = set(arg_syms)\n",
      "\n",
      "iset = {}\n",
      "for mne in mne_set:\n",
      "    i = 0\n",
      "    valid_args = {}\n",
      "    for line in lang:\n",
      "        if line[0] == mne:\n",
      "            valid_args.update({tuple(line[1]):int(codes[i])})\n",
      "        i = i + 1\n",
      "    iset.update({mne:valid_args})\n",
      "pprint(iset)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}