Committed initial source files. asmlint.pl has NOTHING in it yet. Just a shell.
Sample code is my old code from CSE 30.


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@2 95607343-5b32-0410-8de2-c730a8ef6fd9
Dumped asmlint.pl, added asmlint.py and required PLY lib. Parsing of very
simple assembly files works. Torrent of debug output.


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@3 95607343-5b32-0410-8de2-c730a8ef6fd9
Shuffled around command line entry point stuff.


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@4 95607343-5b32-0410-8de2-c730a8ef6fd9
Added floats, and added full support for chars and strings (escapes and
whatnot). Added unit tests.


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@5 95607343-5b32-0410-8de2-c730a8ef6fd9
Move register regex to variable, in case we start accepting invalid regex names
and throwing warnings.


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@6 95607343-5b32-0410-8de2-c730a8ef6fd9
Added more ideas for things to catch, minorly cleaned up main().


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@7 95607343-5b32-0410-8de2-c730a8ef6fd9
Print line number when a parse error occurs.
Add lexer tolken for 'annulled' and change opcode state to include anulled branches


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@8 95607343-5b32-0410-8de2-c730a8ef6fd9
I'm not mjk, I'm mkelly.


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@9 95607343-5b32-0410-8de2-c730a8ef6fd9
- Added tests/data/* for simple input files designed to test one type of
  statement. (They aren't valid.)
- Added some basic recognition of assembler constants.
- Added new ideas for errors to check for.
- Sorted list of terminals by name. Didn't do functions.
- Started assembling a sort of parse tree in the most basic way possible (list
  of production name and its operands). OMG IT LOOKS LIKE LISP!!! (I had an
  epiphany when I saw that, even though I theoretically knew it already. Erik
  had to listen to me rave about it for a few minutes.)
- Misc little things.


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@10 95607343-5b32-0410-8de2-c730a8ef6fd9
Improve plist printing


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@11 95607343-5b32-0410-8de2-c730a8ef6fd9
- Removed p_lines because it's unnecessary and clutters parse tree.
- Made p_error not die when p = None.
- Let p_line = None to allow for t_* rules that return nothing. It's sort of
  ugly. There's probably a way around this.

Time to SLEEP...


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@12 95607343-5b32-0410-8de2-c730a8ef6fd9
FIX REGRESSION. Add p_lines back in. No time to investigate tonight.


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@13 95607343-5b32-0410-8de2-c730a8ef6fd9
- Cleared up the p_line/p_lines thing once and for all. Apparently, EVERY LINE
  needs to resolve to the start symbol. Thus:
  * We need empty p_lines for blank lines in the file and block comments (which
    are effectively blank lines followed by a single BLOCK_COMMENT token).
  * We need multiple p_lines per physical file line to accomodate things like a
    label, a command, and a comment all on one line.
- Cleaned up the p_operand_list thing a bit (they're now binary trees), at the
  expense of special-casing p_command with no arguments. I think this way is
  better.


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@14 95607343-5b32-0410-8de2-c730a8ef6fd9
- Refactored asmlint.py: moved all parsing stuff to asm_parser.py, and kept
  only command-line interface stuff in asmlint.py.
- Added lots of simple data files
- Some clearer error reporting, so I know when to look for lex or yacc errors.

Getting closer to having simple regression tests, which I want badly.

asm_parser.py is still a mess, because I'm not 100% solid on python's scoping
rules, and what PLY wants in the file's global scope.


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@15 95607343-5b32-0410-8de2-c730a8ef6fd9
- Updated unit tests to run after asmlint --> asm_parser package change.
- split "Errors to catch" list off into README
- corrected file headers


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@16 95607343-5b32-0410-8de2-c730a8ef6fd9
* Pull the running the parser out of main() and put into into run() in asmlint.py.
* Allow the parser to be ran multiple times by calling an init_parser() method first.  (This might not be the best way to do this)
* Add a unit test for running a single line of assembly through the parser.  Made test cases for the single line files in tests/data.


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@17 95607343-5b32-0410-8de2-c730a8ef6fd9
Added 'verbosity' flag to both asmlint.py and testrunner.py. Defaults to 2
(full debug) in asmlint, and -1 (totally quiet) on testrunner.


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@20 95607343-5b32-0410-8de2-c730a8ef6fd9
Made TestRegexes obey testrunner's verbosity flag.


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@21 95607343-5b32-0410-8de2-c730a8ef6fd9
Add tests from sample files that we need to pass:
cmp     %l5, NUM_OF_BANKS*4
set     0x80000000, %l3
ld      [%i0 + %o0], %l0
A=0x41


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@22 95607343-5b32-0410-8de2-c730a8ef6fd9
Allow hex integers.  Octal is given for free.


git-svn-id: file:///home/mkelly/bak/balin-svn/asmlint.repo/trunk@23 95607343-5b32-0410-8de2-c730a8ef6fd9