Urban
URBAN.java
Create Tables
Load Table Data
Create View
RegxVerifier.java
hasDirective()
validDirectiveRegs()
checkLabel()
checkOperands()
genericOpRegs()
check params
hasInstruction()
validInstructionRegs()
checkLabel()
checkOperands()
genericOpRegs()
check params
parseProgram()
parseLine()
hasOperands() && syntaxValid()
parseSymbolParameters()
containsSymbol()
check for equ(e)
external
local
parseNormalParameters()
EX or contains *
ST
parseString()
normal
UrbanAssembler.java
1. loadProgram()
Read Line
verifyLine()
first line
verifyKicko()
last line
verifyEnd()
2. runPass1()
tokenizeLines()
If Syntax Valid
Line.java - tokenizeSource()
Else
Dont
SetUpLc()
Newlc or Kicko
lc = param
else
shouldIncrement()
buildSymbolTable()
line.hasLabel()
Equ(e)
parseExpression()
EXT
parseProgram()
outputTables
ObjectGenerator.java
findBasicInfo()
gets name && start
generateHeader()
generateLinkRecords
generateText
generateFormat() || directiveWord
generateModifictations()
generateEnd()
writeObjectFile()