I'm trying to following along in The Art of Assembly Language, 2nd Edition, but I can't get setup HLA in Windows.
Frankly I'm surprised that the book would reference a language that doesn't even have an MSI installer. Nevertheless, I'm trying to get the code for hlav1 to compile, but I keep getting errors that require endless yak shaving:
hlav1 contains NO readme file. The user is expected to know to look for makefiles.
"makefile" contains comments about nmake usage, and shows several commands involving "cl", implying that Microsoft Visual Studio C++ is a prerequisite for building HLA, which is not stated ANYWHERE.
"makefile" references "bison" as being located in c:\cygwin\bin, implying that Cygwin and Bison are prerequisites for building HLA. This is inconsistent: the overall makefile is designed for MSVC++ users, but still requires GNU tools. Why not convert the whole toolchain to GNU and inform users that MinGW and Bison are prerequisites for compilation?
The makefile references "bison", but also "flex". Why not use the more standard lex & yacc toolchain, which enjoys much more documentation and tutorials?
The makefile's "clean" command uses "delete" to delete files, where "del" is the appropriate DOS term (or "rm" in MinGW/Unix).
When I finally do get the toolchain setup, flex reports an error:
/c/Users/andrew/Desktop/src/hlav1/trunk$ make
gcc -c hlaparse.c
flex -8 -i hla.flx
flex: input rules are too complicated (>= 32000 NFA states)
make: *** [lex.yy.c] Error 1
I want to learn HLA but I can't get the damn thing installed. Does anyone know of a prebuilt MSI or EXE installer for Windows?
Specs:
* Bison 2.4.1
* GCC 4.4.3
* Flex 2.5.35
* MinGW 0.1
* Windows 7 Professional x64
* MacBook Pro 2009