MIXAL
Public Types | Static Public Member Functions | List of all members
mixal::Instructions Class Reference

#include <instructions.h>

Public Types

enum  Code {
  INVALID = -1, NOP = 0, ADD = 1, FADD = 1,
  SUB = 2, FSUB = 2, MUL = 3, FMUL = 3,
  DIV = 4, FDIV = 4, NUM = 5, CHAR = 5,
  HLT = 5, SLA = 6, SRA = 6, SLAX = 6,
  SRAX = 6, SLC = 6, SRC = 6, MOVE = 7,
  LDA = 8, LD1 = 9, LD2 = 10, LD3 = 11,
  LD4 = 12, LD5 = 13, LD6 = 14, LDX = 15,
  LDAN = 16, LD1N = 17, LD2N = 18, LD3N = 19,
  LD4N = 20, LD5N = 21, LD6N = 22, LDXN = 23,
  STA = 24, ST1 = 25, ST2 = 26, ST3 = 27,
  ST4 = 28, ST5 = 29, ST6 = 30, STX = 31,
  STJ = 32, STZ = 33, JBUS = 34, IOC = 35,
  IN = 36, OUT = 37, JRED = 38, JMP = 39,
  JSJ = 39, JOV = 39, JNOV = 39, JL = 39,
  JE = 39, JG = 39, JGE = 39, JNE = 39,
  JLE = 39, JAN = 40, JAZ = 40, JAP = 40,
  JANN = 40, JANZ = 40, JANP = 40, J1N = 41,
  J1Z = 41, J1P = 41, J1NN = 41, J1NZ = 41,
  J1NP = 41, J2N = 42, J2Z = 42, J2P = 42,
  J2NN = 42, J2NZ = 42, J2NP = 42, J3N = 43,
  J3Z = 43, J3P = 43, J3NN = 43, J3NZ = 43,
  J3NP = 43, J4N = 44, J4Z = 44, J4P = 44,
  J4NN = 44, J4NZ = 44, J4NP = 44, J5N = 45,
  J5Z = 45, J5P = 45, J5NN = 45, J5NZ = 45,
  J5NP = 45, J6N = 46, J6Z = 46, J6P = 46,
  J6NN = 46, J6NZ = 46, J6NP = 46, JXN = 47,
  JXZ = 47, JXP = 47, JXNN = 47, JXNZ = 47,
  JXNP = 47, INCA = 48, DECA = 48, ENTA = 48,
  ENNA = 48, INC1 = 49, DEC1 = 49, ENT1 = 49,
  ENN1 = 49, INC2 = 50, DEC2 = 50, ENT2 = 50,
  ENN2 = 50, INC3 = 51, DEC3 = 51, ENT3 = 51,
  ENN3 = 51, INC4 = 52, DEC4 = 52, ENT4 = 52,
  ENN4 = 52, INC5 = 53, DEC5 = 53, ENT5 = 53,
  ENN5 = 53, INC6 = 54, DEC6 = 54, ENT6 = 54,
  ENN6 = 54, INCX = 55, DECX = 55, ENTX = 55,
  ENNX = 55, CMPA = 56, FCMP = 56, CMP1 = 57,
  CMP2 = 58, CMP3 = 59, CMP4 = 60, CMP5 = 61,
  CMP6 = 62, CMPX = 63, LAST = 63, PSEUDO = 100,
  EQU = 100, ORIG = 101, CON = 102, ALF = 103,
  END = 104
}
 

Static Public Member Functions

static bool hasArguments (Instructions::Code code)
 
static Instructions::Code getInstructionCode (const std::string &name)
 
static int getDefaultField (const std::string &name)
 
static int getCost (Instructions::Code code, uint8_t field=0)
 

Detailed Description

Instruction type and utilities.

Definition at line 15 of file instructions.h.

Member Function Documentation

◆ getCost()

int mixal::Instructions::getCost ( Instructions::Code  code,
uint8_t  field = 0 
)
static

Get the unit time needed for an instruction.

Definition at line 2045 of file instructions.cpp.

2045  {
2046  switch (code) {
2047  case Instructions::NOP: return 1;
2048  case Instructions::ADD: return 2;
2049  case Instructions::SUB: return 2;
2050  case Instructions::MUL: return 10;
2051  case Instructions::DIV: return 12;
2052  case Instructions::NUM: return 10;
2053  case Instructions::SLA: return 2;
2054  case Instructions::MOVE: return 1 + field * 2;
2055 
2056  case Instructions::LDA: return 2;
2057  case Instructions::LD1: return 2;
2058  case Instructions::LD2: return 2;
2059  case Instructions::LD3: return 2;
2060  case Instructions::LD4: return 2;
2061  case Instructions::LD5: return 2;
2062  case Instructions::LD6: return 2;
2063  case Instructions::LDX: return 2;
2064 
2065  case Instructions::LDAN: return 2;
2066  case Instructions::LD1N: return 2;
2067  case Instructions::LD2N: return 2;
2068  case Instructions::LD3N: return 2;
2069  case Instructions::LD4N: return 2;
2070  case Instructions::LD5N: return 2;
2071  case Instructions::LD6N: return 2;
2072  case Instructions::LDXN: return 2;
2073 
2074  case Instructions::STA: return 2;
2075  case Instructions::ST1: return 2;
2076  case Instructions::ST2: return 2;
2077  case Instructions::ST3: return 2;
2078  case Instructions::ST4: return 2;
2079  case Instructions::ST5: return 2;
2080  case Instructions::ST6: return 2;
2081  case Instructions::STX: return 2;
2082 
2083  case Instructions::STJ: return 2;
2084  case Instructions::STZ: return 2;
2085  case Instructions::JBUS: return 1;
2086  case Instructions::IOC: return 1;
2087  case Instructions::IN: return 1;
2088  case Instructions::OUT: return 1;
2089  case Instructions::JRED: return 1;
2090  case Instructions::JMP: return 1;
2091 
2092  case Instructions::JAN: return 1;
2093  case Instructions::J1N: return 1;
2094  case Instructions::J2N: return 1;
2095  case Instructions::J3N: return 1;
2096  case Instructions::J4N: return 1;
2097  case Instructions::J5N: return 1;
2098  case Instructions::J6N: return 1;
2099  case Instructions::JXN: return 1;
2100 
2101  case Instructions::INCA: return 1;
2102  case Instructions::INC1: return 1;
2103  case Instructions::INC2: return 1;
2104  case Instructions::INC3: return 1;
2105  case Instructions::INC4: return 1;
2106  case Instructions::INC5: return 1;
2107  case Instructions::INC6: return 1;
2108  case Instructions::INCX: return 1;
2109 
2110  case Instructions::CMPA: return 2;
2111  case Instructions::CMP1: return 2;
2112  case Instructions::CMP2: return 2;
2113  case Instructions::CMP3: return 2;
2114  case Instructions::CMP4: return 2;
2115  case Instructions::CMP5: return 2;
2116  case Instructions::CMP6: return 2;
2117  case Instructions::CMPX: return 2;
2118  default: return 0;
2119  }
2120 }

Referenced by mixal::Computer::executeSingle().

◆ getDefaultField()

int mixal::Instructions::getDefaultField ( const std::string &  name)
static

Get default field value from the operation name.

Definition at line 1222 of file instructions.cpp.

1222  {
1223  auto charAt = [&name] (size_t index) -> char {
1224  return index < name.length() ? std::toupper(name[index]) : '#';
1225  };
1226  switch (charAt(0)) {
1227  case 'C':
1228  switch (charAt(1)) {
1229  case 'H':
1230  switch (charAt(2)) {
1231  case 'A':
1232  switch (charAt(3)) {
1233  case 'R':
1234  switch (charAt(4)) {
1235  case '#':
1236  return 1;
1237  }
1238  break;
1239  }
1240  break;
1241  }
1242  break;
1243  }
1244  break;
1245  case 'D':
1246  switch (charAt(1)) {
1247  case 'E':
1248  switch (charAt(2)) {
1249  case 'C':
1250  switch (charAt(3)) {
1251  case '1':
1252  switch (charAt(4)) {
1253  case '#':
1254  return 1;
1255  }
1256  break;
1257  case '2':
1258  switch (charAt(4)) {
1259  case '#':
1260  return 1;
1261  }
1262  break;
1263  case '3':
1264  switch (charAt(4)) {
1265  case '#':
1266  return 1;
1267  }
1268  break;
1269  case '4':
1270  switch (charAt(4)) {
1271  case '#':
1272  return 1;
1273  }
1274  break;
1275  case '5':
1276  switch (charAt(4)) {
1277  case '#':
1278  return 1;
1279  }
1280  break;
1281  case '6':
1282  switch (charAt(4)) {
1283  case '#':
1284  return 1;
1285  }
1286  break;
1287  case 'A':
1288  switch (charAt(4)) {
1289  case '#':
1290  return 1;
1291  }
1292  break;
1293  case 'X':
1294  switch (charAt(4)) {
1295  case '#':
1296  return 1;
1297  }
1298  break;
1299  }
1300  break;
1301  }
1302  break;
1303  }
1304  break;
1305  case 'E':
1306  switch (charAt(1)) {
1307  case 'N':
1308  switch (charAt(2)) {
1309  case 'N':
1310  switch (charAt(3)) {
1311  case '1':
1312  switch (charAt(4)) {
1313  case '#':
1314  return 3;
1315  }
1316  break;
1317  case '2':
1318  switch (charAt(4)) {
1319  case '#':
1320  return 3;
1321  }
1322  break;
1323  case '3':
1324  switch (charAt(4)) {
1325  case '#':
1326  return 3;
1327  }
1328  break;
1329  case '4':
1330  switch (charAt(4)) {
1331  case '#':
1332  return 3;
1333  }
1334  break;
1335  case '5':
1336  switch (charAt(4)) {
1337  case '#':
1338  return 3;
1339  }
1340  break;
1341  case '6':
1342  switch (charAt(4)) {
1343  case '#':
1344  return 3;
1345  }
1346  break;
1347  case 'A':
1348  switch (charAt(4)) {
1349  case '#':
1350  return 3;
1351  }
1352  break;
1353  case 'X':
1354  switch (charAt(4)) {
1355  case '#':
1356  return 3;
1357  }
1358  break;
1359  }
1360  break;
1361  case 'T':
1362  switch (charAt(3)) {
1363  case '1':
1364  switch (charAt(4)) {
1365  case '#':
1366  return 2;
1367  }
1368  break;
1369  case '2':
1370  switch (charAt(4)) {
1371  case '#':
1372  return 2;
1373  }
1374  break;
1375  case '3':
1376  switch (charAt(4)) {
1377  case '#':
1378  return 2;
1379  }
1380  break;
1381  case '4':
1382  switch (charAt(4)) {
1383  case '#':
1384  return 2;
1385  }
1386  break;
1387  case '5':
1388  switch (charAt(4)) {
1389  case '#':
1390  return 2;
1391  }
1392  break;
1393  case '6':
1394  switch (charAt(4)) {
1395  case '#':
1396  return 2;
1397  }
1398  break;
1399  case 'A':
1400  switch (charAt(4)) {
1401  case '#':
1402  return 2;
1403  }
1404  break;
1405  case 'X':
1406  switch (charAt(4)) {
1407  case '#':
1408  return 2;
1409  }
1410  break;
1411  }
1412  break;
1413  }
1414  break;
1415  }
1416  break;
1417  case 'F':
1418  switch (charAt(1)) {
1419  case 'A':
1420  switch (charAt(2)) {
1421  case 'D':
1422  switch (charAt(3)) {
1423  case 'D':
1424  switch (charAt(4)) {
1425  case '#':
1426  return 6;
1427  }
1428  break;
1429  }
1430  break;
1431  }
1432  break;
1433  case 'C':
1434  switch (charAt(2)) {
1435  case 'M':
1436  switch (charAt(3)) {
1437  case 'P':
1438  switch (charAt(4)) {
1439  case '#':
1440  return 6;
1441  }
1442  break;
1443  }
1444  break;
1445  }
1446  break;
1447  case 'D':
1448  switch (charAt(2)) {
1449  case 'I':
1450  switch (charAt(3)) {
1451  case 'V':
1452  switch (charAt(4)) {
1453  case '#':
1454  return 6;
1455  }
1456  break;
1457  }
1458  break;
1459  }
1460  break;
1461  case 'M':
1462  switch (charAt(2)) {
1463  case 'U':
1464  switch (charAt(3)) {
1465  case 'L':
1466  switch (charAt(4)) {
1467  case '#':
1468  return 6;
1469  }
1470  break;
1471  }
1472  break;
1473  }
1474  break;
1475  case 'S':
1476  switch (charAt(2)) {
1477  case 'U':
1478  switch (charAt(3)) {
1479  case 'B':
1480  switch (charAt(4)) {
1481  case '#':
1482  return 6;
1483  }
1484  break;
1485  }
1486  break;
1487  }
1488  break;
1489  }
1490  break;
1491  case 'H':
1492  switch (charAt(1)) {
1493  case 'L':
1494  switch (charAt(2)) {
1495  case 'T':
1496  switch (charAt(3)) {
1497  case '#':
1498  return 2;
1499  }
1500  break;
1501  }
1502  break;
1503  }
1504  break;
1505  case 'I':
1506  switch (charAt(1)) {
1507  case 'N':
1508  switch (charAt(2)) {
1509  case 'C':
1510  switch (charAt(3)) {
1511  case '1':
1512  switch (charAt(4)) {
1513  case '#':
1514  return 0;
1515  }
1516  break;
1517  case '2':
1518  switch (charAt(4)) {
1519  case '#':
1520  return 0;
1521  }
1522  break;
1523  case '3':
1524  switch (charAt(4)) {
1525  case '#':
1526  return 0;
1527  }
1528  break;
1529  case '4':
1530  switch (charAt(4)) {
1531  case '#':
1532  return 0;
1533  }
1534  break;
1535  case '5':
1536  switch (charAt(4)) {
1537  case '#':
1538  return 0;
1539  }
1540  break;
1541  case '6':
1542  switch (charAt(4)) {
1543  case '#':
1544  return 0;
1545  }
1546  break;
1547  case 'A':
1548  switch (charAt(4)) {
1549  case '#':
1550  return 0;
1551  }
1552  break;
1553  case 'X':
1554  switch (charAt(4)) {
1555  case '#':
1556  return 0;
1557  }
1558  break;
1559  }
1560  break;
1561  }
1562  break;
1563  }
1564  break;
1565  case 'J':
1566  switch (charAt(1)) {
1567  case '1':
1568  switch (charAt(2)) {
1569  case 'N':
1570  switch (charAt(3)) {
1571  case '#':
1572  return 0;
1573  case 'N':
1574  switch (charAt(4)) {
1575  case '#':
1576  return 3;
1577  }
1578  break;
1579  case 'P':
1580  switch (charAt(4)) {
1581  case '#':
1582  return 5;
1583  }
1584  break;
1585  case 'Z':
1586  switch (charAt(4)) {
1587  case '#':
1588  return 4;
1589  }
1590  break;
1591  }
1592  break;
1593  case 'P':
1594  switch (charAt(3)) {
1595  case '#':
1596  return 2;
1597  }
1598  break;
1599  case 'Z':
1600  switch (charAt(3)) {
1601  case '#':
1602  return 1;
1603  }
1604  break;
1605  }
1606  break;
1607  case '2':
1608  switch (charAt(2)) {
1609  case 'N':
1610  switch (charAt(3)) {
1611  case '#':
1612  return 0;
1613  case 'N':
1614  switch (charAt(4)) {
1615  case '#':
1616  return 3;
1617  }
1618  break;
1619  case 'P':
1620  switch (charAt(4)) {
1621  case '#':
1622  return 5;
1623  }
1624  break;
1625  case 'Z':
1626  switch (charAt(4)) {
1627  case '#':
1628  return 4;
1629  }
1630  break;
1631  }
1632  break;
1633  case 'P':
1634  switch (charAt(3)) {
1635  case '#':
1636  return 2;
1637  }
1638  break;
1639  case 'Z':
1640  switch (charAt(3)) {
1641  case '#':
1642  return 1;
1643  }
1644  break;
1645  }
1646  break;
1647  case '3':
1648  switch (charAt(2)) {
1649  case 'N':
1650  switch (charAt(3)) {
1651  case '#':
1652  return 0;
1653  case 'N':
1654  switch (charAt(4)) {
1655  case '#':
1656  return 3;
1657  }
1658  break;
1659  case 'P':
1660  switch (charAt(4)) {
1661  case '#':
1662  return 5;
1663  }
1664  break;
1665  case 'Z':
1666  switch (charAt(4)) {
1667  case '#':
1668  return 4;
1669  }
1670  break;
1671  }
1672  break;
1673  case 'P':
1674  switch (charAt(3)) {
1675  case '#':
1676  return 2;
1677  }
1678  break;
1679  case 'Z':
1680  switch (charAt(3)) {
1681  case '#':
1682  return 1;
1683  }
1684  break;
1685  }
1686  break;
1687  case '4':
1688  switch (charAt(2)) {
1689  case 'N':
1690  switch (charAt(3)) {
1691  case '#':
1692  return 0;
1693  case 'N':
1694  switch (charAt(4)) {
1695  case '#':
1696  return 3;
1697  }
1698  break;
1699  case 'P':
1700  switch (charAt(4)) {
1701  case '#':
1702  return 5;
1703  }
1704  break;
1705  case 'Z':
1706  switch (charAt(4)) {
1707  case '#':
1708  return 4;
1709  }
1710  break;
1711  }
1712  break;
1713  case 'P':
1714  switch (charAt(3)) {
1715  case '#':
1716  return 2;
1717  }
1718  break;
1719  case 'Z':
1720  switch (charAt(3)) {
1721  case '#':
1722  return 1;
1723  }
1724  break;
1725  }
1726  break;
1727  case '5':
1728  switch (charAt(2)) {
1729  case 'N':
1730  switch (charAt(3)) {
1731  case '#':
1732  return 0;
1733  case 'N':
1734  switch (charAt(4)) {
1735  case '#':
1736  return 3;
1737  }
1738  break;
1739  case 'P':
1740  switch (charAt(4)) {
1741  case '#':
1742  return 5;
1743  }
1744  break;
1745  case 'Z':
1746  switch (charAt(4)) {
1747  case '#':
1748  return 4;
1749  }
1750  break;
1751  }
1752  break;
1753  case 'P':
1754  switch (charAt(3)) {
1755  case '#':
1756  return 2;
1757  }
1758  break;
1759  case 'Z':
1760  switch (charAt(3)) {
1761  case '#':
1762  return 1;
1763  }
1764  break;
1765  }
1766  break;
1767  case '6':
1768  switch (charAt(2)) {
1769  case 'N':
1770  switch (charAt(3)) {
1771  case '#':
1772  return 0;
1773  case 'N':
1774  switch (charAt(4)) {
1775  case '#':
1776  return 3;
1777  }
1778  break;
1779  case 'P':
1780  switch (charAt(4)) {
1781  case '#':
1782  return 5;
1783  }
1784  break;
1785  case 'Z':
1786  switch (charAt(4)) {
1787  case '#':
1788  return 4;
1789  }
1790  break;
1791  }
1792  break;
1793  case 'P':
1794  switch (charAt(3)) {
1795  case '#':
1796  return 2;
1797  }
1798  break;
1799  case 'Z':
1800  switch (charAt(3)) {
1801  case '#':
1802  return 1;
1803  }
1804  break;
1805  }
1806  break;
1807  case 'A':
1808  switch (charAt(2)) {
1809  case 'N':
1810  switch (charAt(3)) {
1811  case '#':
1812  return 0;
1813  case 'N':
1814  switch (charAt(4)) {
1815  case '#':
1816  return 3;
1817  }
1818  break;
1819  case 'P':
1820  switch (charAt(4)) {
1821  case '#':
1822  return 5;
1823  }
1824  break;
1825  case 'Z':
1826  switch (charAt(4)) {
1827  case '#':
1828  return 4;
1829  }
1830  break;
1831  }
1832  break;
1833  case 'P':
1834  switch (charAt(3)) {
1835  case '#':
1836  return 2;
1837  }
1838  break;
1839  case 'Z':
1840  switch (charAt(3)) {
1841  case '#':
1842  return 1;
1843  }
1844  break;
1845  }
1846  break;
1847  case 'E':
1848  switch (charAt(2)) {
1849  case '#':
1850  return 5;
1851  }
1852  break;
1853  case 'G':
1854  switch (charAt(2)) {
1855  case '#':
1856  return 6;
1857  case 'E':
1858  switch (charAt(3)) {
1859  case '#':
1860  return 7;
1861  }
1862  break;
1863  }
1864  break;
1865  case 'L':
1866  switch (charAt(2)) {
1867  case '#':
1868  return 4;
1869  case 'E':
1870  switch (charAt(3)) {
1871  case '#':
1872  return 9;
1873  }
1874  break;
1875  }
1876  break;
1877  case 'M':
1878  switch (charAt(2)) {
1879  case 'P':
1880  switch (charAt(3)) {
1881  case '#':
1882  return 0;
1883  }
1884  break;
1885  }
1886  break;
1887  case 'N':
1888  switch (charAt(2)) {
1889  case 'E':
1890  switch (charAt(3)) {
1891  case '#':
1892  return 8;
1893  }
1894  break;
1895  case 'O':
1896  switch (charAt(3)) {
1897  case 'V':
1898  switch (charAt(4)) {
1899  case '#':
1900  return 3;
1901  }
1902  break;
1903  }
1904  break;
1905  }
1906  break;
1907  case 'O':
1908  switch (charAt(2)) {
1909  case 'V':
1910  switch (charAt(3)) {
1911  case '#':
1912  return 2;
1913  }
1914  break;
1915  }
1916  break;
1917  case 'S':
1918  switch (charAt(2)) {
1919  case 'J':
1920  switch (charAt(3)) {
1921  case '#':
1922  return 1;
1923  }
1924  break;
1925  }
1926  break;
1927  case 'X':
1928  switch (charAt(2)) {
1929  case 'N':
1930  switch (charAt(3)) {
1931  case '#':
1932  return 0;
1933  case 'N':
1934  switch (charAt(4)) {
1935  case '#':
1936  return 3;
1937  }
1938  break;
1939  case 'P':
1940  switch (charAt(4)) {
1941  case '#':
1942  return 5;
1943  }
1944  break;
1945  case 'Z':
1946  switch (charAt(4)) {
1947  case '#':
1948  return 4;
1949  }
1950  break;
1951  }
1952  break;
1953  case 'P':
1954  switch (charAt(3)) {
1955  case '#':
1956  return 2;
1957  }
1958  break;
1959  case 'Z':
1960  switch (charAt(3)) {
1961  case '#':
1962  return 1;
1963  }
1964  break;
1965  }
1966  break;
1967  }
1968  break;
1969  case 'N':
1970  switch (charAt(1)) {
1971  case 'U':
1972  switch (charAt(2)) {
1973  case 'M':
1974  switch (charAt(3)) {
1975  case '#':
1976  return 0;
1977  }
1978  break;
1979  }
1980  break;
1981  }
1982  break;
1983  case 'S':
1984  switch (charAt(1)) {
1985  case 'L':
1986  switch (charAt(2)) {
1987  case 'A':
1988  switch (charAt(3)) {
1989  case '#':
1990  return 0;
1991  case 'X':
1992  switch (charAt(4)) {
1993  case '#':
1994  return 2;
1995  }
1996  break;
1997  }
1998  break;
1999  case 'C':
2000  switch (charAt(3)) {
2001  case '#':
2002  return 4;
2003  }
2004  break;
2005  }
2006  break;
2007  case 'R':
2008  switch (charAt(2)) {
2009  case 'A':
2010  switch (charAt(3)) {
2011  case '#':
2012  return 1;
2013  case 'X':
2014  switch (charAt(4)) {
2015  case '#':
2016  return 3;
2017  }
2018  break;
2019  }
2020  break;
2021  case 'C':
2022  switch (charAt(3)) {
2023  case '#':
2024  return 5;
2025  }
2026  break;
2027  }
2028  break;
2029  case 'T':
2030  switch (charAt(2)) {
2031  case 'J':
2032  switch (charAt(3)) {
2033  case '#':
2034  return 2;
2035  }
2036  break;
2037  }
2038  break;
2039  }
2040  break;
2041  }
2042  return -1;
2043 }

Referenced by mixal::Parser::parseLine().

◆ getInstructionCode()

Instructions::Code mixal::Instructions::getInstructionCode ( const std::string &  name)
static

The the type from the name of the operation.

Definition at line 9 of file instructions.cpp.

9  {
10  auto charAt = [&name] (size_t index) -> char {
11  return index < name.length() ? std::toupper(name[index]) : '#';
12  };
13  switch (charAt(0)) {
14  case 'A':
15  switch (charAt(1)) {
16  case 'D':
17  switch (charAt(2)) {
18  case 'D':
19  switch (charAt(3)) {
20  case '#':
21  return Instructions::ADD;
22  }
23  break;
24  }
25  break;
26  case 'L':
27  switch (charAt(2)) {
28  case 'F':
29  switch (charAt(3)) {
30  case '#':
31  return Instructions::ALF;
32  }
33  break;
34  }
35  break;
36  }
37  break;
38  case 'C':
39  switch (charAt(1)) {
40  case 'H':
41  switch (charAt(2)) {
42  case 'A':
43  switch (charAt(3)) {
44  case 'R':
45  switch (charAt(4)) {
46  case '#':
47  return Instructions::CHAR;
48  }
49  break;
50  }
51  break;
52  }
53  break;
54  case 'M':
55  switch (charAt(2)) {
56  case 'P':
57  switch (charAt(3)) {
58  case '1':
59  switch (charAt(4)) {
60  case '#':
61  return Instructions::CMP1;
62  }
63  break;
64  case '2':
65  switch (charAt(4)) {
66  case '#':
67  return Instructions::CMP2;
68  }
69  break;
70  case '3':
71  switch (charAt(4)) {
72  case '#':
73  return Instructions::CMP3;
74  }
75  break;
76  case '4':
77  switch (charAt(4)) {
78  case '#':
79  return Instructions::CMP4;
80  }
81  break;
82  case '5':
83  switch (charAt(4)) {
84  case '#':
85  return Instructions::CMP5;
86  }
87  break;
88  case '6':
89  switch (charAt(4)) {
90  case '#':
91  return Instructions::CMP6;
92  }
93  break;
94  case 'A':
95  switch (charAt(4)) {
96  case '#':
97  return Instructions::CMPA;
98  }
99  break;
100  case 'X':
101  switch (charAt(4)) {
102  case '#':
103  return Instructions::CMPX;
104  }
105  break;
106  }
107  break;
108  }
109  break;
110  case 'O':
111  switch (charAt(2)) {
112  case 'N':
113  switch (charAt(3)) {
114  case '#':
115  return Instructions::CON;
116  }
117  break;
118  }
119  break;
120  }
121  break;
122  case 'D':
123  switch (charAt(1)) {
124  case 'E':
125  switch (charAt(2)) {
126  case 'C':
127  switch (charAt(3)) {
128  case '1':
129  switch (charAt(4)) {
130  case '#':
131  return Instructions::DEC1;
132  }
133  break;
134  case '2':
135  switch (charAt(4)) {
136  case '#':
137  return Instructions::DEC2;
138  }
139  break;
140  case '3':
141  switch (charAt(4)) {
142  case '#':
143  return Instructions::DEC3;
144  }
145  break;
146  case '4':
147  switch (charAt(4)) {
148  case '#':
149  return Instructions::DEC4;
150  }
151  break;
152  case '5':
153  switch (charAt(4)) {
154  case '#':
155  return Instructions::DEC5;
156  }
157  break;
158  case '6':
159  switch (charAt(4)) {
160  case '#':
161  return Instructions::DEC6;
162  }
163  break;
164  case 'A':
165  switch (charAt(4)) {
166  case '#':
167  return Instructions::DECA;
168  }
169  break;
170  case 'X':
171  switch (charAt(4)) {
172  case '#':
173  return Instructions::DECX;
174  }
175  break;
176  }
177  break;
178  }
179  break;
180  case 'I':
181  switch (charAt(2)) {
182  case 'V':
183  switch (charAt(3)) {
184  case '#':
185  return Instructions::DIV;
186  }
187  break;
188  }
189  break;
190  }
191  break;
192  case 'E':
193  switch (charAt(1)) {
194  case 'N':
195  switch (charAt(2)) {
196  case 'D':
197  switch (charAt(3)) {
198  case '#':
199  return Instructions::END;
200  }
201  break;
202  case 'N':
203  switch (charAt(3)) {
204  case '1':
205  switch (charAt(4)) {
206  case '#':
207  return Instructions::ENN1;
208  }
209  break;
210  case '2':
211  switch (charAt(4)) {
212  case '#':
213  return Instructions::ENN2;
214  }
215  break;
216  case '3':
217  switch (charAt(4)) {
218  case '#':
219  return Instructions::ENN3;
220  }
221  break;
222  case '4':
223  switch (charAt(4)) {
224  case '#':
225  return Instructions::ENN4;
226  }
227  break;
228  case '5':
229  switch (charAt(4)) {
230  case '#':
231  return Instructions::ENN5;
232  }
233  break;
234  case '6':
235  switch (charAt(4)) {
236  case '#':
237  return Instructions::ENN6;
238  }
239  break;
240  case 'A':
241  switch (charAt(4)) {
242  case '#':
243  return Instructions::ENNA;
244  }
245  break;
246  case 'X':
247  switch (charAt(4)) {
248  case '#':
249  return Instructions::ENNX;
250  }
251  break;
252  }
253  break;
254  case 'T':
255  switch (charAt(3)) {
256  case '1':
257  switch (charAt(4)) {
258  case '#':
259  return Instructions::ENT1;
260  }
261  break;
262  case '2':
263  switch (charAt(4)) {
264  case '#':
265  return Instructions::ENT2;
266  }
267  break;
268  case '3':
269  switch (charAt(4)) {
270  case '#':
271  return Instructions::ENT3;
272  }
273  break;
274  case '4':
275  switch (charAt(4)) {
276  case '#':
277  return Instructions::ENT4;
278  }
279  break;
280  case '5':
281  switch (charAt(4)) {
282  case '#':
283  return Instructions::ENT5;
284  }
285  break;
286  case '6':
287  switch (charAt(4)) {
288  case '#':
289  return Instructions::ENT6;
290  }
291  break;
292  case 'A':
293  switch (charAt(4)) {
294  case '#':
295  return Instructions::ENTA;
296  }
297  break;
298  case 'X':
299  switch (charAt(4)) {
300  case '#':
301  return Instructions::ENTX;
302  }
303  break;
304  }
305  break;
306  }
307  break;
308  case 'Q':
309  switch (charAt(2)) {
310  case 'U':
311  switch (charAt(3)) {
312  case '#':
313  return Instructions::EQU;
314  }
315  break;
316  }
317  break;
318  }
319  break;
320  case 'F':
321  switch (charAt(1)) {
322  case 'A':
323  switch (charAt(2)) {
324  case 'D':
325  switch (charAt(3)) {
326  case 'D':
327  switch (charAt(4)) {
328  case '#':
329  return Instructions::FADD;
330  }
331  break;
332  }
333  break;
334  }
335  break;
336  case 'C':
337  switch (charAt(2)) {
338  case 'M':
339  switch (charAt(3)) {
340  case 'P':
341  switch (charAt(4)) {
342  case '#':
343  return Instructions::FCMP;
344  }
345  break;
346  }
347  break;
348  }
349  break;
350  case 'D':
351  switch (charAt(2)) {
352  case 'I':
353  switch (charAt(3)) {
354  case 'V':
355  switch (charAt(4)) {
356  case '#':
357  return Instructions::FDIV;
358  }
359  break;
360  }
361  break;
362  }
363  break;
364  case 'M':
365  switch (charAt(2)) {
366  case 'U':
367  switch (charAt(3)) {
368  case 'L':
369  switch (charAt(4)) {
370  case '#':
371  return Instructions::FMUL;
372  }
373  break;
374  }
375  break;
376  }
377  break;
378  case 'S':
379  switch (charAt(2)) {
380  case 'U':
381  switch (charAt(3)) {
382  case 'B':
383  switch (charAt(4)) {
384  case '#':
385  return Instructions::FSUB;
386  }
387  break;
388  }
389  break;
390  }
391  break;
392  }
393  break;
394  case 'H':
395  switch (charAt(1)) {
396  case 'L':
397  switch (charAt(2)) {
398  case 'T':
399  switch (charAt(3)) {
400  case '#':
401  return Instructions::HLT;
402  }
403  break;
404  }
405  break;
406  }
407  break;
408  case 'I':
409  switch (charAt(1)) {
410  case 'N':
411  switch (charAt(2)) {
412  case '#':
413  return Instructions::IN;
414  case 'C':
415  switch (charAt(3)) {
416  case '1':
417  switch (charAt(4)) {
418  case '#':
419  return Instructions::INC1;
420  }
421  break;
422  case '2':
423  switch (charAt(4)) {
424  case '#':
425  return Instructions::INC2;
426  }
427  break;
428  case '3':
429  switch (charAt(4)) {
430  case '#':
431  return Instructions::INC3;
432  }
433  break;
434  case '4':
435  switch (charAt(4)) {
436  case '#':
437  return Instructions::INC4;
438  }
439  break;
440  case '5':
441  switch (charAt(4)) {
442  case '#':
443  return Instructions::INC5;
444  }
445  break;
446  case '6':
447  switch (charAt(4)) {
448  case '#':
449  return Instructions::INC6;
450  }
451  break;
452  case 'A':
453  switch (charAt(4)) {
454  case '#':
455  return Instructions::INCA;
456  }
457  break;
458  case 'X':
459  switch (charAt(4)) {
460  case '#':
461  return Instructions::INCX;
462  }
463  break;
464  }
465  break;
466  }
467  break;
468  case 'O':
469  switch (charAt(2)) {
470  case 'C':
471  switch (charAt(3)) {
472  case '#':
473  return Instructions::IOC;
474  }
475  break;
476  }
477  break;
478  }
479  break;
480  case 'J':
481  switch (charAt(1)) {
482  case '1':
483  switch (charAt(2)) {
484  case 'N':
485  switch (charAt(3)) {
486  case '#':
487  return Instructions::J1N;
488  case 'N':
489  switch (charAt(4)) {
490  case '#':
491  return Instructions::J1NN;
492  }
493  break;
494  case 'P':
495  switch (charAt(4)) {
496  case '#':
497  return Instructions::J1NP;
498  }
499  break;
500  case 'Z':
501  switch (charAt(4)) {
502  case '#':
503  return Instructions::J1NZ;
504  }
505  break;
506  }
507  break;
508  case 'P':
509  switch (charAt(3)) {
510  case '#':
511  return Instructions::J1P;
512  }
513  break;
514  case 'Z':
515  switch (charAt(3)) {
516  case '#':
517  return Instructions::J1Z;
518  }
519  break;
520  }
521  break;
522  case '2':
523  switch (charAt(2)) {
524  case 'N':
525  switch (charAt(3)) {
526  case '#':
527  return Instructions::J2N;
528  case 'N':
529  switch (charAt(4)) {
530  case '#':
531  return Instructions::J2NN;
532  }
533  break;
534  case 'P':
535  switch (charAt(4)) {
536  case '#':
537  return Instructions::J2NP;
538  }
539  break;
540  case 'Z':
541  switch (charAt(4)) {
542  case '#':
543  return Instructions::J2NZ;
544  }
545  break;
546  }
547  break;
548  case 'P':
549  switch (charAt(3)) {
550  case '#':
551  return Instructions::J2P;
552  }
553  break;
554  case 'Z':
555  switch (charAt(3)) {
556  case '#':
557  return Instructions::J2Z;
558  }
559  break;
560  }
561  break;
562  case '3':
563  switch (charAt(2)) {
564  case 'N':
565  switch (charAt(3)) {
566  case '#':
567  return Instructions::J3N;
568  case 'N':
569  switch (charAt(4)) {
570  case '#':
571  return Instructions::J3NN;
572  }
573  break;
574  case 'P':
575  switch (charAt(4)) {
576  case '#':
577  return Instructions::J3NP;
578  }
579  break;
580  case 'Z':
581  switch (charAt(4)) {
582  case '#':
583  return Instructions::J3NZ;
584  }
585  break;
586  }
587  break;
588  case 'P':
589  switch (charAt(3)) {
590  case '#':
591  return Instructions::J3P;
592  }
593  break;
594  case 'Z':
595  switch (charAt(3)) {
596  case '#':
597  return Instructions::J3Z;
598  }
599  break;
600  }
601  break;
602  case '4':
603  switch (charAt(2)) {
604  case 'N':
605  switch (charAt(3)) {
606  case '#':
607  return Instructions::J4N;
608  case 'N':
609  switch (charAt(4)) {
610  case '#':
611  return Instructions::J4NN;
612  }
613  break;
614  case 'P':
615  switch (charAt(4)) {
616  case '#':
617  return Instructions::J4NP;
618  }
619  break;
620  case 'Z':
621  switch (charAt(4)) {
622  case '#':
623  return Instructions::J4NZ;
624  }
625  break;
626  }
627  break;
628  case 'P':
629  switch (charAt(3)) {
630  case '#':
631  return Instructions::J4P;
632  }
633  break;
634  case 'Z':
635  switch (charAt(3)) {
636  case '#':
637  return Instructions::J4Z;
638  }
639  break;
640  }
641  break;
642  case '5':
643  switch (charAt(2)) {
644  case 'N':
645  switch (charAt(3)) {
646  case '#':
647  return Instructions::J5N;
648  case 'N':
649  switch (charAt(4)) {
650  case '#':
651  return Instructions::J5NN;
652  }
653  break;
654  case 'P':
655  switch (charAt(4)) {
656  case '#':
657  return Instructions::J5NP;
658  }
659  break;
660  case 'Z':
661  switch (charAt(4)) {
662  case '#':
663  return Instructions::J5NZ;
664  }
665  break;
666  }
667  break;
668  case 'P':
669  switch (charAt(3)) {
670  case '#':
671  return Instructions::J5P;
672  }
673  break;
674  case 'Z':
675  switch (charAt(3)) {
676  case '#':
677  return Instructions::J5Z;
678  }
679  break;
680  }
681  break;
682  case '6':
683  switch (charAt(2)) {
684  case 'N':
685  switch (charAt(3)) {
686  case '#':
687  return Instructions::J6N;
688  case 'N':
689  switch (charAt(4)) {
690  case '#':
691  return Instructions::J6NN;
692  }
693  break;
694  case 'P':
695  switch (charAt(4)) {
696  case '#':
697  return Instructions::J6NP;
698  }
699  break;
700  case 'Z':
701  switch (charAt(4)) {
702  case '#':
703  return Instructions::J6NZ;
704  }
705  break;
706  }
707  break;
708  case 'P':
709  switch (charAt(3)) {
710  case '#':
711  return Instructions::J6P;
712  }
713  break;
714  case 'Z':
715  switch (charAt(3)) {
716  case '#':
717  return Instructions::J6Z;
718  }
719  break;
720  }
721  break;
722  case 'A':
723  switch (charAt(2)) {
724  case 'N':
725  switch (charAt(3)) {
726  case '#':
727  return Instructions::JAN;
728  case 'N':
729  switch (charAt(4)) {
730  case '#':
731  return Instructions::JANN;
732  }
733  break;
734  case 'P':
735  switch (charAt(4)) {
736  case '#':
737  return Instructions::JANP;
738  }
739  break;
740  case 'Z':
741  switch (charAt(4)) {
742  case '#':
743  return Instructions::JANZ;
744  }
745  break;
746  }
747  break;
748  case 'P':
749  switch (charAt(3)) {
750  case '#':
751  return Instructions::JAP;
752  }
753  break;
754  case 'Z':
755  switch (charAt(3)) {
756  case '#':
757  return Instructions::JAZ;
758  }
759  break;
760  }
761  break;
762  case 'B':
763  switch (charAt(2)) {
764  case 'U':
765  switch (charAt(3)) {
766  case 'S':
767  switch (charAt(4)) {
768  case '#':
769  return Instructions::JBUS;
770  }
771  break;
772  }
773  break;
774  }
775  break;
776  case 'E':
777  switch (charAt(2)) {
778  case '#':
779  return Instructions::JE;
780  }
781  break;
782  case 'G':
783  switch (charAt(2)) {
784  case '#':
785  return Instructions::JG;
786  case 'E':
787  switch (charAt(3)) {
788  case '#':
789  return Instructions::JGE;
790  }
791  break;
792  }
793  break;
794  case 'L':
795  switch (charAt(2)) {
796  case '#':
797  return Instructions::JL;
798  case 'E':
799  switch (charAt(3)) {
800  case '#':
801  return Instructions::JLE;
802  }
803  break;
804  }
805  break;
806  case 'M':
807  switch (charAt(2)) {
808  case 'P':
809  switch (charAt(3)) {
810  case '#':
811  return Instructions::JMP;
812  }
813  break;
814  }
815  break;
816  case 'N':
817  switch (charAt(2)) {
818  case 'E':
819  switch (charAt(3)) {
820  case '#':
821  return Instructions::JNE;
822  }
823  break;
824  case 'O':
825  switch (charAt(3)) {
826  case 'V':
827  switch (charAt(4)) {
828  case '#':
829  return Instructions::JNOV;
830  }
831  break;
832  }
833  break;
834  }
835  break;
836  case 'O':
837  switch (charAt(2)) {
838  case 'V':
839  switch (charAt(3)) {
840  case '#':
841  return Instructions::JOV;
842  }
843  break;
844  }
845  break;
846  case 'R':
847  switch (charAt(2)) {
848  case 'E':
849  switch (charAt(3)) {
850  case 'D':
851  switch (charAt(4)) {
852  case '#':
853  return Instructions::JRED;
854  }
855  break;
856  }
857  break;
858  }
859  break;
860  case 'S':
861  switch (charAt(2)) {
862  case 'J':
863  switch (charAt(3)) {
864  case '#':
865  return Instructions::JSJ;
866  }
867  break;
868  }
869  break;
870  case 'X':
871  switch (charAt(2)) {
872  case 'N':
873  switch (charAt(3)) {
874  case '#':
875  return Instructions::JXN;
876  case 'N':
877  switch (charAt(4)) {
878  case '#':
879  return Instructions::JXNN;
880  }
881  break;
882  case 'P':
883  switch (charAt(4)) {
884  case '#':
885  return Instructions::JXNP;
886  }
887  break;
888  case 'Z':
889  switch (charAt(4)) {
890  case '#':
891  return Instructions::JXNZ;
892  }
893  break;
894  }
895  break;
896  case 'P':
897  switch (charAt(3)) {
898  case '#':
899  return Instructions::JXP;
900  }
901  break;
902  case 'Z':
903  switch (charAt(3)) {
904  case '#':
905  return Instructions::JXZ;
906  }
907  break;
908  }
909  break;
910  }
911  break;
912  case 'L':
913  switch (charAt(1)) {
914  case 'D':
915  switch (charAt(2)) {
916  case '1':
917  switch (charAt(3)) {
918  case '#':
919  return Instructions::LD1;
920  case 'N':
921  switch (charAt(4)) {
922  case '#':
923  return Instructions::LD1N;
924  }
925  break;
926  }
927  break;
928  case '2':
929  switch (charAt(3)) {
930  case '#':
931  return Instructions::LD2;
932  case 'N':
933  switch (charAt(4)) {
934  case '#':
935  return Instructions::LD2N;
936  }
937  break;
938  }
939  break;
940  case '3':
941  switch (charAt(3)) {
942  case '#':
943  return Instructions::LD3;
944  case 'N':
945  switch (charAt(4)) {
946  case '#':
947  return Instructions::LD3N;
948  }
949  break;
950  }
951  break;
952  case '4':
953  switch (charAt(3)) {
954  case '#':
955  return Instructions::LD4;
956  case 'N':
957  switch (charAt(4)) {
958  case '#':
959  return Instructions::LD4N;
960  }
961  break;
962  }
963  break;
964  case '5':
965  switch (charAt(3)) {
966  case '#':
967  return Instructions::LD5;
968  case 'N':
969  switch (charAt(4)) {
970  case '#':
971  return Instructions::LD5N;
972  }
973  break;
974  }
975  break;
976  case '6':
977  switch (charAt(3)) {
978  case '#':
979  return Instructions::LD6;
980  case 'N':
981  switch (charAt(4)) {
982  case '#':
983  return Instructions::LD6N;
984  }
985  break;
986  }
987  break;
988  case 'A':
989  switch (charAt(3)) {
990  case '#':
991  return Instructions::LDA;
992  case 'N':
993  switch (charAt(4)) {
994  case '#':
995  return Instructions::LDAN;
996  }
997  break;
998  }
999  break;
1000  case 'X':
1001  switch (charAt(3)) {
1002  case '#':
1003  return Instructions::LDX;
1004  case 'N':
1005  switch (charAt(4)) {
1006  case '#':
1007  return Instructions::LDXN;
1008  }
1009  break;
1010  }
1011  break;
1012  }
1013  break;
1014  }
1015  break;
1016  case 'M':
1017  switch (charAt(1)) {
1018  case 'O':
1019  switch (charAt(2)) {
1020  case 'V':
1021  switch (charAt(3)) {
1022  case 'E':
1023  switch (charAt(4)) {
1024  case '#':
1025  return Instructions::MOVE;
1026  }
1027  break;
1028  }
1029  break;
1030  }
1031  break;
1032  case 'U':
1033  switch (charAt(2)) {
1034  case 'L':
1035  switch (charAt(3)) {
1036  case '#':
1037  return Instructions::MUL;
1038  }
1039  break;
1040  }
1041  break;
1042  }
1043  break;
1044  case 'N':
1045  switch (charAt(1)) {
1046  case 'O':
1047  switch (charAt(2)) {
1048  case 'P':
1049  switch (charAt(3)) {
1050  case '#':
1051  return Instructions::NOP;
1052  }
1053  break;
1054  }
1055  break;
1056  case 'U':
1057  switch (charAt(2)) {
1058  case 'M':
1059  switch (charAt(3)) {
1060  case '#':
1061  return Instructions::NUM;
1062  }
1063  break;
1064  }
1065  break;
1066  }
1067  break;
1068  case 'O':
1069  switch (charAt(1)) {
1070  case 'R':
1071  switch (charAt(2)) {
1072  case 'I':
1073  switch (charAt(3)) {
1074  case 'G':
1075  switch (charAt(4)) {
1076  case '#':
1077  return Instructions::ORIG;
1078  }
1079  break;
1080  }
1081  break;
1082  }
1083  break;
1084  case 'U':
1085  switch (charAt(2)) {
1086  case 'T':
1087  switch (charAt(3)) {
1088  case '#':
1089  return Instructions::OUT;
1090  }
1091  break;
1092  }
1093  break;
1094  }
1095  break;
1096  case 'S':
1097  switch (charAt(1)) {
1098  case 'L':
1099  switch (charAt(2)) {
1100  case 'A':
1101  switch (charAt(3)) {
1102  case '#':
1103  return Instructions::SLA;
1104  case 'X':
1105  switch (charAt(4)) {
1106  case '#':
1107  return Instructions::SLAX;
1108  }
1109  break;
1110  }
1111  break;
1112  case 'C':
1113  switch (charAt(3)) {
1114  case '#':
1115  return Instructions::SLC;
1116  }
1117  break;
1118  }
1119  break;
1120  case 'R':
1121  switch (charAt(2)) {
1122  case 'A':
1123  switch (charAt(3)) {
1124  case '#':
1125  return Instructions::SRA;
1126  case 'X':
1127  switch (charAt(4)) {
1128  case '#':
1129  return Instructions::SRAX;
1130  }
1131  break;
1132  }
1133  break;
1134  case 'C':
1135  switch (charAt(3)) {
1136  case '#':
1137  return Instructions::SRC;
1138  }
1139  break;
1140  }
1141  break;
1142  case 'T':
1143  switch (charAt(2)) {
1144  case '1':
1145  switch (charAt(3)) {
1146  case '#':
1147  return Instructions::ST1;
1148  }
1149  break;
1150  case '2':
1151  switch (charAt(3)) {
1152  case '#':
1153  return Instructions::ST2;
1154  }
1155  break;
1156  case '3':
1157  switch (charAt(3)) {
1158  case '#':
1159  return Instructions::ST3;
1160  }
1161  break;
1162  case '4':
1163  switch (charAt(3)) {
1164  case '#':
1165  return Instructions::ST4;
1166  }
1167  break;
1168  case '5':
1169  switch (charAt(3)) {
1170  case '#':
1171  return Instructions::ST5;
1172  }
1173  break;
1174  case '6':
1175  switch (charAt(3)) {
1176  case '#':
1177  return Instructions::ST6;
1178  }
1179  break;
1180  case 'A':
1181  switch (charAt(3)) {
1182  case '#':
1183  return Instructions::STA;
1184  }
1185  break;
1186  case 'J':
1187  switch (charAt(3)) {
1188  case '#':
1189  return Instructions::STJ;
1190  }
1191  break;
1192  case 'X':
1193  switch (charAt(3)) {
1194  case '#':
1195  return Instructions::STX;
1196  }
1197  break;
1198  case 'Z':
1199  switch (charAt(3)) {
1200  case '#':
1201  return Instructions::STZ;
1202  }
1203  break;
1204  }
1205  break;
1206  case 'U':
1207  switch (charAt(2)) {
1208  case 'B':
1209  switch (charAt(3)) {
1210  case '#':
1211  return Instructions::SUB;
1212  }
1213  break;
1214  }
1215  break;
1216  }
1217  break;
1218  }
1219  return Instructions::INVALID;
1220 }

Referenced by mixal::Parser::parseLine().

◆ hasArguments()

bool mixal::Instructions::hasArguments ( Instructions::Code  code)
static

Whether the operation has extra arguments.

Definition at line 5 of file instructions.cpp.

5  {
6  return !(code == Instructions::NOP || code == Instructions::HLT);
7 }

Referenced by mixal::Parser::parseLine().


The documentation for this class was generated from the following files: