Eolian/Tests: add test for events.
authorDaniel Zaoui <daniel.zaoui@samsung.com>
Fri, 23 May 2014 14:38:39 +0000 (17:38 +0300)
committerDaniel Zaoui <daniel.zaoui@samsung.com>
Mon, 26 May 2014 10:56:06 +0000 (13:56 +0300)
src/Makefile_Eolian.am
src/lib/eolian/eo_lexer.c
src/lib/eolian/eo_lexer.rl
src/tests/eolian/data/events.eo [new file with mode: 0644]
src/tests/eolian/eolian_parsing.c

index 1e44ce2cb44f95be0257c9836972696fe3c38244..e31d9f637b013a1a2edeb751fc74b8a8ad4e97f4 100644 (file)
@@ -95,5 +95,6 @@ tests/eolian/data/object_impl_ref.c \
 tests/eolian/data/object_impl_add.eo \
 tests/eolian/data/object_impl_add_ref.c \
 tests/eolian/data/consts.eo \
-tests/eolian/data/override.eo
+tests/eolian/data/override.eo \
+tests/eolian/data/events.eo
 
index 4d547f784bb71b30b9c1c2eae16de883ec4ec6f5..788e7a9f9851cc3534d1dab7608ac5f55be11a88 100644 (file)
@@ -375,47 +375,48 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p)
 
 #line 377 "lib/eolian/eo_lexer.c"
 static const char _eo_tokenizer_actions[] = {
-       0, 1, 0, 1, 2, 1, 7, 1, 
-       11, 1, 17, 1, 19, 1, 20, 1, 
-       21, 1, 22, 1, 23, 1, 24, 1, 
-       25, 1, 26, 1, 27, 1, 28, 1, 
-       29, 1, 30, 1, 31, 1, 32, 1, 
-       33, 1, 35, 1, 36, 1, 37, 1, 
-       38, 1, 39, 1, 42, 1, 43, 1, 
-       44, 1, 45, 1, 46, 1, 47, 1, 
-       48, 1, 49, 1, 50, 1, 51, 1, 
-       52, 1, 53, 1, 54, 1, 55, 1, 
-       56, 1, 57, 1, 58, 1, 59, 1, 
-       60, 1, 61, 1, 62, 1, 63, 1, 
-       64, 1, 65, 1, 66, 1, 67, 1, 
-       68, 1, 69, 1, 70, 1, 71, 1, 
-       72, 1, 73, 1, 74, 1, 75, 1, 
-       76, 1, 77, 1, 78, 1, 79, 1, 
-       80, 1, 83, 1, 84, 1, 85, 1, 
-       86, 1, 87, 1, 88, 1, 89, 1, 
-       90, 1, 91, 1, 92, 1, 93, 1, 
-       94, 1, 95, 1, 96, 1, 97, 1, 
-       98, 1, 99, 1, 100, 1, 101, 1, 
-       102, 1, 103, 1, 104, 1, 105, 1, 
-       106, 1, 107, 1, 108, 1, 109, 1, 
-       110, 1, 111, 1, 112, 1, 113, 1, 
-       114, 1, 115, 1, 116, 1, 117, 1, 
-       118, 1, 120, 1, 121, 1, 122, 1, 
-       123, 2, 0, 39, 2, 0, 50, 2, 
-       0, 59, 2, 0, 70, 2, 0, 79, 
-       2, 0, 91, 2, 0, 100, 2, 0, 
-       117, 2, 5, 45, 2, 6, 40, 2, 
-       7, 2, 2, 8, 41, 2, 9, 54, 
-       2, 11, 0, 2, 11, 71, 2, 14, 
-       86, 2, 15, 81, 2, 16, 82, 2, 
-       17, 0, 2, 17, 92, 2, 19, 0, 
-       2, 20, 0, 2, 20, 118, 2, 21, 
-       0, 2, 22, 0, 2, 23, 0, 2, 
-       23, 2, 2, 27, 0, 2, 32, 0, 
-       2, 32, 118, 2, 34, 119, 2, 37, 
-       1, 2, 37, 2, 2, 37, 4, 2, 
-       37, 10, 2, 37, 13, 3, 3, 12, 
-       2, 3, 3, 18, 2
+       0, 1, 0, 1, 1, 1, 2, 1, 
+       7, 1, 11, 1, 17, 1, 19, 1, 
+       20, 1, 21, 1, 22, 1, 23, 1, 
+       24, 1, 25, 1, 26, 1, 27, 1, 
+       28, 1, 29, 1, 30, 1, 31, 1, 
+       32, 1, 33, 1, 35, 1, 36, 1, 
+       37, 1, 38, 1, 39, 1, 42, 1, 
+       43, 1, 44, 1, 45, 1, 46, 1, 
+       47, 1, 48, 1, 49, 1, 50, 1, 
+       51, 1, 52, 1, 53, 1, 54, 1, 
+       55, 1, 56, 1, 57, 1, 58, 1, 
+       59, 1, 60, 1, 61, 1, 62, 1, 
+       63, 1, 64, 1, 65, 1, 66, 1, 
+       67, 1, 68, 1, 69, 1, 70, 1, 
+       71, 1, 72, 1, 73, 1, 74, 1, 
+       75, 1, 76, 1, 77, 1, 78, 1, 
+       79, 1, 80, 1, 83, 1, 84, 1, 
+       85, 1, 86, 1, 87, 1, 88, 1, 
+       89, 1, 90, 1, 91, 1, 92, 1, 
+       93, 1, 94, 1, 95, 1, 96, 1, 
+       97, 1, 98, 1, 99, 1, 100, 1, 
+       101, 1, 102, 1, 103, 1, 104, 1, 
+       105, 1, 106, 1, 107, 1, 108, 1, 
+       109, 1, 110, 1, 111, 1, 112, 1, 
+       113, 1, 114, 1, 115, 1, 116, 1, 
+       117, 1, 118, 1, 120, 1, 121, 1, 
+       122, 1, 123, 2, 0, 39, 2, 0, 
+       50, 2, 0, 59, 2, 0, 70, 2, 
+       0, 79, 2, 0, 91, 2, 0, 100, 
+       2, 0, 117, 2, 5, 45, 2, 6, 
+       40, 2, 7, 2, 2, 8, 41, 2, 
+       9, 54, 2, 11, 0, 2, 11, 71, 
+       2, 14, 86, 2, 15, 81, 2, 16, 
+       82, 2, 17, 0, 2, 17, 92, 2, 
+       19, 0, 2, 20, 0, 2, 20, 118, 
+       2, 21, 0, 2, 22, 0, 2, 23, 
+       0, 2, 23, 1, 2, 23, 2, 2, 
+       27, 0, 2, 32, 0, 2, 32, 118, 
+       2, 34, 119, 2, 37, 1, 2, 37, 
+       2, 2, 37, 4, 2, 37, 10, 2, 
+       37, 13, 3, 3, 12, 2, 3, 3, 
+       18, 2
 };
 
 static const short _eo_tokenizer_key_offsets[] = {
@@ -450,22 +451,23 @@ static const short _eo_tokenizer_key_offsets[] = {
        1415, 1419, 1420, 1421, 1425, 1432, 1440, 1441, 
        1442, 1443, 1444, 1445, 1446, 1447, 1451, 1458, 
        1466, 1467, 1468, 1469, 1470, 1474, 1482, 1498, 
-       1502, 1514, 1515, 1516, 1526, 1528, 1531, 1539, 
-       1547, 1555, 1567, 1571, 1572, 1573, 1574, 1575, 
-       1576, 1577, 1578, 1579, 1583, 1591, 1603, 1607, 
-       1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 
-       1616, 1617, 1618, 1619, 1623, 1630, 1638, 1639, 
-       1640, 1641, 1642, 1643, 1647, 1648, 1649, 1650, 
-       1651, 1652, 1653, 1654, 1655, 1659, 1668, 1671, 
-       1673, 1674, 1675, 1676, 1677, 1678, 1689, 1692, 
-       1694, 1705, 1717, 1729, 1733, 1733, 1734, 1743, 
-       1746, 1748, 1761, 1765, 1765, 1766, 1775, 1778, 
-       1780, 1781, 1782, 1783, 1784, 1785, 1797, 1800, 
-       1802, 1813, 1826, 1827, 1836, 1839, 1841, 1842, 
-       1843, 1844, 1845, 1849, 1849, 1850, 1862, 1865, 
-       1867, 1878, 1891, 1892, 1904, 1907, 1909, 1910, 
-       1911, 1914, 1916, 1919, 1920, 1921, 1922, 1923, 
-       1926, 1927, 1928
+       1502, 1514, 1523, 1525, 1527, 1530, 1539, 1540, 
+       1542, 1545, 1556, 1558, 1561, 1570, 1578, 1586, 
+       1598, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 
+       1609, 1610, 1614, 1622, 1634, 1638, 1639, 1640, 
+       1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 
+       1649, 1650, 1654, 1661, 1669, 1670, 1671, 1672, 
+       1673, 1674, 1678, 1679, 1680, 1681, 1682, 1683, 
+       1684, 1685, 1686, 1690, 1699, 1702, 1704, 1705, 
+       1706, 1707, 1708, 1709, 1720, 1723, 1725, 1736, 
+       1748, 1760, 1764, 1764, 1765, 1774, 1777, 1779, 
+       1792, 1796, 1796, 1797, 1806, 1809, 1811, 1812, 
+       1813, 1814, 1815, 1816, 1828, 1831, 1833, 1844, 
+       1857, 1858, 1867, 1870, 1872, 1873, 1874, 1875, 
+       1876, 1880, 1880, 1881, 1893, 1896, 1898, 1909, 
+       1922, 1923, 1935, 1938, 1940, 1941, 1942, 1945, 
+       1947, 1950, 1951, 1952, 1953, 1954, 1957, 1958, 
+       1959
 };
 
 static const char _eo_tokenizer_trans_keys[] = {
@@ -658,59 +660,63 @@ static const char _eo_tokenizer_trans_keys[] = {
        59, 95, 0, 31, 48, 57, 65, 90, 
        97, 122, 10, 59, 0, 32, 9, 10, 
        13, 32, 47, 125, 0, 31, 65, 90, 
-       97, 122, 42, 64, 10, 95, 0, 32, 
-       48, 57, 64, 90, 97, 122, 10, 42, 
-       10, 42, 47, 10, 125, 0, 32, 65, 
-       90, 97, 122, 9, 10, 13, 32, 40, 
-       59, 0, 31, 9, 13, 32, 95, 65, 
-       90, 97, 122, 9, 13, 32, 41, 42, 
-       95, 48, 57, 65, 90, 97, 122, 10, 
-       59, 0, 32, 112, 108, 101, 109, 101, 
-       110, 116, 115, 10, 123, 0, 32, 10, 
-       125, 0, 32, 65, 90, 97, 122, 10, 
-       58, 59, 95, 0, 32, 48, 57, 65, 
-       90, 97, 122, 10, 59, 0, 32, 58, 
-       103, 97, 99, 121, 95, 112, 114, 101, 
-       102, 105, 120, 10, 58, 0, 32, 10, 
-       0, 32, 65, 90, 97, 122, 59, 95, 
-       48, 57, 65, 90, 97, 122, 116, 104, 
-       111, 100, 115, 10, 123, 0, 32, 111, 
-       112, 101, 114, 116, 105, 101, 115, 10, 
-       123, 0, 32, 10, 47, 97, 99, 105, 
-       109, 116, 0, 32, 10, 0, 32, 42, 
-       47, 98, 108, 110, 105, 121, 10, 47, 
-       108, 114, 125, 0, 32, 65, 90, 97, 
-       122, 10, 0, 32, 42, 47, 9, 13, 
-       32, 58, 95, 48, 57, 65, 90, 97, 
-       122, 9, 13, 32, 58, 95, 101, 48, 
-       57, 65, 90, 97, 122, 9, 13, 32, 
-       58, 95, 101, 48, 57, 65, 90, 97, 
-       122, 9, 13, 32, 47, 59, 10, 47, 
-       125, 0, 32, 64, 90, 97, 122, 10, 
-       0, 32, 42, 47, 9, 13, 32, 42, 
-       60, 62, 95, 48, 57, 64, 90, 97, 
-       122, 9, 13, 32, 47, 59, 10, 47, 
-       103, 107, 115, 118, 125, 0, 32, 10, 
-       0, 32, 42, 47, 101, 101, 101, 97, 
+       97, 122, 10, 47, 125, 0, 32, 65, 
+       90, 97, 122, 42, 47, 10, 42, 10, 
+       42, 47, 10, 47, 125, 0, 32, 65, 
+       90, 97, 122, 10, 42, 47, 10, 42, 
+       64, 10, 42, 95, 0, 32, 48, 57, 
+       64, 90, 97, 122, 10, 42, 10, 42, 
+       47, 10, 47, 125, 0, 32, 65, 90, 
+       97, 122, 9, 10, 13, 32, 40, 59, 
+       0, 31, 9, 13, 32, 95, 65, 90, 
+       97, 122, 9, 13, 32, 41, 42, 95, 
+       48, 57, 65, 90, 97, 122, 10, 59, 
+       0, 32, 112, 108, 101, 109, 101, 110, 
+       116, 115, 10, 123, 0, 32, 10, 125, 
+       0, 32, 65, 90, 97, 122, 10, 58, 
+       59, 95, 0, 32, 48, 57, 65, 90, 
+       97, 122, 10, 59, 0, 32, 58, 103, 
+       97, 99, 121, 95, 112, 114, 101, 102, 
+       105, 120, 10, 58, 0, 32, 10, 0, 
+       32, 65, 90, 97, 122, 59, 95, 48, 
+       57, 65, 90, 97, 122, 116, 104, 111, 
+       100, 115, 10, 123, 0, 32, 111, 112, 
+       101, 114, 116, 105, 101, 115, 10, 123, 
+       0, 32, 10, 47, 97, 99, 105, 109, 
+       116, 0, 32, 10, 0, 32, 42, 47, 
+       98, 108, 110, 105, 121, 10, 47, 108, 
+       114, 125, 0, 32, 65, 90, 97, 122, 
+       10, 0, 32, 42, 47, 9, 13, 32, 
+       58, 95, 48, 57, 65, 90, 97, 122, 
+       9, 13, 32, 58, 95, 101, 48, 57, 
+       65, 90, 97, 122, 9, 13, 32, 58, 
+       95, 101, 48, 57, 65, 90, 97, 122, 
+       9, 13, 32, 47, 59, 10, 47, 125, 
+       0, 32, 64, 90, 97, 122, 10, 0, 
+       32, 42, 47, 9, 13, 32, 42, 60, 
+       62, 95, 48, 57, 64, 90, 97, 122, 
+       9, 13, 32, 47, 59, 10, 47, 103, 
+       107, 115, 118, 125, 0, 32, 10, 0, 
+       32, 42, 47, 101, 101, 101, 97, 59, 
+       10, 47, 112, 125, 0, 32, 48, 57, 
+       65, 90, 97, 122, 10, 0, 32, 42, 
+       47, 10, 95, 123, 0, 32, 48, 57, 
+       65, 90, 97, 122, 10, 95, 114, 117, 
+       123, 0, 32, 48, 57, 65, 90, 97, 
+       122, 59, 10, 47, 99, 108, 112, 114, 
+       125, 0, 32, 10, 0, 32, 42, 47, 
+       111, 101, 97, 101, 9, 13, 32, 47, 
        59, 10, 47, 112, 125, 0, 32, 48, 
        57, 65, 90, 97, 122, 10, 0, 32, 
        42, 47, 10, 95, 123, 0, 32, 48, 
        57, 65, 90, 97, 122, 10, 95, 114, 
        117, 123, 0, 32, 48, 57, 65, 90, 
-       97, 122, 59, 10, 47, 99, 108, 112, 
-       114, 125, 0, 32, 10, 0, 32, 42, 
-       47, 111, 101, 97, 101, 9, 13, 32, 
-       47, 59, 10, 47, 112, 125, 0, 32, 
-       48, 57, 65, 90, 97, 122, 10, 0, 
-       32, 42, 47, 10, 95, 123, 0, 32, 
-       48, 57, 65, 90, 97, 122, 10, 95, 
-       114, 117, 123, 0, 32, 48, 57, 65, 
-       90, 97, 122, 59, 10, 47, 99, 100, 
-       101, 105, 108, 109, 112, 125, 0, 32, 
-       10, 0, 32, 42, 47, 111, 97, 10, 
-       0, 32, 111, 118, 10, 0, 32, 59, 
-       109, 59, 101, 10, 0, 32, 101, 114, 
-       59, 0
+       97, 122, 59, 10, 47, 99, 100, 101, 
+       105, 108, 109, 112, 125, 0, 32, 10, 
+       0, 32, 42, 47, 111, 97, 10, 0, 
+       32, 111, 118, 10, 0, 32, 59, 109, 
+       59, 101, 10, 0, 32, 101, 114, 59, 
+       0
 };
 
 static const char _eo_tokenizer_single_lengths[] = {
@@ -745,22 +751,23 @@ static const char _eo_tokenizer_single_lengths[] = {
        2, 1, 1, 2, 1, 2, 1, 1, 
        1, 1, 1, 1, 1, 2, 1, 2, 
        1, 1, 1, 1, 2, 2, 8, 2, 
-       6, 1, 1, 2, 2, 3, 2, 6, 
-       4, 6, 2, 1, 1, 1, 1, 1, 
-       1, 1, 1, 2, 2, 4, 2, 1, 
+       6, 3, 2, 2, 3, 3, 1, 2, 
+       3, 3, 2, 3, 3, 6, 4, 6, 
+       2, 1, 1, 1, 1, 1, 1, 1, 
+       1, 2, 2, 4, 2, 1, 1, 1, 
        1, 1, 1, 1, 1, 1, 1, 1, 
-       1, 1, 1, 2, 1, 2, 1, 1, 
-       1, 1, 1, 2, 1, 1, 1, 1, 
-       1, 1, 1, 1, 2, 7, 1, 2, 
-       1, 1, 1, 1, 1, 5, 1, 2, 
-       5, 6, 6, 4, 0, 1, 3, 1, 
-       2, 7, 4, 0, 1, 7, 1, 2, 
-       1, 1, 1, 1, 1, 4, 1, 2, 
-       3, 5, 1, 7, 1, 2, 1, 1, 
-       1, 1, 4, 0, 1, 4, 1, 2, 
-       3, 5, 1, 10, 1, 2, 1, 1, 
+       1, 2, 1, 2, 1, 1, 1, 1, 
        1, 2, 1, 1, 1, 1, 1, 1, 
-       1, 1, 1
+       1, 1, 2, 7, 1, 2, 1, 1, 
+       1, 1, 1, 5, 1, 2, 5, 6, 
+       6, 4, 0, 1, 3, 1, 2, 7, 
+       4, 0, 1, 7, 1, 2, 1, 1, 
+       1, 1, 1, 4, 1, 2, 3, 5, 
+       1, 7, 1, 2, 1, 1, 1, 1, 
+       4, 0, 1, 4, 1, 2, 3, 5, 
+       1, 10, 1, 2, 1, 1, 1, 2, 
+       1, 1, 1, 1, 1, 1, 1, 1, 
+       1
 };
 
 static const char _eo_tokenizer_range_lengths[] = {
@@ -795,22 +802,23 @@ static const char _eo_tokenizer_range_lengths[] = {
        1, 0, 0, 1, 3, 3, 0, 0, 
        0, 0, 0, 0, 0, 1, 3, 3, 
        0, 0, 0, 0, 1, 3, 4, 1, 
-       3, 0, 0, 4, 0, 0, 3, 1, 
-       2, 3, 1, 0, 0, 0, 0, 0, 
-       0, 0, 0, 1, 3, 4, 1, 0, 
+       3, 3, 0, 0, 0, 3, 0, 0, 
+       0, 4, 0, 0, 3, 1, 2, 3, 
+       1, 0, 0, 0, 0, 0, 0, 0, 
+       0, 1, 3, 4, 1, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
-       0, 0, 0, 1, 3, 3, 0, 0, 
-       0, 0, 0, 1, 0, 0, 0, 0, 
-       0, 0, 0, 0, 1, 1, 1, 0, 
-       0, 0, 0, 0, 0, 3, 1, 0
-       3, 3, 3, 0, 0, 0, 3, 1
-       0, 3, 0, 0, 0, 1, 1, 0, 
-       0, 0, 0, 0, 0, 4, 1, 0
-       4, 4, 0, 1, 1, 0, 0, 0, 
-       0, 0, 0, 0, 0, 4, 1, 0
-       4, 4, 0, 1, 1, 0, 0, 0, 
-       1, 0, 1, 0, 0, 0, 0, 1
-       0, 0, 0
+       0, 1, 3, 3, 0, 0, 0, 0, 
+       0, 1, 0, 0, 0, 0, 0, 0, 
+       0, 0, 1, 1, 1, 0, 0, 0, 
+       0, 0, 0, 3, 1, 0, 3, 3
+       3, 0, 0, 0, 3, 1, 0, 3
+       0, 0, 0, 1, 1, 0, 0, 0, 
+       0, 0, 0, 4, 1, 0, 4, 4
+       0, 1, 1, 0, 0, 0, 0, 0, 
+       0, 0, 0, 4, 1, 0, 4, 4
+       0, 1, 1, 0, 0, 0, 1, 0, 
+       1, 0, 0, 0, 0, 1, 0, 0
+       0
 };
 
 static const short _eo_tokenizer_index_offsets[] = {
@@ -845,22 +853,23 @@ static const short _eo_tokenizer_index_offsets[] = {
        1255, 1259, 1261, 1263, 1267, 1272, 1278, 1280, 
        1282, 1284, 1286, 1288, 1290, 1292, 1296, 1301, 
        1307, 1309, 1311, 1313, 1315, 1319, 1325, 1338, 
-       1342, 1352, 1354, 1356, 1363, 1366, 1370, 1376, 
-       1384, 1391, 1401, 1405, 1407, 1409, 1411, 1413, 
-       1415, 1417, 1419, 1421, 1425, 1431, 1440, 1444, 
-       1446, 1448, 1450, 1452, 1454, 1456, 1458, 1460, 
-       1462, 1464, 1466, 1468, 1472, 1477, 1483, 1485, 
-       1487, 1489, 1491, 1493, 1497, 1499, 1501, 1503, 
-       1505, 1507, 1509, 1511, 1513, 1517, 1526, 1529, 
-       1532, 1534, 1536, 1538, 1540, 1542, 1551, 1554, 
-       1557, 1566, 1576, 1586, 1591, 1592, 1594, 1601, 
-       1604, 1607, 1618, 1623, 1624, 1626, 1635, 1638, 
-       1641, 1643, 1645, 1647, 1649, 1651, 1660, 1663, 
-       1666, 1674, 1684, 1686, 1695, 1698, 1701, 1703, 
-       1705, 1707, 1709, 1714, 1715, 1717, 1726, 1729, 
-       1732, 1740, 1750, 1752, 1764, 1767, 1770, 1772, 
-       1774, 1777, 1780, 1783, 1785, 1787, 1789, 1791, 
-       1794, 1796, 1798
+       1342, 1352, 1359, 1362, 1365, 1369, 1376, 1378, 
+       1381, 1385, 1393, 1396, 1400, 1407, 1415, 1422, 
+       1432, 1436, 1438, 1440, 1442, 1444, 1446, 1448, 
+       1450, 1452, 1456, 1462, 1471, 1475, 1477, 1479, 
+       1481, 1483, 1485, 1487, 1489, 1491, 1493, 1495, 
+       1497, 1499, 1503, 1508, 1514, 1516, 1518, 1520, 
+       1522, 1524, 1528, 1530, 1532, 1534, 1536, 1538, 
+       1540, 1542, 1544, 1548, 1557, 1560, 1563, 1565, 
+       1567, 1569, 1571, 1573, 1582, 1585, 1588, 1597, 
+       1607, 1617, 1622, 1623, 1625, 1632, 1635, 1638, 
+       1649, 1654, 1655, 1657, 1666, 1669, 1672, 1674, 
+       1676, 1678, 1680, 1682, 1691, 1694, 1697, 1705, 
+       1715, 1717, 1726, 1729, 1732, 1734, 1736, 1738, 
+       1740, 1745, 1746, 1748, 1757, 1760, 1763, 1771, 
+       1781, 1783, 1795, 1798, 1801, 1803, 1805, 1808, 
+       1811, 1814, 1816, 1818, 1820, 1822, 1825, 1827, 
+       1829
 };
 
 static const short _eo_tokenizer_indicies[] = {
@@ -1031,219 +1040,224 @@ static const short _eo_tokenizer_indicies[] = {
        299, 349, 299, 350, 351, 349, 299, 352, 
        354, 351, 353, 353, 299, 356, 357, 356, 
        356, 358, 359, 360, 359, 355, 359, 359, 
-       359, 299, 362, 363, 361, 299, 363, 352, 
-       363, 363, 364, 354, 351, 353, 353, 299, 
-       365, 299, 366, 299, 367, 368, 366, 368, 
-       368, 368, 299, 370, 371, 369, 370, 371, 
-       372, 369, 374, 376, 373, 375, 375, 299, 
-       377, 362, 377, 377, 378, 363, 361, 299, 
-       378, 378, 378, 379, 379, 379, 299, 380, 
-       380, 380, 381, 380, 380, 380, 380, 380, 
-       299, 383, 384, 382, 299, 385, 299, 386, 
-       299, 387, 299, 388, 299, 389, 299, 390, 
-       299, 391, 299, 392, 299, 393, 394, 392, 
-       299, 395, 397, 394, 396, 396, 299, 399, 
-       401, 402, 400, 398, 400, 400, 400, 299, 
-       404, 394, 403, 299, 400, 299, 405, 299, 
-       406, 299, 407, 299, 408, 299, 409, 299, 
-       410, 299, 411, 299, 412, 299, 413, 299, 
-       414, 299, 415, 299, 416, 417, 415, 299, 
-       418, 417, 419, 419, 299, 421, 420, 420, 
-       420, 420, 299, 422, 299, 423, 299, 424, 
-       299, 425, 299, 426, 299, 427, 428, 426, 
-       299, 429, 299, 430, 299, 431, 299, 432, 
-       299, 433, 299, 434, 299, 435, 299, 436, 
-       299, 437, 438, 436, 299, 441, 442, 443, 
-       444, 445, 446, 447, 440, 439, 441, 440, 
-       448, 1, 5, 449, 450, 449, 451, 449, 
-       452, 449, 453, 449, 454, 449, 457, 458, 
-       460, 461, 462, 456, 459, 459, 455, 457, 
-       456, 463, 465, 81, 464, 83, 83, 83, 
-       84, 91, 91, 91, 91, 464, 83, 83, 
-       83, 84, 91, 466, 91, 91, 91, 464, 
-       83, 83, 83, 84, 91, 467, 91, 91, 
-       91, 464, 112, 112, 112, 113, 468, 469, 
-       471, 470, 474, 475, 477, 473, 476, 476, 
-       472, 474, 473, 478, 123, 127, 479, 129, 
+       359, 299, 362, 363, 361, 299, 363, 365, 
+       363, 363, 366, 354, 364, 353, 353, 299, 
+       365, 367, 354, 364, 353, 353, 299, 368, 
+       369, 299, 370, 371, 368, 370, 371, 372, 
+       368, 352, 367, 354, 351, 353, 353, 299, 
+       373, 369, 374, 369, 299, 370, 371, 375, 
+       368, 376, 371, 377, 375, 377, 377, 377, 
+       368, 379, 380, 378, 379, 380, 381, 378, 
+       383, 384, 386, 382, 385, 385, 299, 387, 
+       362, 387, 387, 388, 363, 361, 299, 388, 
+       388, 388, 389, 389, 389, 299, 390, 390, 
+       390, 391, 390, 390, 390, 390, 390, 299, 
+       393, 394, 392, 299, 395, 299, 396, 299, 
+       397, 299, 398, 299, 399, 299, 400, 299, 
+       401, 299, 402, 299, 403, 404, 402, 299, 
+       405, 407, 404, 406, 406, 299, 409, 411, 
+       412, 410, 408, 410, 410, 410, 299, 414, 
+       404, 413, 299, 410, 299, 415, 299, 416, 
+       299, 417, 299, 418, 299, 419, 299, 420, 
+       299, 421, 299, 422, 299, 423, 299, 424, 
+       299, 425, 299, 426, 427, 425, 299, 428, 
+       427, 429, 429, 299, 431, 430, 430, 430, 
+       430, 299, 432, 299, 433, 299, 434, 299, 
+       435, 299, 436, 299, 437, 438, 436, 299, 
+       439, 299, 440, 299, 441, 299, 442, 299, 
+       443, 299, 444, 299, 445, 299, 446, 299, 
+       447, 448, 446, 299, 451, 452, 453, 454, 
+       455, 456, 457, 450, 449, 451, 450, 458, 
+       1, 5, 459, 460, 459, 461, 459, 462, 
+       459, 463, 459, 464, 459, 467, 468, 470, 
+       471, 472, 466, 469, 469, 465, 467, 466, 
+       473, 475, 81, 474, 83, 83, 83, 84, 
+       91, 91, 91, 91, 474, 83, 83, 83, 
+       84, 91, 476, 91, 91, 91, 474, 83, 
+       83, 83, 84, 91, 477, 91, 91, 91, 
+       474, 112, 112, 112, 113, 478, 479, 481, 
+       480, 484, 485, 487, 483, 486, 486, 482, 
+       484, 483, 488, 123, 127, 489, 129, 129, 
        129, 129, 129, 129, 129, 129, 129, 129, 
-       129, 479, 132, 132, 132, 133, 480, 481, 
-       483, 482, 486, 487, 488, 489, 490, 491, 
-       492, 485, 484, 486, 485, 493, 143, 147, 
-       494, 495, 494, 496, 494, 497, 494, 498, 
-       494, 500, 499, 503, 504, 506, 507, 502, 
-       505, 505, 505, 501, 503, 502, 508, 166, 
-       170, 509, 176, 178, 179, 175, 177, 177, 
-       177, 509, 176, 178, 510, 511, 179, 175, 
-       177, 177, 177, 509, 513, 512, 516, 517, 
-       518, 519, 520, 521, 522, 515, 514, 516, 
-       515, 523, 525, 217, 524, 526, 524, 527, 
-       524, 528, 524, 529, 524, 249, 249, 249, 
-       250, 530, 531, 533, 532, 536, 537, 539, 
-       540, 535, 538, 538, 538, 534, 536, 535, 
-       541, 260, 264, 542, 270, 272, 273, 269, 
-       271, 271, 271, 542, 270, 272, 543, 544, 
-       273, 269, 271, 271, 271, 542, 546, 545, 
-       549, 550, 551, 552, 553, 554, 555, 556, 
-       557, 558, 548, 547, 549, 548, 559, 561, 
-       311, 560, 562, 560, 563, 560, 566, 565, 
-       564, 567, 568, 560, 571, 570, 569, 573, 
-       572, 574, 560, 576, 575, 577, 560, 580, 
-       579, 578, 581, 560, 582, 560, 584, 583, 
-       0
+       489, 132, 132, 132, 133, 490, 491, 493, 
+       492, 496, 497, 498, 499, 500, 501, 502, 
+       495, 494, 496, 495, 503, 143, 147, 504, 
+       505, 504, 506, 504, 507, 504, 508, 504, 
+       510, 509, 513, 514, 516, 517, 512, 515, 
+       515, 515, 511, 513, 512, 518, 166, 170, 
+       519, 176, 178, 179, 175, 177, 177, 177, 
+       519, 176, 178, 520, 521, 179, 175, 177, 
+       177, 177, 519, 523, 522, 526, 527, 528, 
+       529, 530, 531, 532, 525, 524, 526, 525, 
+       533, 535, 217, 534, 536, 534, 537, 534, 
+       538, 534, 539, 534, 249, 249, 249, 250, 
+       540, 541, 543, 542, 546, 547, 549, 550, 
+       545, 548, 548, 548, 544, 546, 545, 551, 
+       260, 264, 552, 270, 272, 273, 269, 271, 
+       271, 271, 552, 270, 272, 553, 554, 273, 
+       269, 271, 271, 271, 552, 556, 555, 559, 
+       560, 561, 562, 563, 564, 565, 566, 567, 
+       568, 558, 557, 559, 558, 569, 571, 311, 
+       570, 572, 570, 573, 570, 576, 575, 574, 
+       577, 578, 570, 581, 580, 579, 583, 582, 
+       584, 570, 586, 585, 587, 570, 590, 589, 
+       588, 591, 570, 592, 570, 594, 593, 0
 };
 
 static const short _eo_tokenizer_trans_targs[] = {
-       301, 0, 0, 1, 301, 2, 301, 4, 
+       307, 0, 0, 1, 307, 2, 307, 4, 
        5, 6, 7, 8, 9, 10, 10, 11, 
-       12, 13, 12, 14, 11, 301, 12, 12, 
-       301, 13, 14, 15, 16, 12, 12, 301
+       12, 13, 12, 14, 11, 307, 12, 12, 
+       307, 13, 14, 15, 16, 12, 12, 307
        17, 17, 15, 18, 16, 17, 17, 18, 
        18, 20, 21, 22, 10, 24, 25, 26, 
        27, 28, 29, 30, 10, 32, 33, 34, 
        10, 36, 37, 38, 39, 40, 39, 41, 
-       40, 41, 42, 43, 301, 309, 45, 45, 
-       46, 47, 309, 47, 48, 48, 48, 49, 
-       309, 50, 309, 51, 52, 53, 54, 53, 
-       54, 54, 309, 55, 57, 58, 59, 60, 
-       61, 62, 62, 309, 64, 65, 66, 67, 
-       68, 69, 78, 70, 71, 315, 71, 309
+       40, 41, 42, 43, 307, 315, 45, 45, 
+       46, 47, 315, 47, 48, 48, 48, 49, 
+       315, 50, 315, 51, 52, 53, 54, 53, 
+       54, 54, 315, 55, 57, 58, 59, 60, 
+       61, 62, 62, 315, 64, 65, 66, 67, 
+       68, 69, 78, 70, 71, 321, 71, 315
        72, 73, 74, 75, 75, 76, 76, 76, 
-       77, 316, 318, 79, 79, 80, 318, 81, 
-       318, 82, 322, 318, 83, 84, 85, 86, 
-       86, 87, 87, 87, 88, 323, 325, 89, 
-       89, 90, 325, 91, 325, 93, 93, 325
-       95, 96, 96, 325, 98, 98, 325, 100, 
-       101, 102, 103, 103, 325, 333, 104, 104, 
-       105, 333, 106, 333, 107, 107, 333, 107, 
-       107, 108, 109, 333, 111, 112, 113, 114, 
+       77, 322, 324, 79, 79, 80, 324, 81, 
+       324, 82, 328, 324, 83, 84, 85, 86, 
+       86, 87, 87, 87, 88, 329, 331, 89, 
+       89, 90, 331, 91, 331, 93, 93, 331
+       95, 96, 96, 331, 98, 98, 331, 100, 
+       101, 102, 103, 103, 331, 339, 104, 104, 
+       105, 339, 106, 339, 107, 107, 339, 107, 
+       107, 108, 109, 339, 111, 112, 113, 114, 
        115, 116, 117, 118, 108, 119, 120, 128, 
        121, 122, 123, 124, 125, 126, 127, 129, 
-       130, 131, 133, 134, 135, 339, 137, 137, 
-       138, 139, 339, 139, 140, 140, 140, 141, 
-       339, 142, 339, 144, 145, 146, 339, 148, 
-       149, 150, 151, 152, 153, 153, 339, 155, 
-       156, 157, 158, 158, 339, 160, 161, 162, 
-       163, 164, 165, 174, 166, 167, 346, 167, 
-       339, 168, 169, 170, 171, 171, 172, 172, 
-       172, 173, 347, 349, 175, 175, 176, 349
-       177, 349, 178, 178, 349, 178, 178, 179, 
-       180, 349, 182, 183, 184, 185, 186, 187, 
+       130, 131, 133, 134, 135, 345, 137, 137, 
+       138, 139, 345, 139, 140, 140, 140, 141, 
+       345, 142, 345, 144, 145, 146, 345, 148, 
+       149, 150, 151, 152, 153, 153, 345, 155, 
+       156, 157, 158, 158, 345, 160, 161, 162, 
+       163, 164, 165, 174, 166, 167, 352, 167, 
+       345, 168, 169, 170, 171, 171, 172, 172, 
+       172, 173, 353, 355, 175, 175, 176, 355
+       177, 355, 178, 178, 355, 178, 178, 179, 
+       180, 355, 182, 183, 184, 185, 186, 187, 
        188, 189, 179, 190, 191, 199, 192, 193, 
        194, 195, 196, 197, 198, 200, 201, 202, 
-       204, 205, 206, 355, 208, 208, 209, 210, 
-       355, 210, 211, 211, 211, 212, 355, 213, 
-       355, 215, 216, 217, 218, 219, 220, 221, 
-       222, 223, 224, 224, 355, 226, 227, 227, 
-       228, 228, 229, 229, 360, 231, 232, 233, 
+       204, 205, 206, 361, 208, 208, 209, 210, 
+       361, 210, 211, 211, 211, 212, 361, 213, 
+       361, 215, 216, 217, 218, 219, 220, 221, 
+       222, 223, 224, 224, 361, 226, 227, 227, 
+       228, 228, 229, 229, 366, 231, 232, 233, 
        234, 235, 236, 237, 237, 238, 238, 239, 
-       239, 362, 241, 242, 243, 244, 244, 245, 
-       245, 246, 363, 247, 255, 247, 256, 246, 
-       248, 247, 247, 248, 249, 250, 251, 251, 
-       252, 252, 252, 253, 254, 245, 245, 246, 
-       363, 255, 256, 257, 257, 258, 247, 247, 
-       248, 260, 261, 262, 263, 264, 265, 266, 
-       267, 267, 268, 268, 269, 365, 270, 270, 
-       269, 271, 268, 270, 270, 273, 274, 275, 
-       276, 277, 278, 279, 280, 281, 282, 283, 
-       283, 284, 284, 285, 285, 367, 287, 288, 
-       289, 290, 291, 291, 355, 293, 294, 295, 
-       296, 297, 298, 299, 300, 300, 355, 301, 
-       302, 302, 303, 304, 305, 306, 307, 308, 
-       301, 301, 3, 19, 23, 31, 35, 309, 
-       310, 310, 311, 312, 313, 314, 317, 309, 
-       309, 44, 56, 63, 309, 309, 309, 309, 
-       318, 319, 319, 320, 321, 324, 318, 318, 
-       318, 318, 318, 318, 325, 326, 326, 327, 
-       328, 329, 330, 331, 332, 325, 325, 92, 
-       94, 97, 99, 325, 325, 333, 334, 334, 
-       335, 336, 337, 338, 333, 333, 110, 132, 
-       333, 333, 339, 340, 340, 341, 342, 343, 
-       344, 345, 348, 339, 339, 136, 143, 147, 
-       154, 159, 339, 339, 339, 339, 349, 350, 
-       350, 351, 352, 353, 354, 349, 349, 181, 
-       203, 349, 349, 355, 356, 356, 357, 358, 
-       359, 361, 364, 366, 368, 369, 370, 355, 
-       355, 207, 214, 225, 355, 360, 360, 230, 
-       240, 355, 362, 362, 355, 355, 259, 355, 
-       355, 272, 355, 367, 367, 286, 292, 355, 
-       355
+       239, 368, 241, 242, 243, 244, 244, 245, 
+       245, 246, 369, 247, 261, 247, 262, 246, 
+       248, 247, 247, 248, 249, 249, 255, 250, 
+       251, 254, 251, 252, 253, 253, 256, 257, 
+       257, 258, 258, 258, 259, 260, 249, 249, 
+       250, 246, 369, 261, 262, 263, 263, 264, 
+       247, 247, 248, 266, 267, 268, 269, 270, 
+       271, 272, 273, 273, 274, 274, 275, 371, 
+       276, 276, 275, 277, 274, 276, 276, 279, 
+       280, 281, 282, 283, 284, 285, 286, 287, 
+       288, 289, 289, 290, 290, 291, 291, 373, 
+       293, 294, 295, 296, 297, 297, 361, 299, 
+       300, 301, 302, 303, 304, 305, 306, 306, 
+       361, 307, 308, 308, 309, 310, 311, 312, 
+       313, 314, 307, 307, 3, 19, 23, 31, 
+       35, 315, 316, 316, 317, 318, 319, 320, 
+       323, 315, 315, 44, 56, 63, 315, 315, 
+       315, 315, 324, 325, 325, 326, 327, 330, 
+       324, 324, 324, 324, 324, 324, 331, 332, 
+       332, 333, 334, 335, 336, 337, 338, 331, 
+       331, 92, 94, 97, 99, 331, 331, 339, 
+       340, 340, 341, 342, 343, 344, 339, 339, 
+       110, 132, 339, 339, 345, 346, 346, 347, 
+       348, 349, 350, 351, 354, 345, 345, 136, 
+       143, 147, 154, 159, 345, 345, 345, 345, 
+       355, 356, 356, 357, 358, 359, 360, 355, 
+       355, 181, 203, 355, 355, 361, 362, 362, 
+       363, 364, 365, 367, 370, 372, 374, 375, 
+       376, 361, 361, 207, 214, 225, 361, 366, 
+       366, 230, 240, 361, 368, 368, 361, 361, 
+       265, 361, 361, 278, 361, 373, 373, 292, 
+       298, 361, 361
 };
 
 static const short _eo_tokenizer_trans_actions[] = {
-       207, 0, 1, 0, 197, 0, 230, 0, 
-       0, 0, 0, 0, 0, 31, 0, 3
-       37, 37, 293, 37, 0, 296, 0, 1, 
-       199, 0, 0, 0, 3, 13, 272, 275
-       11, 269, 11, 11, 0, 0, 1, 0, 
-       1, 0, 0, 0, 29, 0, 0, 0, 
-       0, 0, 0, 0, 35, 0, 0, 0, 
-       33, 0, 0, 0, 3, 39, 0, 39
-       0, 0, 3, 0, 299, 65, 0, 1, 
-       0, 0, 49, 1, 3, 0, 1, 0, 
-       47, 0, 209, 0, 0, 5, 239, 0, 
-       3, 0, 242, 0, 0, 0, 0, 0, 
-       0, 3, 0, 236, 0, 0, 0, 0, 
-       0, 3, 3, 3, 3, 308, 0, 63
-       0, 0, 0, 0, 1, 3, 0, 1, 
-       0, 0, 83, 0, 1, 0, 67, 0, 
-       212, 0, 311, 81, 0, 0, 0, 0, 
-       1, 3, 0, 1, 0, 0, 105, 0, 
-       1, 0, 85, 0, 215, 0, 1, 87
-       0, 0, 1, 91, 0, 1, 89, 0, 
-       0, 0, 0, 1, 93, 121, 0, 1, 
-       0, 107, 0, 218, 0, 1, 109, 7
-       248, 0, 0, 251, 0, 0, 0, 0, 
-       0, 0, 0, 0, 317, 317, 0, 0, 
+       209, 0, 1, 0, 199, 0, 232, 0, 
+       0, 0, 0, 0, 0, 33, 0, 5
+       39, 39, 298, 39, 0, 301, 0, 1, 
+       201, 0, 0, 0, 5, 15, 274, 277
+       13, 271, 13, 13, 0, 0, 1, 0, 
+       1, 0, 0, 0, 31, 0, 0, 0, 
+       0, 0, 0, 0, 37, 0, 0, 0, 
+       35, 0, 0, 0, 5, 41, 0, 41
+       0, 0, 5, 0, 304, 67, 0, 1, 
+       0, 0, 51, 1, 5, 0, 1, 0, 
+       49, 0, 211, 0, 0, 7, 241, 0, 
+       5, 0, 244, 0, 0, 0, 0, 0, 
+       0, 5, 0, 238, 0, 0, 0, 0, 
+       0, 5, 5, 5, 5, 313, 0, 65
+       0, 0, 0, 0, 1, 5, 0, 1, 
+       0, 0, 85, 0, 1, 0, 69, 0, 
+       214, 0, 316, 83, 0, 0, 0, 0, 
+       1, 5, 0, 1, 0, 0, 107, 0, 
+       1, 0, 87, 0, 217, 0, 1, 89
+       0, 0, 1, 93, 0, 1, 91, 0, 
+       0, 0, 0, 1, 95, 123, 0, 1, 
+       0, 109, 0, 220, 0, 1, 111, 9
+       250, 0, 0, 253, 0, 0, 0, 0, 
+       0, 0, 0, 0, 322, 322, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
-       0, 0, 0, 0, 0, 143, 0, 1, 
-       0, 0, 125, 1, 3, 0, 1, 0, 
-       123, 0, 221, 0, 0, 0, 260, 0, 
-       0, 0, 0, 0, 3, 0, 257, 0, 
-       0, 0, 0, 1, 127, 0, 0, 0, 
-       0, 0, 3, 3, 3, 3, 314, 0, 
-       141, 0, 0, 0, 0, 1, 3, 0, 
-       1, 0, 0, 159, 0, 1, 0, 145
-       0, 224, 0, 1, 147, 9, 263, 0, 
-       0, 266, 0, 0, 0, 0, 0, 0, 
-       0, 0, 321, 321, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 145, 0, 1, 
+       0, 0, 127, 1, 5, 0, 1, 0, 
+       125, 0, 223, 0, 0, 0, 262, 0, 
+       0, 0, 0, 0, 5, 0, 259, 0, 
+       0, 0, 0, 1, 129, 0, 0, 0, 
+       0, 0, 5, 5, 5, 5, 319, 0, 
+       143, 0, 0, 0, 0, 1, 5, 0, 
+       1, 0, 0, 161, 0, 1, 0, 147
+       0, 226, 0, 1, 149, 11, 265, 0, 
+       0, 268, 0, 0, 0, 0, 0, 0, 
+       0, 0, 326, 326, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
-       0, 0, 0, 195, 0, 1, 0, 0, 
-       163, 1, 3, 0, 1, 0, 161, 0, 
-       227, 0, 0, 0, 0, 0, 0, 0, 
-       0, 0, 0, 1, 169, 0, 0, 1, 
-       0, 1, 3, 0, 25, 0, 0, 0, 
-       0, 0, 0, 0, 1, 0, 1, 3, 
-       0, 23, 0, 0, 0, 0, 1, 0, 
-       1, 3, 0, 15, 15, 278, 15, 0, 
-       15, 0, 1, 0, 0, 0, 0, 1, 
-       3, 0, 1, 0, 0, 19, 284, 287, 
-       19, 0, 0, 3, 0, 0, 17, 281, 
-       17, 0, 0, 0, 0, 0, 0, 0, 
-       0, 1, 0, 1, 3, 0, 27, 290, 
-       0, 0, 27, 0, 1, 0, 0, 0, 
+       0, 0, 0, 197, 0, 1, 0, 0, 
+       165, 1, 5, 0, 1, 0, 163, 0, 
+       229, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 1, 171, 0, 0, 1, 
+       0, 1, 5, 0, 27, 0, 0, 0, 
+       0, 0, 0, 0, 1, 0, 1, 5, 
+       0, 25, 0, 0, 0, 0, 1, 0, 
+       1, 5, 0, 17, 17, 280, 17, 0, 
+       17, 0, 1, 0, 0, 1, 3, 3, 
+       0, 0, 1, 0, 0, 1, 0, 0, 
+       1, 5, 0, 1, 0, 0, 21, 286, 
+       289, 292, 21, 0, 0, 5, 0, 0, 
+       19, 283, 19, 0, 0, 0, 0, 0, 
+       0, 0, 0, 1, 0, 1, 5, 0, 
+       29, 295, 0, 0, 29, 0, 1, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
-       1, 0, 1, 3, 0, 21, 0, 0
-       0, 0, 0, 1, 173, 0, 0, 0, 
-       0, 0, 0, 0, 0, 1, 171, 201, 
-       0, 1, 302, 45, 45, 45, 45, 45
-       203, 205, 0, 0, 0, 0, 0, 53
-       0, 1, 302, 305, 305, 305, 0, 55
-       61, 0, 0, 0, 57, 233, 59, 51
-       71, 0, 1, 302, 305, 0, 73, 79
-       75, 245, 77, 69, 97, 0, 1, 302
-       45, 45, 45, 45, 0, 99, 103, 0
-       0, 0, 0, 101, 95, 113, 0, 1
-       302, 305, 305, 0, 115, 119, 0, 0
-       117, 111, 131, 0, 1, 302, 45, 45
-       45, 45, 0, 133, 139, 0, 0, 0, 
-       0, 0, 135, 254, 137, 129, 151, 0
-       1, 302, 305, 305, 0, 153, 157, 0
-       0, 155, 149, 177, 0, 1, 302, 45
-       45, 45, 45, 45, 45, 45, 0, 179
-       193, 0, 0, 0, 185, 0, 1, 0, 
-       0, 183, 0, 1, 189, 167, 0, 187
-       165, 0, 181, 0, 1, 0, 0, 191
-       175
+       0, 0, 1, 0, 1, 5, 0, 23
+       0, 0, 0, 0, 0, 1, 175, 0, 
+       0, 0, 0, 0, 0, 0, 0, 1, 
+       173, 203, 0, 1, 307, 47, 47, 47
+       47, 47, 205, 207, 0, 0, 0, 0
+       0, 55, 0, 1, 307, 310, 310, 310
+       0, 57, 63, 0, 0, 0, 59, 235
+       61, 53, 73, 0, 1, 307, 310, 0
+       75, 81, 77, 247, 79, 71, 99, 0
+       1, 307, 47, 47, 47, 47, 0, 101
+       105, 0, 0, 0, 0, 103, 97, 115
+       0, 1, 307, 310, 310, 0, 117, 121
+       0, 0, 119, 113, 133, 0, 1, 307
+       47, 47, 47, 47, 0, 135, 141, 0, 
+       0, 0, 0, 0, 137, 256, 139, 131
+       153, 0, 1, 307, 310, 310, 0, 155
+       159, 0, 0, 157, 151, 179, 0, 1
+       307, 47, 47, 47, 47, 47, 47, 47
+       0, 181, 195, 0, 0, 0, 187, 0, 
+       1, 0, 0, 185, 0, 1, 191, 169
+       0, 189, 167, 0, 183, 0, 1, 0
+       0, 193, 177
 };
 
 static const short _eo_tokenizer_to_state_actions[] = {
@@ -1284,16 +1298,17 @@ static const short _eo_tokenizer_to_state_actions[] = {
        0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
-       0, 0, 0, 0, 0, 41, 0, 0, 
-       0, 0, 0, 0, 0, 41, 0, 0, 
-       0, 0, 0, 0, 0, 0, 41, 0, 
-       0, 0, 0, 0, 0, 41, 0, 0, 
-       0, 0, 0, 0, 0, 41, 0, 0, 
-       0, 0, 0, 41, 0, 0, 0, 0, 
-       0, 0, 0, 0, 0, 41, 0, 0, 
-       0, 0, 0, 41, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
-       0, 0, 0
+       0, 0, 0, 43, 0, 0, 0, 0, 
+       0, 0, 0, 43, 0, 0, 0, 0, 
+       0, 0, 0, 0, 43, 0, 0, 0, 
+       0, 0, 0, 43, 0, 0, 0, 0, 
+       0, 0, 0, 43, 0, 0, 0, 0, 
+       0, 43, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 43, 0, 0, 0, 0, 
+       0, 43, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0
 };
 
 static const short _eo_tokenizer_from_state_actions[] = {
@@ -1334,16 +1349,17 @@ static const short _eo_tokenizer_from_state_actions[] = {
        0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
-       0, 0, 0, 0, 0, 43, 0, 0, 
-       0, 0, 0, 0, 0, 43, 0, 0, 
-       0, 0, 0, 0, 0, 0, 43, 0, 
-       0, 0, 0, 0, 0, 43, 0, 0, 
-       0, 0, 0, 0, 0, 43, 0, 0, 
-       0, 0, 0, 43, 0, 0, 0, 0, 
-       0, 0, 0, 0, 0, 43, 0, 0, 
-       0, 0, 0, 43, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
-       0, 0, 0
+       0, 0, 0, 45, 0, 0, 0, 0, 
+       0, 0, 0, 45, 0, 0, 0, 0, 
+       0, 0, 0, 0, 45, 0, 0, 0, 
+       0, 0, 0, 45, 0, 0, 0, 0, 
+       0, 0, 0, 45, 0, 0, 0, 0, 
+       0, 45, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 45, 0, 0, 0, 0, 
+       0, 45, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0
 };
 
 static const short _eo_tokenizer_eof_trans[] = {
@@ -1384,30 +1400,31 @@ static const short _eo_tokenizer_eof_trans[] = {
        300, 300, 300, 300, 300, 300, 300, 300, 
        300, 300, 300, 300, 300, 300, 300, 300, 
        300, 300, 300, 300, 300, 300, 300, 300, 
-       300, 300, 300, 300, 300, 0, 449, 450, 
-       450, 450, 450, 450, 450, 0, 464, 465, 
-       465, 465, 465, 469, 470, 471, 0, 479, 
-       480, 480, 481, 482, 483, 0, 494, 495, 
-       495, 495, 495, 495, 500, 0, 509, 510, 
-       510, 510, 513, 0, 524, 525, 525, 525, 
-       525, 525, 531, 532, 533, 0, 542, 543, 
-       543, 543, 546, 0, 560, 561, 561, 561, 
-       565, 561, 570, 573, 561, 576, 561, 579, 
-       561, 561, 584
+       300, 300, 300, 300, 300, 300, 300, 300, 
+       300, 300, 300, 0, 459, 460, 460, 460, 
+       460, 460, 460, 0, 474, 475, 475, 475, 
+       475, 479, 480, 481, 0, 489, 490, 490, 
+       491, 492, 493, 0, 504, 505, 505, 505, 
+       505, 505, 510, 0, 519, 520, 520, 520, 
+       523, 0, 534, 535, 535, 535, 535, 535, 
+       541, 542, 543, 0, 552, 553, 553, 553, 
+       556, 0, 570, 571, 571, 571, 575, 571, 
+       580, 583, 571, 586, 571, 589, 571, 571, 
+       594
 };
 
-static const int eo_tokenizer_start = 301;
-static const int eo_tokenizer_first_final = 301;
+static const int eo_tokenizer_start = 307;
+static const int eo_tokenizer_first_final = 307;
 static const int eo_tokenizer_error = -1;
 
-static const int eo_tokenizer_en_tokenize_accessor = 309;
-static const int eo_tokenizer_en_tokenize_params = 318;
-static const int eo_tokenizer_en_tokenize_property = 325;
-static const int eo_tokenizer_en_tokenize_properties = 333;
-static const int eo_tokenizer_en_tokenize_method = 339;
-static const int eo_tokenizer_en_tokenize_methods = 349;
-static const int eo_tokenizer_en_tokenize_class = 355;
-static const int eo_tokenizer_en_main = 301;
+static const int eo_tokenizer_en_tokenize_accessor = 315;
+static const int eo_tokenizer_en_tokenize_params = 324;
+static const int eo_tokenizer_en_tokenize_property = 331;
+static const int eo_tokenizer_en_tokenize_properties = 339;
+static const int eo_tokenizer_en_tokenize_method = 345;
+static const int eo_tokenizer_en_tokenize_methods = 355;
+static const int eo_tokenizer_en_tokenize_class = 361;
+static const int eo_tokenizer_en_main = 307;
 
 
 #line 996 "lib/eolian/eo_lexer.rl"
@@ -1434,7 +1451,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source)
      }
 
    
-#line 1438 "lib/eolian/eo_lexer.c"
+#line 1455 "lib/eolian/eo_lexer.c"
        {
         toknz->cs = eo_tokenizer_start;
         toknz->ts = 0;
@@ -1469,7 +1486,7 @@ eo_tokenizer_walk(Eo_Tokenizer *toknz, const char *source)
           }
 
         
-#line 1473 "lib/eolian/eo_lexer.c"
+#line 1490 "lib/eolian/eo_lexer.c"
        {
        int _klen;
        unsigned int _trans;
@@ -1488,7 +1505,7 @@ _resume:
 #line 1 "NONE"
        { toknz->ts = ( toknz->p);}
        break;
-#line 1492 "lib/eolian/eo_lexer.c"
+#line 1509 "lib/eolian/eo_lexer.c"
                }
        }
 
@@ -1873,7 +1890,7 @@ _eof_trans:
       toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor);
       toknz->tmp.accessor = NULL;
       toknz->current_nesting--;
-      { toknz->cs = 325; goto _again;}
+      { toknz->cs = 331; goto _again;}
    }}
        break;
        case 43:
@@ -1911,7 +1928,7 @@ _eof_trans:
       toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor);
       toknz->tmp.accessor = NULL;
       toknz->current_nesting--;
-      { toknz->cs = 325; goto _again;}
+      { toknz->cs = 331; goto _again;}
    }}
        break;
        case 47:
@@ -1970,9 +1987,9 @@ _eof_trans:
       toknz->tmp.param = NULL;
       toknz->current_nesting--;
       if (toknz->tmp.prop)
-        { toknz->cs = 325; goto _again;}
+        { toknz->cs = 331; goto _again;}
       else if (toknz->tmp.meth)
-        { toknz->cs = 339; goto _again;}
+        { toknz->cs = 345; goto _again;}
       else
         ABORT(toknz, "leaving tokenize_params but there is no property nor method pending");
    }}
@@ -2011,9 +2028,9 @@ _eof_trans:
       toknz->tmp.param = NULL;
       toknz->current_nesting--;
       if (toknz->tmp.prop)
-        { toknz->cs = 325; goto _again;}
+        { toknz->cs = 331; goto _again;}
       else if (toknz->tmp.meth)
-        { toknz->cs = 339; goto _again;}
+        { toknz->cs = 345; goto _again;}
       else
         ABORT(toknz, "leaving tokenize_params but there is no property nor method pending");
    }}
@@ -2073,7 +2090,7 @@ _eof_trans:
       INF("      get {");
       toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER);
       toknz->current_nesting++;
-      { toknz->cs = 309; goto _again;}
+      { toknz->cs = 315; goto _again;}
    }}
        break;
        case 61:
@@ -2082,7 +2099,7 @@ _eof_trans:
       INF("      set {");
       toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER);
       toknz->current_nesting++;
-      { toknz->cs = 309; goto _again;}
+      { toknz->cs = 315; goto _again;}
    }}
        break;
        case 62:
@@ -2091,7 +2108,7 @@ _eof_trans:
       INF("      keys {");
       toknz->current_nesting++;
       toknz->tmp.params = &(toknz->tmp.prop->keys);
-      { toknz->cs = 318; goto _again;}
+      { toknz->cs = 324; goto _again;}
    }}
        break;
        case 63:
@@ -2100,7 +2117,7 @@ _eof_trans:
       INF("      values {");
       toknz->current_nesting++;
       toknz->tmp.params = &(toknz->tmp.prop->values);
-      { toknz->cs = 318; goto _again;}
+      { toknz->cs = 324; goto _again;}
    }}
        break;
        case 64:
@@ -2114,7 +2131,7 @@ _eof_trans:
       toknz->tmp.prop = NULL;
       toknz->tmp.fscope = FUNC_PUBLIC;
       toknz->current_nesting--;
-      { toknz->cs = 333; goto _again;}
+      { toknz->cs = 339; goto _again;}
    }}
        break;
        case 65:
@@ -2151,7 +2168,7 @@ _eof_trans:
       toknz->tmp.prop = NULL;
       toknz->tmp.fscope = FUNC_PUBLIC;
       toknz->current_nesting--;
-      { toknz->cs = 333; goto _again;}
+      { toknz->cs = 339; goto _again;}
    }}
        break;
        case 68:
@@ -2205,7 +2222,7 @@ _eof_trans:
       if (!toknz->tmp.prop) ABORT(toknz, "No property!!!");
       INF("    %s {", toknz->tmp.prop->name);
       toknz->current_nesting++;
-      { toknz->cs = 325; goto _again;}
+      { toknz->cs = 331; goto _again;}
    }}
        break;
        case 72:
@@ -2213,7 +2230,7 @@ _eof_trans:
        { toknz->te = ( toknz->p)+1;{
       INF("  }");
       toknz->current_nesting--;
-      { toknz->cs = 355; goto _again;}
+      { toknz->cs = 361; goto _again;}
    }}
        break;
        case 73:
@@ -2244,7 +2261,7 @@ _eof_trans:
        { toknz->te = ( toknz->p);( toknz->p)--;{
       INF("  }");
       toknz->current_nesting--;
-      { toknz->cs = 355; goto _again;}
+      { toknz->cs = 361; goto _again;}
    }}
        break;
        case 76:
@@ -2309,7 +2326,7 @@ _eof_trans:
       INF("      params {");
       toknz->current_nesting++;
       toknz->tmp.params = &(toknz->tmp.meth->params);
-      { toknz->cs = 318; goto _again;}
+      { toknz->cs = 324; goto _again;}
    }}
        break;
        case 81:
@@ -2341,7 +2358,7 @@ _eof_trans:
       toknz->tmp.meth = NULL;
       toknz->tmp.fscope = FUNC_PUBLIC;
       toknz->current_nesting--;
-      { toknz->cs = 349; goto _again;}
+      { toknz->cs = 355; goto _again;}
    }}
        break;
        case 84:
@@ -2392,7 +2409,7 @@ _eof_trans:
       toknz->tmp.meth = NULL;
       toknz->tmp.fscope = FUNC_PUBLIC;
       toknz->current_nesting--;
-      { toknz->cs = 349; goto _again;}
+      { toknz->cs = 355; goto _again;}
    }}
        break;
        case 88:
@@ -2450,7 +2467,7 @@ _eof_trans:
       if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
       INF("    %s {", toknz->tmp.meth->name);
       toknz->current_nesting++;
-      { toknz->cs = 339; goto _again;}
+      { toknz->cs = 345; goto _again;}
    }}
        break;
        case 93:
@@ -2459,7 +2476,7 @@ _eof_trans:
       INF("  }");
       toknz->current_methods_type = METH_TYPE_LAST;
       toknz->current_nesting--;
-      { toknz->cs = 355; goto _again;}
+      { toknz->cs = 361; goto _again;}
    }}
        break;
        case 94:
@@ -2491,7 +2508,7 @@ _eof_trans:
       INF("  }");
       toknz->current_methods_type = METH_TYPE_LAST;
       toknz->current_nesting--;
-      { toknz->cs = 355; goto _again;}
+      { toknz->cs = 361; goto _again;}
    }}
        break;
        case 97:
@@ -2565,7 +2582,7 @@ _eof_trans:
       toknz->current_methods_type = METH_CONSTRUCTOR;
       toknz->tmp.fscope = FUNC_PUBLIC;
       toknz->current_nesting++;
-      { toknz->cs = 349; goto _again;}
+      { toknz->cs = 355; goto _again;}
    }}
        break;
        case 104:
@@ -2574,7 +2591,7 @@ _eof_trans:
       INF("  properties {");
       toknz->tmp.fscope = FUNC_PUBLIC;
       toknz->current_nesting++;
-      { toknz->cs = 333; goto _again;}
+      { toknz->cs = 339; goto _again;}
    }}
        break;
        case 105:
@@ -2584,7 +2601,7 @@ _eof_trans:
       toknz->current_methods_type = METH_REGULAR;
       toknz->tmp.fscope = FUNC_PUBLIC;
       toknz->current_nesting++;
-      { toknz->cs = 349; goto _again;}
+      { toknz->cs = 355; goto _again;}
    }}
        break;
        case 106:
@@ -2595,7 +2612,7 @@ _eof_trans:
       toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls);
       toknz->tmp.kls = NULL;
       toknz->current_nesting--;
-      { toknz->cs = 301; goto _again;}
+      { toknz->cs = 307; goto _again;}
    }}
        break;
        case 107:
@@ -2651,7 +2668,7 @@ _eof_trans:
       toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls);
       toknz->tmp.kls = NULL;
       toknz->current_nesting--;
-      { toknz->cs = 301; goto _again;}
+      { toknz->cs = 307; goto _again;}
    }}
        break;
        case 115:
@@ -2705,7 +2722,7 @@ _eof_trans:
       if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
       INF("begin class: %s", toknz->tmp.kls->name);
       toknz->current_nesting++;
-      { toknz->cs = 355; goto _again;}
+      { toknz->cs = 361; goto _again;}
    }}
        break;
        case 119:
@@ -2773,7 +2790,7 @@ _eof_trans:
       {( toknz->p)++; goto _out; }  /* necessary to stop scanners */
    }}
        break;
-#line 2777 "lib/eolian/eo_lexer.c"
+#line 2794 "lib/eolian/eo_lexer.c"
                }
        }
 
@@ -2786,7 +2803,7 @@ _again:
 #line 1 "NONE"
        { toknz->ts = 0;}
        break;
-#line 2790 "lib/eolian/eo_lexer.c"
+#line 2807 "lib/eolian/eo_lexer.c"
                }
        }
 
@@ -2807,7 +2824,7 @@ _again:
 #line 1045 "lib/eolian/eo_lexer.rl"
 
         if ( toknz->cs == 
-#line 2811 "lib/eolian/eo_lexer.c"
+#line 2828 "lib/eolian/eo_lexer.c"
 -1
 #line 1046 "lib/eolian/eo_lexer.rl"
  )
@@ -2855,7 +2872,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns
    Eina_Bool ret = EINA_TRUE;
 
    
-#line 2859 "lib/eolian/eo_lexer.c"
+#line 2876 "lib/eolian/eo_lexer.c"
        {
         toknz->cs = eo_tokenizer_start;
         toknz->ts = 0;
@@ -2872,7 +2889,7 @@ eo_tokenizer_mem_walk(Eo_Tokenizer *toknz, const char *source, char *buffer, uns
    toknz->eof = toknz->pe;
 
    
-#line 2876 "lib/eolian/eo_lexer.c"
+#line 2893 "lib/eolian/eo_lexer.c"
        {
        int _klen;
        unsigned int _trans;
@@ -2891,7 +2908,7 @@ _resume:
 #line 1 "NONE"
        { toknz->ts = ( toknz->p);}
        break;
-#line 2895 "lib/eolian/eo_lexer.c"
+#line 2912 "lib/eolian/eo_lexer.c"
                }
        }
 
@@ -3276,7 +3293,7 @@ _eof_trans:
       toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor);
       toknz->tmp.accessor = NULL;
       toknz->current_nesting--;
-      { toknz->cs = 325; goto _again;}
+      { toknz->cs = 331; goto _again;}
    }}
        break;
        case 43:
@@ -3314,7 +3331,7 @@ _eof_trans:
       toknz->tmp.prop->accessors = eina_list_append(toknz->tmp.prop->accessors, toknz->tmp.accessor);
       toknz->tmp.accessor = NULL;
       toknz->current_nesting--;
-      { toknz->cs = 325; goto _again;}
+      { toknz->cs = 331; goto _again;}
    }}
        break;
        case 47:
@@ -3373,9 +3390,9 @@ _eof_trans:
       toknz->tmp.param = NULL;
       toknz->current_nesting--;
       if (toknz->tmp.prop)
-        { toknz->cs = 325; goto _again;}
+        { toknz->cs = 331; goto _again;}
       else if (toknz->tmp.meth)
-        { toknz->cs = 339; goto _again;}
+        { toknz->cs = 345; goto _again;}
       else
         ABORT(toknz, "leaving tokenize_params but there is no property nor method pending");
    }}
@@ -3414,9 +3431,9 @@ _eof_trans:
       toknz->tmp.param = NULL;
       toknz->current_nesting--;
       if (toknz->tmp.prop)
-        { toknz->cs = 325; goto _again;}
+        { toknz->cs = 331; goto _again;}
       else if (toknz->tmp.meth)
-        { toknz->cs = 339; goto _again;}
+        { toknz->cs = 345; goto _again;}
       else
         ABORT(toknz, "leaving tokenize_params but there is no property nor method pending");
    }}
@@ -3476,7 +3493,7 @@ _eof_trans:
       INF("      get {");
       toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, GETTER);
       toknz->current_nesting++;
-      { toknz->cs = 309; goto _again;}
+      { toknz->cs = 315; goto _again;}
    }}
        break;
        case 61:
@@ -3485,7 +3502,7 @@ _eof_trans:
       INF("      set {");
       toknz->tmp.accessor = _eo_tokenizer_accessor_get(toknz, SETTER);
       toknz->current_nesting++;
-      { toknz->cs = 309; goto _again;}
+      { toknz->cs = 315; goto _again;}
    }}
        break;
        case 62:
@@ -3494,7 +3511,7 @@ _eof_trans:
       INF("      keys {");
       toknz->current_nesting++;
       toknz->tmp.params = &(toknz->tmp.prop->keys);
-      { toknz->cs = 318; goto _again;}
+      { toknz->cs = 324; goto _again;}
    }}
        break;
        case 63:
@@ -3503,7 +3520,7 @@ _eof_trans:
       INF("      values {");
       toknz->current_nesting++;
       toknz->tmp.params = &(toknz->tmp.prop->values);
-      { toknz->cs = 318; goto _again;}
+      { toknz->cs = 324; goto _again;}
    }}
        break;
        case 64:
@@ -3517,7 +3534,7 @@ _eof_trans:
       toknz->tmp.prop = NULL;
       toknz->tmp.fscope = FUNC_PUBLIC;
       toknz->current_nesting--;
-      { toknz->cs = 333; goto _again;}
+      { toknz->cs = 339; goto _again;}
    }}
        break;
        case 65:
@@ -3554,7 +3571,7 @@ _eof_trans:
       toknz->tmp.prop = NULL;
       toknz->tmp.fscope = FUNC_PUBLIC;
       toknz->current_nesting--;
-      { toknz->cs = 333; goto _again;}
+      { toknz->cs = 339; goto _again;}
    }}
        break;
        case 68:
@@ -3608,7 +3625,7 @@ _eof_trans:
       if (!toknz->tmp.prop) ABORT(toknz, "No property!!!");
       INF("    %s {", toknz->tmp.prop->name);
       toknz->current_nesting++;
-      { toknz->cs = 325; goto _again;}
+      { toknz->cs = 331; goto _again;}
    }}
        break;
        case 72:
@@ -3616,7 +3633,7 @@ _eof_trans:
        { toknz->te = ( toknz->p)+1;{
       INF("  }");
       toknz->current_nesting--;
-      { toknz->cs = 355; goto _again;}
+      { toknz->cs = 361; goto _again;}
    }}
        break;
        case 73:
@@ -3647,7 +3664,7 @@ _eof_trans:
        { toknz->te = ( toknz->p);( toknz->p)--;{
       INF("  }");
       toknz->current_nesting--;
-      { toknz->cs = 355; goto _again;}
+      { toknz->cs = 361; goto _again;}
    }}
        break;
        case 76:
@@ -3712,7 +3729,7 @@ _eof_trans:
       INF("      params {");
       toknz->current_nesting++;
       toknz->tmp.params = &(toknz->tmp.meth->params);
-      { toknz->cs = 318; goto _again;}
+      { toknz->cs = 324; goto _again;}
    }}
        break;
        case 81:
@@ -3744,7 +3761,7 @@ _eof_trans:
       toknz->tmp.meth = NULL;
       toknz->tmp.fscope = FUNC_PUBLIC;
       toknz->current_nesting--;
-      { toknz->cs = 349; goto _again;}
+      { toknz->cs = 355; goto _again;}
    }}
        break;
        case 84:
@@ -3795,7 +3812,7 @@ _eof_trans:
       toknz->tmp.meth = NULL;
       toknz->tmp.fscope = FUNC_PUBLIC;
       toknz->current_nesting--;
-      { toknz->cs = 349; goto _again;}
+      { toknz->cs = 355; goto _again;}
    }}
        break;
        case 88:
@@ -3853,7 +3870,7 @@ _eof_trans:
       if (!toknz->tmp.meth) ABORT(toknz, "No method!!!");
       INF("    %s {", toknz->tmp.meth->name);
       toknz->current_nesting++;
-      { toknz->cs = 339; goto _again;}
+      { toknz->cs = 345; goto _again;}
    }}
        break;
        case 93:
@@ -3862,7 +3879,7 @@ _eof_trans:
       INF("  }");
       toknz->current_methods_type = METH_TYPE_LAST;
       toknz->current_nesting--;
-      { toknz->cs = 355; goto _again;}
+      { toknz->cs = 361; goto _again;}
    }}
        break;
        case 94:
@@ -3894,7 +3911,7 @@ _eof_trans:
       INF("  }");
       toknz->current_methods_type = METH_TYPE_LAST;
       toknz->current_nesting--;
-      { toknz->cs = 355; goto _again;}
+      { toknz->cs = 361; goto _again;}
    }}
        break;
        case 97:
@@ -3968,7 +3985,7 @@ _eof_trans:
       toknz->current_methods_type = METH_CONSTRUCTOR;
       toknz->tmp.fscope = FUNC_PUBLIC;
       toknz->current_nesting++;
-      { toknz->cs = 349; goto _again;}
+      { toknz->cs = 355; goto _again;}
    }}
        break;
        case 104:
@@ -3977,7 +3994,7 @@ _eof_trans:
       INF("  properties {");
       toknz->tmp.fscope = FUNC_PUBLIC;
       toknz->current_nesting++;
-      { toknz->cs = 333; goto _again;}
+      { toknz->cs = 339; goto _again;}
    }}
        break;
        case 105:
@@ -3987,7 +4004,7 @@ _eof_trans:
       toknz->current_methods_type = METH_REGULAR;
       toknz->tmp.fscope = FUNC_PUBLIC;
       toknz->current_nesting++;
-      { toknz->cs = 349; goto _again;}
+      { toknz->cs = 355; goto _again;}
    }}
        break;
        case 106:
@@ -3998,7 +4015,7 @@ _eof_trans:
       toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls);
       toknz->tmp.kls = NULL;
       toknz->current_nesting--;
-      { toknz->cs = 301; goto _again;}
+      { toknz->cs = 307; goto _again;}
    }}
        break;
        case 107:
@@ -4054,7 +4071,7 @@ _eof_trans:
       toknz->classes = eina_list_append(toknz->classes, toknz->tmp.kls);
       toknz->tmp.kls = NULL;
       toknz->current_nesting--;
-      { toknz->cs = 301; goto _again;}
+      { toknz->cs = 307; goto _again;}
    }}
        break;
        case 115:
@@ -4108,7 +4125,7 @@ _eof_trans:
       if (!toknz->tmp.kls) ABORT(toknz, "No class!!!");
       INF("begin class: %s", toknz->tmp.kls->name);
       toknz->current_nesting++;
-      { toknz->cs = 355; goto _again;}
+      { toknz->cs = 361; goto _again;}
    }}
        break;
        case 119:
@@ -4176,7 +4193,7 @@ _eof_trans:
       {( toknz->p)++; goto _out; }  /* necessary to stop scanners */
    }}
        break;
-#line 4180 "lib/eolian/eo_lexer.c"
+#line 4197 "lib/eolian/eo_lexer.c"
                }
        }
 
@@ -4189,7 +4206,7 @@ _again:
 #line 1 "NONE"
        { toknz->ts = 0;}
        break;
-#line 4193 "lib/eolian/eo_lexer.c"
+#line 4210 "lib/eolian/eo_lexer.c"
                }
        }
 
@@ -4210,7 +4227,7 @@ _again:
 #line 1099 "lib/eolian/eo_lexer.rl"
 
    if ( toknz->cs == 
-#line 4214 "lib/eolian/eo_lexer.c"
+#line 4231 "lib/eolian/eo_lexer.c"
 -1
 #line 1100 "lib/eolian/eo_lexer.rl"
  )
index b13c809cd6c910cbd413d227f30199aa5ebe84bd..0a3e335da0b0c70b1d8574a0716b74d1b22b8008 100644 (file)
@@ -910,7 +910,7 @@ _eo_tokenizer_implement_get(Eo_Tokenizer *toknz, char *p)
 
    event_comment = ws* eo_comment %end_event_comment;
    event_type = begin_list ws* alpha_u >save_fpc (alnum_u | '*' | ws )* ws* end_list %end_event_type;
-   event_it = event %end_event_name ws* event_type? ignore* end_statement event_comment? ignore*;
+   event_it = event %end_event_name ws* event_type? ignore* end_statement event_comment? ignore* comment* ignore*;
    events = 'events' ignore* begin_def ignore* event_it* end_def;
 
    constructors = 'constructors' ignore* begin_def;
diff --git a/src/tests/eolian/data/events.eo b/src/tests/eolian/data/events.eo
new file mode 100644 (file)
index 0000000..e5e1e76
--- /dev/null
@@ -0,0 +1,6 @@
+class Events {
+   events {
+      clicked; /*@ Comment for clicked */
+      clicked,double (Evas_Event_Clicked_Double_Info); /* No comment */
+   }
+}
index 26730d1ce4a1786c5906aa28abfc6687b3f8a138..a06bb13a7551ce50e92a98236e17ee5b7d39d336 100644 (file)
@@ -9,6 +9,37 @@
 #include "Eolian.h"
 #include "eolian_suite.h"
 
+START_TEST(eolian_events)
+{
+   Eolian_Class class;
+   const Eina_List *list = NULL;
+   const char *name, *type, *comment;
+
+   eolian_init();
+   /* Parsing */
+   fail_if(!eolian_eo_file_parse(PACKAGE_DATA_DIR"/data/events.eo"));
+
+   /* Class */
+   fail_if(!(class = eolian_class_find_by_name("Events")));
+
+   /* Events */
+   fail_if(!(list = eolian_class_events_list_get(class)));
+   fail_if(eina_list_count(list) != 2);
+   /* Clicked */
+   fail_if(!eolian_class_event_information_get(eina_list_nth(list, 0), &name, &type, &comment));
+   fail_if(strcmp(name, "clicked"));
+   fail_if(type);
+   fail_if(strcmp(comment, "Comment for clicked"));
+   /* Clicked,double */
+   fail_if(!eolian_class_event_information_get(eina_list_nth(list, 1), &name, &type, &comment));
+   fail_if(strcmp(name, "clicked,double"));
+   fail_if(strcmp(type, "Evas_Event_Clicked_Double_Info"));
+   fail_if(comment);
+
+   eolian_shutdown();
+}
+END_TEST
+
 START_TEST(eolian_override)
 {
    Eolian_Function fid = NULL;
@@ -346,5 +377,6 @@ void eolian_parsing_test(TCase *tc)
    tcase_add_test(tc, eolian_typedef);
    tcase_add_test(tc, eolian_consts);
    tcase_add_test(tc, eolian_override);
+   tcase_add_test(tc, eolian_events);
 }