<?xml version="1.0" encoding="UTF-8"?>
<Diagram>
  <ID>JAVA</ID>
  <OriginalElement />
  <nodes>
    <node x="1230.0784315871401" y="216.0">TestInstruction</node>
    <node x="1725.4796536796537" y="798.0">Scanner</node>
    <node x="1683.4130174132983" y="900.0">TestScanner</node>
    <node x="1153.7452684955495" y="1042.0">TestParserMnemonics</node>
    <node x="1935.4884940901793" y="644.0">Reader</node>
    <node x="1575.845128654118" y="610.0">Token</node>
    <node x="1149.4534315871401" y="507.0">TestLineStatement</node>
    <node x="295.6452684955492" y="507.0">ISymbolTable</node>
    <node x="1377.311826937108" y="507.0">TestPosition</node>
    <node x="1061.7034315871401" y="80.0">Instruction</node>
    <node x="1065.7034315871401" y="0.0">IInstruction</node>
    <node x="993.95343158714" y="296.0">LineStatement</node>
    <node x="1705.9884940901793" y="296.0">TokenType</node>
    <node x="154.6452684955492" y="330.0">IMnemonic</node>
    <node x="626.4952684955493" y="1042.0">TestCodeGenerator</node>
    <node x="1598.454684079965" y="507.0">IToken</node>
    <node x="38.0" y="1117.0">Test</node>
    <node x="153.6452684955492" y="484.0">Mnemonic</node>
    <node x="726.6320030157116" y="507.0">IInterRep</node>
    <node x="719.9750000000001" y="632.0">InterRep</node>
    <node x="1546.9884940901793" y="798.0">TestToken</node>
    <node x="1788.5594143684036" y="644.0">IScanner</node>
    <node x="1418.0784315871401" y="216.0">IPosition</node>
    <node x="1523.9884940901793" y="307.0">Position</node>
    <node x="0.0" y="1243.0">aunit</node>
    <node x="1943.4884940901793" y="798.0">TestReader</node>
    <node x="164.0" y="632.0">SymbolTable</node>
    <node x="451.3697298020338" y="900.0">CodeGenerator</node>
    <node x="984.45343158714" y="798.0">TestInterRep</node>
    <node x="0.0" y="644.0">TestMnemonic</node>
    <node x="1050.7452684955495" y="888.0">Parser</node>
    <node x="492.47500000000014" y="798.0">ICodeGenerator</node>
    <node x="933.7452684955495" y="1042.0">TestParserGenerates</node>
    <node x="1012.45343158714" y="216.0">ILineStatement</node>
    <node x="474.49526849554934" y="1042.0">Assembler</node>
    <node x="163.75" y="798.0">TestSymbolTable</node>
    <node x="1931.4884940901793" y="507.0">IReader</node>
    <node x="860.45343158714" y="798.0">IParser</node>
  </nodes>
  <notes />
  <edges>
    <edge source="TestCodeGenerator" target="Parser">
      <point x="73.59999999999991" y="-15.0" />
      <point x="792.0952684955492" y="1002.0" />
      <point x="1094.9952684955495" y="1002.0" />
      <point x="-44.25" y="27.0" />
    </edge>
    <edge source="Token" target="Position">
      <point x="-58.0" y="-49.0" />
      <point x="1590.345128654118" y="590.0" />
      <point x="1555.061826937108" y="590.0" />
      <point x="1555.061826937108" y="444.0" />
      <point x="1604.9884940901793" y="444.0" />
      <point x="0.0" y="38.0" />
    </edge>
    <edge source="ILineStatement" target="Instruction">
      <point x="0.0" y="-15.0" />
      <point x="1092.4534315871401" y="196.0" />
      <point x="1125.0367649204732" y="196.0" />
      <point x="-12.666666666666742" y="38.0" />
    </edge>
    <edge source="TestScanner" target="Scanner">
      <point x="34.0" y="-15.0" />
      <point x="1785.4130174132983" y="868.0" />
      <point x="1803.4796536796537" y="868.0" />
      <point x="26.0" y="15.0" />
    </edge>
    <edge source="TestParserGenerates" target="Parser">
      <point x="0.0" y="-15.0" />
      <point x="1033.7452684955495" y="1012.0" />
      <point x="1124.4952684955495" y="1012.0" />
      <point x="-14.75" y="27.0" />
    </edge>
    <edge source="Reader" target="IReader">
      <point x="0.0" y="-15.0" />
      <point x="0.0" y="15.0" />
    </edge>
    <edge source="TestMnemonic" target="Mnemonic">
      <point x="-36.00000000000023" y="-15.0" />
      <point x="35.99999999999977" y="580.0" />
      <point x="165.84526849554925" y="580.0" />
      <point x="-48.799999999999955" y="38.0" />
    </edge>
    <edge source="TestInterRep" target="LineStatement">
      <point x="54.0" y="-15.0" />
      <point x="1110.4534315871401" y="778.0" />
      <point x="1100.269729802034" y="778.0" />
      <point x="1100.269729802034" y="464.0" />
      <point x="1103.8625224962311" y="464.0" />
      <point x="16.90909090909099" y="49.0" />
    </edge>
    <edge source="IInterRep" target="LineStatement">
      <point x="0.0" y="-15.0" />
      <point x="786.6320030157116" y="444.0" />
      <point x="1036.2261588598672" y="444.0" />
      <point x="-50.72727272727275" y="49.0" />
    </edge>
    <edge source="TestParserMnemonics" target="Parser">
      <point x="-50.0" y="-15.0" />
      <point x="1203.7452684955495" y="1022.0" />
      <point x="1183.4952684955495" y="1022.0" />
      <point x="44.25" y="27.0" />
    </edge>
    <edge source="InterRep" target="LineStatement">
      <point x="74.0" y="-27.0" />
      <point x="904.9750000000001" y="590.0" />
      <point x="898.4022715112608" y="590.0" />
      <point x="898.4022715112608" y="464.0" />
      <point x="1070.0443406780491" y="464.0" />
      <point x="-16.90909090909099" y="49.0" />
    </edge>
    <edge source="LineStatement" target="Instruction">
      <point x="-23.25" y="-49.0" />
      <point x="1063.7034315871401" y="266.0" />
      <point x="1001.95343158714" y="266.0" />
      <point x="1001.95343158714" y="186.0" />
      <point x="1099.7034315871401" y="186.0" />
      <point x="-38.0" y="38.0" />
    </edge>
    <edge source="Scanner" target="Position">
      <point x="-8.666666666666742" y="-15.0" />
      <point x="1768.812987012987" y="728.0" />
      <point x="1731.345128654118" y="728.0" />
      <point x="1731.345128654118" y="424.0" />
      <point x="1674.4170655187509" y="424.0" />
      <point x="69.42857142857144" y="38.0" />
    </edge>
    <edge source="TestPosition" target="Position">
      <point x="36.0" y="-15.0" />
      <point x="1485.311826937108" y="414.0" />
      <point x="1535.5599226616077" y="414.0" />
      <point x="-69.42857142857144" y="38.0" />
    </edge>
    <edge source="CodeGenerator" target="LineStatement">
      <point x="-19.0" y="-15.0" />
      <point x="508.3697298020338" y="868.0" />
      <point x="481.97500000000014" y="868.0" />
      <point x="481.97500000000014" y="424.0" />
      <point x="1002.4079770416855" y="424.0" />
      <point x="-84.5454545454545" y="49.0" />
    </edge>
    <edge source="Scanner" target="Token">
      <point x="-43.333333333333314" y="-15.0" />
      <point x="1734.1463203463204" y="748.0" />
      <point x="1684.595128654118" y="748.0" />
      <point x="36.25" y="49.0" />
    </edge>
    <edge source="IToken" target="Position">
      <point x="-24.0" y="-15.0" />
      <point x="1622.454684079965" y="464.0" />
      <point x="1651.2742083758935" y="464.0" />
      <point x="46.285714285714334" y="38.0" />
    </edge>
    <edge source="Assembler" target="SymbolTable">
      <point x="-45.0" y="-15.0" />
      <point x="489.49526849554934" y="1022.0" />
      <point x="153.25" y="1022.0" />
      <point x="153.25" y="778.0" />
      <point x="186.5" y="778.0" />
      <point x="-112.5" y="27.0" />
    </edge>
    <edge source="Assembler" target="CodeGenerator">
      <point x="-15.0" y="-15.0" />
      <point x="519.4952684955493" y="1012.0" />
      <point x="489.3697298020338" y="1012.0" />
      <point x="-38.0" y="15.0" />
    </edge>
    <edge source="Scanner" target="TokenType">
      <point x="26.0" y="-15.0" />
      <point x="1803.4796536796537" y="768.0" />
      <point x="1911.0594143684036" y="768.0" />
      <point x="1911.0594143684036" y="464.0" />
      <point x="1813.9884940901793" y="464.0" />
      <point x="48.0" y="49.0" />
    </edge>
    <edge source="TestSymbolTable" target="SymbolTable">
      <point x="-42.0" y="-15.0" />
      <point x="205.75" y="778.0" />
      <point x="231.5" y="778.0" />
      <point x="-67.5" y="27.0" />
    </edge>
    <edge source="Parser" target="InterRep">
      <point x="-75.85714285714289" y="-27.0" />
      <point x="1063.3881256384066" y="868.0" />
      <point x="838.95343158714" y="868.0" />
      <point x="838.95343158714" y="778.0" />
      <point x="842.075" y="778.0" />
      <point x="11.099999999999909" y="27.0" />
    </edge>
    <edge source="Instruction" target="IInstruction">
      <point x="0.0" y="-38.0" />
      <point x="0.0" y="15.0" />
    </edge>
    <edge source="IToken" target="TokenType">
      <point x="24.0" y="-15.0" />
      <point x="1670.454684079965" y="434.0" />
      <point x="1717.9884940901793" y="434.0" />
      <point x="-48.0" y="49.0" />
    </edge>
    <edge source="Parser" target="Token">
      <point x="50.571428571428555" y="-27.0" />
      <point x="1189.816697066978" y="858.0" />
      <point x="1677.4884940901793" y="858.0" />
      <point x="1677.4884940901793" y="768.0" />
      <point x="1636.2617953207846" y="768.0" />
      <point x="-12.083333333333371" y="49.0" />
    </edge>
    <edge source="TestInstruction" target="Instruction">
      <point x="-42.0" y="-15.0" />
      <point x="1272.0784315871401" y="186.0" />
      <point x="1175.7034315871401" y="186.0" />
      <point x="38.0" y="38.0" />
    </edge>
    <edge source="ICodeGenerator" target="InterRep">
      <point x="40.0" y="-15.0" />
      <point x="612.4750000000001" y="758.0" />
      <point x="731.075" y="758.0" />
      <point x="-99.89999999999998" y="27.0" />
    </edge>
    <edge source="TestToken" target="TokenType">
      <point x="48.0" y="-15.0" />
      <point x="1654.9884940901793" y="778.0" />
      <point x="1753.345128654118" y="778.0" />
      <point x="1753.345128654118" y="464.0" />
      <point x="1789.9884940901793" y="464.0" />
      <point x="24.0" y="49.0" />
    </edge>
    <edge source="TestLineStatement" target="LineStatement">
      <point x="-46.0" y="-15.0" />
      <point x="1195.4534315871401" y="454.0" />
      <point x="1137.6807043144127" y="454.0" />
      <point x="50.72727272727275" y="49.0" />
    </edge>
    <edge source="Scanner" target="Reader">
      <point x="43.33333333333337" y="-15.0" />
      <point x="1820.812987012987" y="778.0" />
      <point x="1959.4884940901793" y="778.0" />
      <point x="-24.0" y="15.0" />
    </edge>
    <edge source="LineStatement" target="ILineStatement">
      <point x="23.25" y="-49.0" />
      <point x="1110.2034315871401" y="276.0" />
      <point x="1092.4534315871401" y="276.0" />
      <point x="0.0" y="15.0" />
    </edge>
    <edge source="Mnemonic" target="IMnemonic">
      <point x="0.0" y="-38.0" />
      <point x="0.0" y="15.0" />
    </edge>
    <edge source="aunit" target="Test">
      <point x="-74.25" y="-27.0" />
      <point x="24.75" y="1218.0" />
      <point x="53.25" y="1218.0" />
      <point x="-45.75" y="38.0" />
    </edge>
    <edge source="Parser" target="IParser">
      <point x="-25.285714285714334" y="-27.0" />
      <point x="1113.959554209835" y="848.0" />
      <point x="912.45343158714" y="848.0" />
      <point x="0.0" y="15.0" />
    </edge>
    <edge source="Parser" target="LineStatement">
      <point x="25.28571428571422" y="-27.0" />
      <point x="1164.5309827812637" y="848.0" />
      <point x="1343.9534315871401" y="848.0" />
      <point x="1343.9534315871401" y="434.0" />
      <point x="1171.4988861325946" y="434.0" />
      <point x="84.5454545454545" y="49.0" />
    </edge>
    <edge source="TestScanner" target="Token">
      <point x="-34.0" y="-15.0" />
      <point x="1717.4130174132983" y="858.0" />
      <point x="1688.4884940901793" y="858.0" />
      <point x="1688.4884940901793" y="758.0" />
      <point x="1660.4284619874513" y="758.0" />
      <point x="12.083333333333371" y="49.0" />
    </edge>
    <edge source="TestParserGenerates" target="InterRep">
      <point x="-66.66666666666674" y="-15.0" />
      <point x="967.0786018288827" y="982.0" />
      <point x="821.8820030157115" y="982.0" />
      <point x="821.8820030157115" y="778.0" />
      <point x="819.875" y="778.0" />
      <point x="-11.100000000000136" y="27.0" />
    </edge>
    <edge source="Position" target="IPosition">
      <point x="0.0" y="-38.0" />
      <point x="1604.9884940901793" y="276.0" />
      <point x="1508.0784315871401" y="276.0" />
      <point x="30.0" y="15.0" />
    </edge>
    <edge source="TestPosition" target="IPosition">
      <point x="-36.0" y="-15.0" />
      <point x="1413.311826937108" y="276.0" />
      <point x="1448.0784315871401" y="276.0" />
      <point x="-30.0" y="15.0" />
    </edge>
    <edge source="ICodeGenerator" target="SymbolTable">
      <point x="-40.0" y="-15.0" />
      <point x="532.4750000000001" y="778.0" />
      <point x="411.5" y="778.0" />
      <point x="112.5" y="27.0" />
    </edge>
    <edge source="Assembler" target="InterRep">
      <point x="15.0" y="-15.0" />
      <point x="549.4952684955493" y="982.0" />
      <point x="738.7250000000001" y="982.0" />
      <point x="738.7250000000001" y="778.0" />
      <point x="775.4750000000001" y="778.0" />
      <point x="-55.5" y="27.0" />
    </edge>
    <edge source="SymbolTable" target="Mnemonic">
      <point x="-101.25" y="-27.0" />
      <point x="197.75" y="590.0" />
      <point x="214.6452684955492" y="590.0" />
      <point x="0.0" y="38.0" />
    </edge>
    <edge source="InterRep" target="IInterRep">
      <point x="-74.0" y="-27.0" />
      <point x="756.9750000000001" y="590.0" />
      <point x="786.6320030157116" y="590.0" />
      <point x="0.0" y="15.0" />
    </edge>
    <edge source="CodeGenerator" target="SymbolTable">
      <point x="-57.0" y="-15.0" />
      <point x="470.3697298020338" y="868.0" />
      <point x="397.53200301571155" y="868.0" />
      <point x="397.53200301571155" y="778.0" />
      <point x="366.5" y="778.0" />
      <point x="67.5" y="27.0" />
    </edge>
    <edge source="TestCodeGenerator" target="SymbolTable">
      <point x="-73.59999999999991" y="-15.0" />
      <point x="644.8952684955494" y="972.0" />
      <point x="342.25" y="972.0" />
      <point x="342.25" y="778.0" />
      <point x="321.5" y="778.0" />
      <point x="22.5" y="27.0" />
    </edge>
    <edge source="SymbolTable" target="ISymbolTable">
      <point x="101.25" y="-27.0" />
      <point x="400.25" y="590.0" />
      <point x="367.6452684955492" y="590.0" />
      <point x="0.0" y="15.0" />
    </edge>
    <edge source="TestCodeGenerator" target="InterRep">
      <point x="36.799999999999955" y="-15.0" />
      <point x="755.2952684955493" y="982.0" />
      <point x="798.0197298020339" y="982.0" />
      <point x="-33.299999999999955" y="27.0" />
    </edge>
    <edge source="TestToken" target="Token">
      <point x="0.0" y="-15.0" />
      <point x="1606.9884940901793" y="758.0" />
      <point x="1587.9284619874513" y="758.0" />
      <point x="-60.416666666666686" y="49.0" />
    </edge>
    <edge source="TestCodeGenerator" target="LineStatement">
      <point x="0.0" y="-15.0" />
      <point x="718.4952684955493" y="972.0" />
      <point x="688.2250000000001" y="972.0" />
      <point x="688.2250000000001" y="434.0" />
      <point x="1019.3170679507764" y="434.0" />
      <point x="-67.63636363636363" y="49.0" />
    </edge>
    <edge source="CodeGenerator" target="InterRep">
      <point x="57.0" y="-15.0" />
      <point x="584.3697298020338" y="868.0" />
      <point x="677.2250000000001" y="868.0" />
      <point x="677.2250000000001" y="768.0" />
      <point x="753.2750000000001" y="768.0" />
      <point x="-77.70000000000005" y="27.0" />
    </edge>
    <edge source="CodeGenerator" target="ICodeGenerator">
      <point x="19.0" y="-15.0" />
      <point x="546.3697298020338" y="868.0" />
      <point x="572.4750000000001" y="868.0" />
      <point x="0.0" y="15.0" />
    </edge>
    <edge source="TestToken" target="Position">
      <point x="-24.0" y="-15.0" />
      <point x="1582.9884940901793" y="768.0" />
      <point x="1542.811826937108" y="768.0" />
      <point x="1542.811826937108" y="434.0" />
      <point x="1581.8456369473222" y="434.0" />
      <point x="-23.14285714285711" y="38.0" />
    </edge>
    <edge source="Parser" target="Scanner">
      <point x="75.85714285714289" y="-27.0" />
      <point x="1215.1024113526923" y="868.0" />
      <point x="1751.4796536796537" y="868.0" />
      <point x="-26.0" y="15.0" />
    </edge>
    <edge source="Scanner" target="IScanner">
      <point x="8.666666666666686" y="-15.0" />
      <point x="1786.1463203463204" y="758.0" />
      <point x="1844.5594143684036" y="758.0" />
      <point x="0.0" y="15.0" />
    </edge>
    <edge source="Assembler" target="Parser">
      <point x="45.0" y="-15.0" />
      <point x="579.4952684955493" y="992.0" />
      <point x="1065.4952684955495" y="992.0" />
      <point x="-73.75" y="27.0" />
    </edge>
    <edge source="TestCodeGenerator" target="CodeGenerator">
      <point x="-36.799999999999955" y="-15.0" />
      <point x="681.6952684955494" y="962.0" />
      <point x="565.3697298020338" y="962.0" />
      <point x="38.0" y="15.0" />
    </edge>
    <edge source="Token" target="IToken">
      <point x="0.0" y="-49.0" />
      <point x="1648.345128654118" y="590.0" />
      <point x="1646.454684079965" y="590.0" />
      <point x="0.0" y="15.0" />
    </edge>
    <edge source="Token" target="TokenType">
      <point x="58.0" y="-49.0" />
      <point x="1706.345128654118" y="590.0" />
      <point x="1742.345128654118" y="590.0" />
      <point x="1742.345128654118" y="454.0" />
      <point x="1765.9884940901793" y="454.0" />
      <point x="0.0" y="49.0" />
    </edge>
    <edge source="IParser" target="InterRep">
      <point x="-1.1368683772161603E-13" y="-15.0" />
      <point x="912.4534315871399" y="778.0" />
      <point x="886.4750000000001" y="778.0" />
      <point x="55.5" y="27.0" />
    </edge>
    <edge source="TestReader" target="Reader">
      <point x="0.0" y="-15.0" />
      <point x="24.0" y="15.0" />
    </edge>
    <edge source="TestInterRep" target="InterRep">
      <point x="-54.0" y="-15.0" />
      <point x="1002.45343158714" y="768.0" />
      <point x="908.6750000000002" y="768.0" />
      <point x="77.70000000000005" y="27.0" />
    </edge>
  </edges>
  <settings layout="Hierarchic Group" zoom="0.8389101338432122" x="1036.0" y="648.5" />
  <SelectedNodes />
  <Categories>
    <Category>Fields</Category>
  </Categories>
  <SCOPE>All</SCOPE>
  <VISIBILITY>private</VISIBILITY>
</Diagram>

