Committed by
Gerrit Code Review
string issue fix for few yang construct like config, mandatory + allowing yang c…
…onstructs as identifers and string Change-Id: I8dd01dc60d280a843b0a485681caa6bfcac013c2
Showing
16 changed files
with
717 additions
and
153 deletions
| ... | @@ -1178,22 +1178,6 @@ public interface GeneratedYangListener extends ParseTreeListener { | ... | @@ -1178,22 +1178,6 @@ public interface GeneratedYangListener extends ParseTreeListener { |
| 1178 | 1178 | ||
| 1179 | /** | 1179 | /** |
| 1180 | * Enter a parse tree produced by GeneratedYangParser for grammar rule | 1180 | * Enter a parse tree produced by GeneratedYangParser for grammar rule |
| 1181 | - * maxValueArgument. | ||
| 1182 | - * | ||
| 1183 | - * @param currentContext current context in the parsed tree | ||
| 1184 | - */ | ||
| 1185 | - void enterMaxValueArgument(GeneratedYangParser.MaxValueArgumentContext currentContext); | ||
| 1186 | - | ||
| 1187 | - /** | ||
| 1188 | - * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1189 | - * maxValueArgument. | ||
| 1190 | - * | ||
| 1191 | - * @param currentContext current context in the parsed tree | ||
| 1192 | - */ | ||
| 1193 | - void exitMaxValueArgument(GeneratedYangParser.MaxValueArgumentContext currentContext); | ||
| 1194 | - | ||
| 1195 | - /** | ||
| 1196 | - * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1197 | * valueStatement. | 1181 | * valueStatement. |
| 1198 | * | 1182 | * |
| 1199 | * @param currentContext current context in the parsed tree | 1183 | * @param currentContext current context in the parsed tree |
| ... | @@ -1720,6 +1704,37 @@ public interface GeneratedYangListener extends ParseTreeListener { | ... | @@ -1720,6 +1704,37 @@ public interface GeneratedYangListener extends ParseTreeListener { |
| 1720 | */ | 1704 | */ |
| 1721 | void exitIdentifier(GeneratedYangParser.IdentifierContext currentContext); | 1705 | void exitIdentifier(GeneratedYangParser.IdentifierContext currentContext); |
| 1722 | 1706 | ||
| 1707 | + /** | ||
| 1708 | + * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1709 | + * version. | ||
| 1710 | + * | ||
| 1711 | + * @param currentContext current context in the parsed tree | ||
| 1712 | + */ | ||
| 1713 | + void enterVersion(GeneratedYangParser.VersionContext currentContext); | ||
| 1714 | + | ||
| 1715 | + /** | ||
| 1716 | + * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1717 | + * version. | ||
| 1718 | + * | ||
| 1719 | + * @param currentContext current context in the parsed tree | ||
| 1720 | + */ | ||
| 1721 | + void exitVersion(GeneratedYangParser.VersionContext currentContext); | ||
| 1722 | + | ||
| 1723 | + /** | ||
| 1724 | + * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1725 | + * range. | ||
| 1726 | + * | ||
| 1727 | + * @param currentContext current context in the parsed tree | ||
| 1728 | + */ | ||
| 1729 | + void enterRange(GeneratedYangParser.RangeContext currentContext); | ||
| 1730 | + | ||
| 1731 | + /** | ||
| 1732 | + * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1733 | + * range. | ||
| 1734 | + * | ||
| 1735 | + * @param currentContext current context in the parsed tree | ||
| 1736 | + */ | ||
| 1737 | + void exitRange(GeneratedYangParser.RangeContext currentContext); | ||
| 1723 | 1738 | ||
| 1724 | /** | 1739 | /** |
| 1725 | * Enter a parse tree produced by GeneratedYangParser for grammar rule | 1740 | * Enter a parse tree produced by GeneratedYangParser for grammar rule |
| ... | @@ -1736,4 +1751,244 @@ public interface GeneratedYangListener extends ParseTreeListener { | ... | @@ -1736,4 +1751,244 @@ public interface GeneratedYangListener extends ParseTreeListener { |
| 1736 | * @param currentContext current context in the parsed tree | 1751 | * @param currentContext current context in the parsed tree |
| 1737 | */ | 1752 | */ |
| 1738 | void exitDateArgumentString(GeneratedYangParser.DateArgumentStringContext currentContext); | 1753 | void exitDateArgumentString(GeneratedYangParser.DateArgumentStringContext currentContext); |
| 1754 | + | ||
| 1755 | + /** | ||
| 1756 | + * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1757 | + * length. | ||
| 1758 | + * | ||
| 1759 | + * @param currentContext current context in the parsed tree | ||
| 1760 | + */ | ||
| 1761 | + void enterLength(GeneratedYangParser.LengthContext currentContext); | ||
| 1762 | + | ||
| 1763 | + /** | ||
| 1764 | + * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1765 | + * length. | ||
| 1766 | + * | ||
| 1767 | + * @param currentContext current context in the parsed tree | ||
| 1768 | + */ | ||
| 1769 | + void exitLength(GeneratedYangParser.LengthContext currentContext); | ||
| 1770 | + | ||
| 1771 | + /** | ||
| 1772 | + * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1773 | + * path. | ||
| 1774 | + * | ||
| 1775 | + * @param currentContext current context in the parsed tree | ||
| 1776 | + */ | ||
| 1777 | + void enterPath(GeneratedYangParser.PathContext currentContext); | ||
| 1778 | + | ||
| 1779 | + /** | ||
| 1780 | + * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1781 | + * path. | ||
| 1782 | + * | ||
| 1783 | + * @param currentContext current context in the parsed tree | ||
| 1784 | + */ | ||
| 1785 | + void exitPath(GeneratedYangParser.PathContext currentContext); | ||
| 1786 | + | ||
| 1787 | + /** | ||
| 1788 | + * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1789 | + * position. | ||
| 1790 | + * | ||
| 1791 | + * @param currentContext current context in the parsed tree | ||
| 1792 | + */ | ||
| 1793 | + void enterPosition(GeneratedYangParser.PositionContext currentContext); | ||
| 1794 | + | ||
| 1795 | + /** | ||
| 1796 | + * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1797 | + * position. | ||
| 1798 | + * | ||
| 1799 | + * @param currentContext current context in the parsed tree | ||
| 1800 | + */ | ||
| 1801 | + void exitPosition(GeneratedYangParser.PositionContext currentContext); | ||
| 1802 | + | ||
| 1803 | + /** | ||
| 1804 | + * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1805 | + * status. | ||
| 1806 | + * | ||
| 1807 | + * @param currentContext current context in the parsed tree | ||
| 1808 | + */ | ||
| 1809 | + void enterStatus(GeneratedYangParser.StatusContext currentContext); | ||
| 1810 | + | ||
| 1811 | + /** | ||
| 1812 | + * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1813 | + * status. | ||
| 1814 | + * | ||
| 1815 | + * @param currentContext current context in the parsed tree | ||
| 1816 | + */ | ||
| 1817 | + void exitStatus(GeneratedYangParser.StatusContext currentContext); | ||
| 1818 | + | ||
| 1819 | + /** | ||
| 1820 | + * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1821 | + * config. | ||
| 1822 | + * | ||
| 1823 | + * @param currentContext current context in the parsed tree | ||
| 1824 | + */ | ||
| 1825 | + void enterConfig(GeneratedYangParser.ConfigContext currentContext); | ||
| 1826 | + | ||
| 1827 | + /** | ||
| 1828 | + * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1829 | + * config. | ||
| 1830 | + * | ||
| 1831 | + * @param currentContext current context in the parsed tree | ||
| 1832 | + */ | ||
| 1833 | + void exitConfig(GeneratedYangParser.ConfigContext currentContext); | ||
| 1834 | + | ||
| 1835 | + /** | ||
| 1836 | + * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1837 | + * mandatory. | ||
| 1838 | + * | ||
| 1839 | + * @param currentContext current context in the parsed tree | ||
| 1840 | + */ | ||
| 1841 | + void enterMandatory(GeneratedYangParser.MandatoryContext currentContext); | ||
| 1842 | + | ||
| 1843 | + /** | ||
| 1844 | + * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1845 | + * mandatory. | ||
| 1846 | + * | ||
| 1847 | + * @param currentContext current context in the parsed tree | ||
| 1848 | + */ | ||
| 1849 | + void exitMandatory(GeneratedYangParser.MandatoryContext currentContext); | ||
| 1850 | + | ||
| 1851 | + /** | ||
| 1852 | + * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1853 | + * ordered-by. | ||
| 1854 | + * | ||
| 1855 | + * @param currentContext current context in the parsed tree | ||
| 1856 | + */ | ||
| 1857 | + void enterOrderedBy(GeneratedYangParser.OrderedByContext currentContext); | ||
| 1858 | + | ||
| 1859 | + /** | ||
| 1860 | + * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1861 | + * ordered-by. | ||
| 1862 | + * | ||
| 1863 | + * @param currentContext current context in the parsed tree | ||
| 1864 | + */ | ||
| 1865 | + void exitOrderedBy(GeneratedYangParser.OrderedByContext currentContext); | ||
| 1866 | + | ||
| 1867 | + /** | ||
| 1868 | + * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1869 | + * min elements value. | ||
| 1870 | + * | ||
| 1871 | + * @param currentContext current context in the parsed tree | ||
| 1872 | + */ | ||
| 1873 | + void enterMinValue(GeneratedYangParser.MinValueContext currentContext); | ||
| 1874 | + | ||
| 1875 | + /** | ||
| 1876 | + * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1877 | + * min elements value. | ||
| 1878 | + * | ||
| 1879 | + * @param currentContext current context in the parsed tree | ||
| 1880 | + */ | ||
| 1881 | + void exitMinValue(GeneratedYangParser.MinValueContext currentContext); | ||
| 1882 | + | ||
| 1883 | + /** | ||
| 1884 | + * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1885 | + * max elements value. | ||
| 1886 | + * | ||
| 1887 | + * @param currentContext current context in the parsed tree | ||
| 1888 | + */ | ||
| 1889 | + void enterMaxValue(GeneratedYangParser.MaxValueContext currentContext); | ||
| 1890 | + | ||
| 1891 | + /** | ||
| 1892 | + * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1893 | + * max elements value. | ||
| 1894 | + * | ||
| 1895 | + * @param currentContext current context in the parsed tree | ||
| 1896 | + */ | ||
| 1897 | + void exitMaxValue(GeneratedYangParser.MaxValueContext currentContext); | ||
| 1898 | + | ||
| 1899 | + /** | ||
| 1900 | + * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1901 | + * key. | ||
| 1902 | + * | ||
| 1903 | + * @param currentContext current context in the parsed tree | ||
| 1904 | + */ | ||
| 1905 | + void enterKey(GeneratedYangParser.KeyContext currentContext); | ||
| 1906 | + | ||
| 1907 | + /** | ||
| 1908 | + * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1909 | + * key. | ||
| 1910 | + * | ||
| 1911 | + * @param currentContext current context in the parsed tree | ||
| 1912 | + */ | ||
| 1913 | + void exitKey(GeneratedYangParser.KeyContext currentContext); | ||
| 1914 | + | ||
| 1915 | + /** | ||
| 1916 | + * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1917 | + * unique. | ||
| 1918 | + * | ||
| 1919 | + * @param currentContext current context in the parsed tree | ||
| 1920 | + */ | ||
| 1921 | + void enterUnique(GeneratedYangParser.UniqueContext currentContext); | ||
| 1922 | + | ||
| 1923 | + /** | ||
| 1924 | + * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1925 | + * unique. | ||
| 1926 | + * | ||
| 1927 | + * @param currentContext current context in the parsed tree | ||
| 1928 | + */ | ||
| 1929 | + void exitUnique(GeneratedYangParser.UniqueContext currentContext); | ||
| 1930 | + | ||
| 1931 | + /** | ||
| 1932 | + * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1933 | + * refine. | ||
| 1934 | + * | ||
| 1935 | + * @param currentContext current context in the parsed tree | ||
| 1936 | + */ | ||
| 1937 | + void enterRefine(GeneratedYangParser.RefineContext currentContext); | ||
| 1938 | + | ||
| 1939 | + /** | ||
| 1940 | + * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1941 | + * refine. | ||
| 1942 | + * | ||
| 1943 | + * @param currentContext current context in the parsed tree | ||
| 1944 | + */ | ||
| 1945 | + void exitRefine(GeneratedYangParser.RefineContext currentContext); | ||
| 1946 | + | ||
| 1947 | + /** | ||
| 1948 | + * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1949 | + * augment. | ||
| 1950 | + * | ||
| 1951 | + * @param currentContext current context in the parsed tree | ||
| 1952 | + */ | ||
| 1953 | + void enterAugment(GeneratedYangParser.AugmentContext currentContext); | ||
| 1954 | + | ||
| 1955 | + /** | ||
| 1956 | + * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1957 | + * augment. | ||
| 1958 | + * | ||
| 1959 | + * @param currentContext current context in the parsed tree | ||
| 1960 | + */ | ||
| 1961 | + void exitAugment(GeneratedYangParser.AugmentContext currentContext); | ||
| 1962 | + | ||
| 1963 | + /** | ||
| 1964 | + * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1965 | + * deviation. | ||
| 1966 | + * | ||
| 1967 | + * @param currentContext current context in the parsed tree | ||
| 1968 | + */ | ||
| 1969 | + void enterDeviation(GeneratedYangParser.DeviationContext currentContext); | ||
| 1970 | + | ||
| 1971 | + /** | ||
| 1972 | + * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1973 | + * deviation. | ||
| 1974 | + * | ||
| 1975 | + * @param currentContext current context in the parsed tree | ||
| 1976 | + */ | ||
| 1977 | + void exitDeviation(GeneratedYangParser.DeviationContext currentContext); | ||
| 1978 | + | ||
| 1979 | + /** | ||
| 1980 | + * Enter a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1981 | + * yang construct. | ||
| 1982 | + * | ||
| 1983 | + * @param currentContext current context in the parsed tree | ||
| 1984 | + */ | ||
| 1985 | + void enterYangConstruct(GeneratedYangParser.YangConstructContext currentContext); | ||
| 1986 | + | ||
| 1987 | + /** | ||
| 1988 | + * Exit a parse tree produced by GeneratedYangParser for grammar rule | ||
| 1989 | + * yang construct. | ||
| 1990 | + * | ||
| 1991 | + * @param currentContext current context in the parsed tree | ||
| 1992 | + */ | ||
| 1993 | + void exitYangConstruct(GeneratedYangParser.YangConstructContext currentContext); | ||
| 1739 | } | 1994 | } | ... | ... |
| ... | @@ -833,16 +833,6 @@ public class TreeWalkListener implements GeneratedYangListener { | ... | @@ -833,16 +833,6 @@ public class TreeWalkListener implements GeneratedYangListener { |
| 833 | } | 833 | } |
| 834 | 834 | ||
| 835 | @Override | 835 | @Override |
| 836 | - public void enterMaxValueArgument(GeneratedYangParser.MaxValueArgumentContext ctx) { | ||
| 837 | - // TODO: implement the method. | ||
| 838 | - } | ||
| 839 | - | ||
| 840 | - @Override | ||
| 841 | - public void exitMaxValueArgument(GeneratedYangParser.MaxValueArgumentContext ctx) { | ||
| 842 | - // TODO: implement the method. | ||
| 843 | - } | ||
| 844 | - | ||
| 845 | - @Override | ||
| 846 | public void enterValueStatement(GeneratedYangParser.ValueStatementContext ctx) { | 836 | public void enterValueStatement(GeneratedYangParser.ValueStatementContext ctx) { |
| 847 | ValueListener.processValueEntry(this, ctx); | 837 | ValueListener.processValueEntry(this, ctx); |
| 848 | } | 838 | } |
| ... | @@ -1183,6 +1173,176 @@ public class TreeWalkListener implements GeneratedYangListener { | ... | @@ -1183,6 +1173,176 @@ public class TreeWalkListener implements GeneratedYangListener { |
| 1183 | } | 1173 | } |
| 1184 | 1174 | ||
| 1185 | @Override | 1175 | @Override |
| 1176 | + public void enterRange(GeneratedYangParser.RangeContext ctx) { | ||
| 1177 | + // TODO: implement the method. | ||
| 1178 | + } | ||
| 1179 | + | ||
| 1180 | + @Override | ||
| 1181 | + public void exitRange(GeneratedYangParser.RangeContext ctx) { | ||
| 1182 | + // TODO: implement the method. | ||
| 1183 | + } | ||
| 1184 | + | ||
| 1185 | + @Override | ||
| 1186 | + public void enterLength(GeneratedYangParser.LengthContext ctx) { | ||
| 1187 | + // TODO: implement the method. | ||
| 1188 | + } | ||
| 1189 | + | ||
| 1190 | + @Override | ||
| 1191 | + public void exitLength(GeneratedYangParser.LengthContext ctx) { | ||
| 1192 | + // TODO: implement the method. | ||
| 1193 | + } | ||
| 1194 | + | ||
| 1195 | + @Override | ||
| 1196 | + public void enterPath(GeneratedYangParser.PathContext ctx) { | ||
| 1197 | + // TODO: implement the method. | ||
| 1198 | + } | ||
| 1199 | + | ||
| 1200 | + @Override | ||
| 1201 | + public void exitPath(GeneratedYangParser.PathContext ctx) { | ||
| 1202 | + // TODO: implement the method. | ||
| 1203 | + } | ||
| 1204 | + | ||
| 1205 | + @Override | ||
| 1206 | + public void enterPosition(GeneratedYangParser.PositionContext ctx) { | ||
| 1207 | + // TODO: implement the method. | ||
| 1208 | + } | ||
| 1209 | + | ||
| 1210 | + @Override | ||
| 1211 | + public void exitPosition(GeneratedYangParser.PositionContext ctx) { | ||
| 1212 | + // TODO: implement the method. | ||
| 1213 | + } | ||
| 1214 | + | ||
| 1215 | + @Override | ||
| 1216 | + public void enterStatus(GeneratedYangParser.StatusContext ctx) { | ||
| 1217 | + // TODO: implement the method. | ||
| 1218 | + } | ||
| 1219 | + | ||
| 1220 | + @Override | ||
| 1221 | + public void exitStatus(GeneratedYangParser.StatusContext ctx) { | ||
| 1222 | + // TODO: implement the method. | ||
| 1223 | + } | ||
| 1224 | + | ||
| 1225 | + @Override | ||
| 1226 | + public void enterConfig(GeneratedYangParser.ConfigContext ctx) { | ||
| 1227 | + // TODO: implement the method. | ||
| 1228 | + } | ||
| 1229 | + | ||
| 1230 | + @Override | ||
| 1231 | + public void exitConfig(GeneratedYangParser.ConfigContext ctx) { | ||
| 1232 | + // TODO: implement the method. | ||
| 1233 | + } | ||
| 1234 | + | ||
| 1235 | + @Override | ||
| 1236 | + public void enterMandatory(GeneratedYangParser.MandatoryContext ctx) { | ||
| 1237 | + // TODO: implement the method. | ||
| 1238 | + } | ||
| 1239 | + | ||
| 1240 | + @Override | ||
| 1241 | + public void exitMandatory(GeneratedYangParser.MandatoryContext ctx) { | ||
| 1242 | + // TODO: implement the method. | ||
| 1243 | + } | ||
| 1244 | + | ||
| 1245 | + @Override | ||
| 1246 | + public void enterOrderedBy(GeneratedYangParser.OrderedByContext ctx) { | ||
| 1247 | + // TODO: implement the method. | ||
| 1248 | + } | ||
| 1249 | + | ||
| 1250 | + @Override | ||
| 1251 | + public void exitOrderedBy(GeneratedYangParser.OrderedByContext ctx) { | ||
| 1252 | + // TODO: implement the method. | ||
| 1253 | + } | ||
| 1254 | + | ||
| 1255 | + @Override | ||
| 1256 | + public void enterMinValue(GeneratedYangParser.MinValueContext ctx) { | ||
| 1257 | + // TODO: implement the method. | ||
| 1258 | + } | ||
| 1259 | + | ||
| 1260 | + @Override | ||
| 1261 | + public void exitMinValue(GeneratedYangParser.MinValueContext ctx) { | ||
| 1262 | + // TODO: implement the method. | ||
| 1263 | + } | ||
| 1264 | + | ||
| 1265 | + @Override | ||
| 1266 | + public void enterMaxValue(GeneratedYangParser.MaxValueContext ctx) { | ||
| 1267 | + // TODO: implement the method. | ||
| 1268 | + } | ||
| 1269 | + | ||
| 1270 | + @Override | ||
| 1271 | + public void exitMaxValue(GeneratedYangParser.MaxValueContext ctx) { | ||
| 1272 | + // TODO: implement the method. | ||
| 1273 | + } | ||
| 1274 | + | ||
| 1275 | + @Override | ||
| 1276 | + public void enterKey(GeneratedYangParser.KeyContext ctx) { | ||
| 1277 | + // TODO: implement the method. | ||
| 1278 | + } | ||
| 1279 | + | ||
| 1280 | + @Override | ||
| 1281 | + public void exitKey(GeneratedYangParser.KeyContext ctx) { | ||
| 1282 | + // TODO: implement the method. | ||
| 1283 | + } | ||
| 1284 | + | ||
| 1285 | + @Override | ||
| 1286 | + public void enterUnique(GeneratedYangParser.UniqueContext ctx) { | ||
| 1287 | + // TODO: implement the method. | ||
| 1288 | + } | ||
| 1289 | + | ||
| 1290 | + @Override | ||
| 1291 | + public void exitUnique(GeneratedYangParser.UniqueContext ctx) { | ||
| 1292 | + // TODO: implement the method. | ||
| 1293 | + } | ||
| 1294 | + | ||
| 1295 | + @Override | ||
| 1296 | + public void enterRefine(GeneratedYangParser.RefineContext ctx) { | ||
| 1297 | + // TODO: implement the method. | ||
| 1298 | + } | ||
| 1299 | + | ||
| 1300 | + @Override | ||
| 1301 | + public void exitRefine(GeneratedYangParser.RefineContext ctx) { | ||
| 1302 | + // TODO: implement the method. | ||
| 1303 | + } | ||
| 1304 | + | ||
| 1305 | + @Override | ||
| 1306 | + public void enterAugment(GeneratedYangParser.AugmentContext ctx) { | ||
| 1307 | + // TODO: implement the method. | ||
| 1308 | + } | ||
| 1309 | + | ||
| 1310 | + @Override | ||
| 1311 | + public void exitAugment(GeneratedYangParser.AugmentContext ctx) { | ||
| 1312 | + // TODO: implement the method. | ||
| 1313 | + } | ||
| 1314 | + | ||
| 1315 | + @Override | ||
| 1316 | + public void enterDeviation(GeneratedYangParser.DeviationContext ctx) { | ||
| 1317 | + // TODO: implement the method. | ||
| 1318 | + } | ||
| 1319 | + | ||
| 1320 | + @Override | ||
| 1321 | + public void exitDeviation(GeneratedYangParser.DeviationContext ctx) { | ||
| 1322 | + // TODO: implement the method. | ||
| 1323 | + } | ||
| 1324 | + | ||
| 1325 | + @Override | ||
| 1326 | + public void enterYangConstruct(GeneratedYangParser.YangConstructContext ctx) { | ||
| 1327 | + // TODO: implement the method. | ||
| 1328 | + } | ||
| 1329 | + | ||
| 1330 | + @Override | ||
| 1331 | + public void exitYangConstruct(GeneratedYangParser.YangConstructContext ctx) { | ||
| 1332 | + // TODO: implement the method. | ||
| 1333 | + } | ||
| 1334 | + | ||
| 1335 | + @Override | ||
| 1336 | + public void enterVersion(GeneratedYangParser.VersionContext ctx) { | ||
| 1337 | + // TODO: implement the method. | ||
| 1338 | + } | ||
| 1339 | + | ||
| 1340 | + @Override | ||
| 1341 | + public void exitVersion(GeneratedYangParser.VersionContext ctx) { | ||
| 1342 | + // TODO: implement the method. | ||
| 1343 | + } | ||
| 1344 | + | ||
| 1345 | + @Override | ||
| 1186 | public void visitTerminal(TerminalNode terminalNode) { | 1346 | public void visitTerminal(TerminalNode terminalNode) { |
| 1187 | // TODO: implement the method. | 1347 | // TODO: implement the method. |
| 1188 | } | 1348 | } | ... | ... |
| ... | @@ -25,6 +25,7 @@ import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; | ... | @@ -25,6 +25,7 @@ import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; |
| 25 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 25 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 26 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; | 26 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; |
| 27 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; | 27 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; |
| 28 | +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.getValidBooleanValue; | ||
| 28 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; | 29 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; |
| 29 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; | 30 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; |
| 30 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; | 31 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; |
| ... | @@ -42,7 +43,8 @@ import static org.onosproject.yangutils.utils.YangConstructType.CONFIG_DATA; | ... | @@ -42,7 +43,8 @@ import static org.onosproject.yangutils.utils.YangConstructType.CONFIG_DATA; |
| 42 | * config-arg = true-keyword / false-keyword | 43 | * config-arg = true-keyword / false-keyword |
| 43 | * | 44 | * |
| 44 | * ANTLR grammar rule | 45 | * ANTLR grammar rule |
| 45 | - * configStatement : CONFIG_KEYWORD (TRUE_KEYWORD | FALSE_KEYWORD) STMTEND; | 46 | + * configStatement : CONFIG_KEYWORD config STMTEND; |
| 47 | + * config : string; | ||
| 46 | */ | 48 | */ |
| 47 | 49 | ||
| 48 | /** | 50 | /** |
| ... | @@ -66,14 +68,11 @@ public final class ConfigListener { | ... | @@ -66,14 +68,11 @@ public final class ConfigListener { |
| 66 | */ | 68 | */ |
| 67 | public static void processConfigEntry(TreeWalkListener listener, | 69 | public static void processConfigEntry(TreeWalkListener listener, |
| 68 | GeneratedYangParser.ConfigStatementContext ctx) { | 70 | GeneratedYangParser.ConfigStatementContext ctx) { |
| 69 | - boolean isConfig = false; | ||
| 70 | 71 | ||
| 71 | // Check for stack to be non empty. | 72 | // Check for stack to be non empty. |
| 72 | checkStackIsNotEmpty(listener, MISSING_HOLDER, CONFIG_DATA, "", ENTRY); | 73 | checkStackIsNotEmpty(listener, MISSING_HOLDER, CONFIG_DATA, "", ENTRY); |
| 73 | 74 | ||
| 74 | - if (ctx.TRUE_KEYWORD() != null) { | 75 | + boolean isConfig = getValidBooleanValue(ctx.config().getText(), CONFIG_DATA, ctx); |
| 75 | - isConfig = true; | ||
| 76 | - } | ||
| 77 | 76 | ||
| 78 | Parsable tmpData = listener.getParsedDataStack().peek(); | 77 | Parsable tmpData = listener.getParsedDataStack().peek(); |
| 79 | switch (tmpData.getYangConstructType()) { | 78 | switch (tmpData.getYangConstructType()) { | ... | ... |
| ... | @@ -24,6 +24,7 @@ import org.onosproject.yangutils.parser.exceptions.ParserException; | ... | @@ -24,6 +24,7 @@ import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 24 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; | 24 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; |
| 25 | 25 | ||
| 26 | import static org.onosproject.yangutils.utils.YangConstructType.KEY_DATA; | 26 | import static org.onosproject.yangutils.utils.YangConstructType.KEY_DATA; |
| 27 | +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.removeQuotesAndHandleConcat; | ||
| 27 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; | 28 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; |
| 28 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; | 29 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; |
| 29 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructExtendedListenerErrorMessage; | 30 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructExtendedListenerErrorMessage; |
| ... | @@ -39,7 +40,8 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidati | ... | @@ -39,7 +40,8 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidati |
| 39 | * key-stmt = key-keyword sep key-arg-str stmtend | 40 | * key-stmt = key-keyword sep key-arg-str stmtend |
| 40 | * | 41 | * |
| 41 | * ANTLR grammar rule | 42 | * ANTLR grammar rule |
| 42 | - * keyStatement : KEY_KEYWORD string STMTEND; | 43 | + * keyStatement : KEY_KEYWORD key STMTEND; |
| 44 | + * key : string; | ||
| 43 | */ | 45 | */ |
| 44 | 46 | ||
| 45 | /** | 47 | /** |
| ... | @@ -66,12 +68,12 @@ public final class KeyListener { | ... | @@ -66,12 +68,12 @@ public final class KeyListener { |
| 66 | GeneratedYangParser.KeyStatementContext ctx) { | 68 | GeneratedYangParser.KeyStatementContext ctx) { |
| 67 | 69 | ||
| 68 | // Check for stack to be non empty. | 70 | // Check for stack to be non empty. |
| 69 | - checkStackIsNotEmpty(listener, MISSING_HOLDER, KEY_DATA, ctx.string().getText(), ENTRY); | 71 | + checkStackIsNotEmpty(listener, MISSING_HOLDER, KEY_DATA, ctx.key().getText(), ENTRY); |
| 70 | 72 | ||
| 71 | Parsable tmpData = listener.getParsedDataStack().peek(); | 73 | Parsable tmpData = listener.getParsedDataStack().peek(); |
| 72 | if (listener.getParsedDataStack().peek() instanceof YangList) { | 74 | if (listener.getParsedDataStack().peek() instanceof YangList) { |
| 73 | YangList yangList = (YangList) tmpData; | 75 | YangList yangList = (YangList) tmpData; |
| 74 | - String tmpKeyValue = ctx.string().getText().replace("\"", ""); | 76 | + String tmpKeyValue = removeQuotesAndHandleConcat(ctx.key().getText()); |
| 75 | if (tmpKeyValue.contains(" ")) { | 77 | if (tmpKeyValue.contains(" ")) { |
| 76 | String[] keyValues = tmpKeyValue.split(" "); | 78 | String[] keyValues = tmpKeyValue.split(" "); |
| 77 | for (String keyValue : keyValues) { | 79 | for (String keyValue : keyValues) { |
| ... | @@ -79,7 +81,7 @@ public final class KeyListener { | ... | @@ -79,7 +81,7 @@ public final class KeyListener { |
| 79 | yangList.addKey(keyValue); | 81 | yangList.addKey(keyValue); |
| 80 | } catch (DataModelException e) { | 82 | } catch (DataModelException e) { |
| 81 | throw new ParserException(constructExtendedListenerErrorMessage(UNHANDLED_PARSED_DATA, KEY_DATA, | 83 | throw new ParserException(constructExtendedListenerErrorMessage(UNHANDLED_PARSED_DATA, KEY_DATA, |
| 82 | - ctx.string().getText(), ENTRY, e.getMessage())); | 84 | + ctx.key().getText(), ENTRY, e.getMessage())); |
| 83 | } | 85 | } |
| 84 | } | 86 | } |
| 85 | } else { | 87 | } else { |
| ... | @@ -87,11 +89,11 @@ public final class KeyListener { | ... | @@ -87,11 +89,11 @@ public final class KeyListener { |
| 87 | yangList.addKey(tmpKeyValue); | 89 | yangList.addKey(tmpKeyValue); |
| 88 | } catch (DataModelException e) { | 90 | } catch (DataModelException e) { |
| 89 | throw new ParserException(constructExtendedListenerErrorMessage(UNHANDLED_PARSED_DATA, KEY_DATA, | 91 | throw new ParserException(constructExtendedListenerErrorMessage(UNHANDLED_PARSED_DATA, KEY_DATA, |
| 90 | - ctx.string().getText(), ENTRY, e.getMessage())); | 92 | + ctx.key().getText(), ENTRY, e.getMessage())); |
| 91 | } | 93 | } |
| 92 | } | 94 | } |
| 93 | } else { | 95 | } else { |
| 94 | - throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, KEY_DATA, ctx.string().getText(), | 96 | + throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, KEY_DATA, ctx.key().getText(), |
| 95 | ENTRY)); | 97 | ENTRY)); |
| 96 | } | 98 | } |
| 97 | } | 99 | } | ... | ... |
utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/MandatoryListener.java
| ... | @@ -22,6 +22,7 @@ import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; | ... | @@ -22,6 +22,7 @@ import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; |
| 22 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 22 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 23 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; | 23 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; |
| 24 | 24 | ||
| 25 | +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.getValidBooleanValue; | ||
| 25 | import static org.onosproject.yangutils.utils.YangConstructType.MANDATORY_DATA; | 26 | import static org.onosproject.yangutils.utils.YangConstructType.MANDATORY_DATA; |
| 26 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; | 27 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; |
| 27 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; | 28 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; |
| ... | @@ -42,7 +43,8 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidati | ... | @@ -42,7 +43,8 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidati |
| 42 | * mandatory-arg = true-keyword / false-keyword | 43 | * mandatory-arg = true-keyword / false-keyword |
| 43 | * | 44 | * |
| 44 | * ANTLR grammar rule | 45 | * ANTLR grammar rule |
| 45 | - * mandatoryStatement : MANDATORY_KEYWORD (TRUE_KEYWORD | FALSE_KEYWORD) STMTEND; | 46 | + * mandatoryStatement : MANDATORY_KEYWORD mandatory STMTEND; |
| 47 | + * mandatory : string; | ||
| 46 | */ | 48 | */ |
| 47 | 49 | ||
| 48 | /** | 50 | /** |
| ... | @@ -71,15 +73,13 @@ public final class MandatoryListener { | ... | @@ -71,15 +73,13 @@ public final class MandatoryListener { |
| 71 | // Check for stack to be non empty. | 73 | // Check for stack to be non empty. |
| 72 | checkStackIsNotEmpty(listener, MISSING_HOLDER, MANDATORY_DATA, "", ENTRY); | 74 | checkStackIsNotEmpty(listener, MISSING_HOLDER, MANDATORY_DATA, "", ENTRY); |
| 73 | 75 | ||
| 76 | + boolean isMandatory = getValidBooleanValue(ctx.mandatory().getText(), MANDATORY_DATA, ctx); | ||
| 77 | + | ||
| 74 | Parsable tmpNode = listener.getParsedDataStack().peek(); | 78 | Parsable tmpNode = listener.getParsedDataStack().peek(); |
| 75 | switch (tmpNode.getYangConstructType()) { | 79 | switch (tmpNode.getYangConstructType()) { |
| 76 | case LEAF_DATA: | 80 | case LEAF_DATA: |
| 77 | YangLeaf leaf = (YangLeaf) tmpNode; | 81 | YangLeaf leaf = (YangLeaf) tmpNode; |
| 78 | - if (ctx.TRUE_KEYWORD() != null) { | 82 | + leaf.setMandatory(isMandatory); |
| 79 | - leaf.setMandatory(true); | ||
| 80 | - } else { | ||
| 81 | - leaf.setMandatory(false); | ||
| 82 | - } | ||
| 83 | break; | 83 | break; |
| 84 | case CHOICE_DATA: // TODO | 84 | case CHOICE_DATA: // TODO |
| 85 | break; | 85 | break; | ... | ... |
| ... | @@ -22,11 +22,13 @@ import org.onosproject.yangutils.parser.Parsable; | ... | @@ -22,11 +22,13 @@ import org.onosproject.yangutils.parser.Parsable; |
| 22 | import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; | 22 | import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; |
| 23 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 23 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 24 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; | 24 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; |
| 25 | +import org.onosproject.yangutils.utils.YangConstructType; | ||
| 25 | 26 | ||
| 26 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; | 27 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; |
| 27 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; | 28 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; |
| 28 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; | 29 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; |
| 29 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; | 30 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; |
| 31 | +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.removeQuotesAndHandleConcat; | ||
| 30 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; | 32 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; |
| 31 | import static org.onosproject.yangutils.utils.YangConstructType.MAX_ELEMENT_DATA; | 33 | import static org.onosproject.yangutils.utils.YangConstructType.MAX_ELEMENT_DATA; |
| 32 | 34 | ||
| ... | @@ -40,7 +42,8 @@ import static org.onosproject.yangutils.utils.YangConstructType.MAX_ELEMENT_DATA | ... | @@ -40,7 +42,8 @@ import static org.onosproject.yangutils.utils.YangConstructType.MAX_ELEMENT_DATA |
| 40 | * max-value-arg > | 42 | * max-value-arg > |
| 41 | * | 43 | * |
| 42 | * ANTLR grammar rule | 44 | * ANTLR grammar rule |
| 43 | - * maxElementsStatement : MAX_ELEMENTS_KEYWORD maxValueArgument STMTEND; | 45 | + * maxElementsStatement : MAX_ELEMENTS_KEYWORD maxValue STMTEND; |
| 46 | + * maxValue : string; | ||
| 44 | */ | 47 | */ |
| 45 | 48 | ||
| 46 | /** | 49 | /** |
| ... | @@ -50,6 +53,9 @@ import static org.onosproject.yangutils.utils.YangConstructType.MAX_ELEMENT_DATA | ... | @@ -50,6 +53,9 @@ import static org.onosproject.yangutils.utils.YangConstructType.MAX_ELEMENT_DATA |
| 50 | */ | 53 | */ |
| 51 | public final class MaxElementsListener { | 54 | public final class MaxElementsListener { |
| 52 | 55 | ||
| 56 | + private static final String POSITIVE_INTEGER_PATTERN = "[1-9][0-9]*"; | ||
| 57 | + private static final String UNBOUNDED_KEYWORD = "unbounded"; | ||
| 58 | + | ||
| 53 | /** | 59 | /** |
| 54 | * Creates a new max-elements listener. | 60 | * Creates a new max-elements listener. |
| 55 | */ | 61 | */ |
| ... | @@ -65,16 +71,11 @@ public final class MaxElementsListener { | ... | @@ -65,16 +71,11 @@ public final class MaxElementsListener { |
| 65 | */ | 71 | */ |
| 66 | public static void processMaxElementsEntry(TreeWalkListener listener, | 72 | public static void processMaxElementsEntry(TreeWalkListener listener, |
| 67 | GeneratedYangParser.MaxElementsStatementContext ctx) { | 73 | GeneratedYangParser.MaxElementsStatementContext ctx) { |
| 68 | - int maxElementsValue; | ||
| 69 | 74 | ||
| 70 | // Check for stack to be non empty. | 75 | // Check for stack to be non empty. |
| 71 | checkStackIsNotEmpty(listener, MISSING_HOLDER, MAX_ELEMENT_DATA, "", ENTRY); | 76 | checkStackIsNotEmpty(listener, MISSING_HOLDER, MAX_ELEMENT_DATA, "", ENTRY); |
| 72 | 77 | ||
| 73 | - if (ctx.maxValueArgument().UNBOUNDED_KEYWORD() != null) { | 78 | + int maxElementsValue = getValidMaxElementValue(ctx); |
| 74 | - maxElementsValue = Integer.MAX_VALUE; | ||
| 75 | - } else { | ||
| 76 | - maxElementsValue = Integer.parseInt(ctx.maxValueArgument().INTEGER().getText()); | ||
| 77 | - } | ||
| 78 | 79 | ||
| 79 | Parsable tmpData = listener.getParsedDataStack().peek(); | 80 | Parsable tmpData = listener.getParsedDataStack().peek(); |
| 80 | switch (tmpData.getYangConstructType()) { | 81 | switch (tmpData.getYangConstructType()) { |
| ... | @@ -90,4 +91,31 @@ public final class MaxElementsListener { | ... | @@ -90,4 +91,31 @@ public final class MaxElementsListener { |
| 90 | throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, MAX_ELEMENT_DATA, "", ENTRY)); | 91 | throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, MAX_ELEMENT_DATA, "", ENTRY)); |
| 91 | } | 92 | } |
| 92 | } | 93 | } |
| 94 | + | ||
| 95 | + /** | ||
| 96 | + * Validates max element value and returns the value from context. | ||
| 97 | + * | ||
| 98 | + * @param ctx context object of the grammar rule | ||
| 99 | + * @return max element's value | ||
| 100 | + */ | ||
| 101 | + private static int getValidMaxElementValue(GeneratedYangParser.MaxElementsStatementContext ctx) { | ||
| 102 | + | ||
| 103 | + int maxElementsValue; | ||
| 104 | + | ||
| 105 | + String value = removeQuotesAndHandleConcat(ctx.maxValue().getText()); | ||
| 106 | + if (value.equals(UNBOUNDED_KEYWORD)) { | ||
| 107 | + maxElementsValue = Integer.MAX_VALUE; | ||
| 108 | + } else if (value.matches(POSITIVE_INTEGER_PATTERN)) { | ||
| 109 | + maxElementsValue = Integer.parseInt(value); | ||
| 110 | + } else { | ||
| 111 | + ParserException parserException = new ParserException("YANG file error : " + | ||
| 112 | + YangConstructType.getYangConstructType(MAX_ELEMENT_DATA) + " value " + value + " is not " + | ||
| 113 | + "valid."); | ||
| 114 | + parserException.setLine(ctx.getStart().getLine()); | ||
| 115 | + parserException.setCharPosition(ctx.getStart().getCharPositionInLine()); | ||
| 116 | + throw parserException; | ||
| 117 | + } | ||
| 118 | + | ||
| 119 | + return maxElementsValue; | ||
| 120 | + } | ||
| 93 | } | 121 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -23,6 +23,7 @@ import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; | ... | @@ -23,6 +23,7 @@ import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; |
| 23 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 23 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 24 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; | 24 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; |
| 25 | 25 | ||
| 26 | +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.getValidNonNegativeIntegerValue; | ||
| 26 | import static org.onosproject.yangutils.utils.YangConstructType.MIN_ELEMENT_DATA; | 27 | import static org.onosproject.yangutils.utils.YangConstructType.MIN_ELEMENT_DATA; |
| 27 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; | 28 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; |
| 28 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; | 29 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; |
| ... | @@ -41,7 +42,8 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidati | ... | @@ -41,7 +42,8 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidati |
| 41 | * min-value-arg = non-negative-integer-value | 42 | * min-value-arg = non-negative-integer-value |
| 42 | * | 43 | * |
| 43 | * ANTLR grammar rule | 44 | * ANTLR grammar rule |
| 44 | - * minElementsStatement : MIN_ELEMENTS_KEYWORD INTEGER STMTEND; | 45 | + * minElementsStatement : MIN_ELEMENTS_KEYWORD minValue STMTEND; |
| 46 | + * minValue : string; | ||
| 45 | */ | 47 | */ |
| 46 | 48 | ||
| 47 | /** | 49 | /** |
| ... | @@ -68,21 +70,23 @@ public final class MinElementsListener { | ... | @@ -68,21 +70,23 @@ public final class MinElementsListener { |
| 68 | GeneratedYangParser.MinElementsStatementContext ctx) { | 70 | GeneratedYangParser.MinElementsStatementContext ctx) { |
| 69 | 71 | ||
| 70 | // Check for stack to be non empty. | 72 | // Check for stack to be non empty. |
| 71 | - checkStackIsNotEmpty(listener, MISSING_HOLDER, MIN_ELEMENT_DATA, ctx.INTEGER().getText(), ENTRY); | 73 | + checkStackIsNotEmpty(listener, MISSING_HOLDER, MIN_ELEMENT_DATA, ctx.minValue().getText(), ENTRY); |
| 74 | + | ||
| 75 | + int minElementValue = getValidNonNegativeIntegerValue(ctx.minValue().getText(), MIN_ELEMENT_DATA, ctx); | ||
| 72 | 76 | ||
| 73 | Parsable tmpData = listener.getParsedDataStack().peek(); | 77 | Parsable tmpData = listener.getParsedDataStack().peek(); |
| 74 | switch (tmpData.getYangConstructType()) { | 78 | switch (tmpData.getYangConstructType()) { |
| 75 | case LEAF_LIST_DATA: | 79 | case LEAF_LIST_DATA: |
| 76 | YangLeafList leafList = (YangLeafList) tmpData; | 80 | YangLeafList leafList = (YangLeafList) tmpData; |
| 77 | - leafList.setMinElements(Integer.parseInt(ctx.INTEGER().getText())); | 81 | + leafList.setMinElements(minElementValue); |
| 78 | break; | 82 | break; |
| 79 | case LIST_DATA: | 83 | case LIST_DATA: |
| 80 | YangList yangList = (YangList) tmpData; | 84 | YangList yangList = (YangList) tmpData; |
| 81 | - yangList.setMinElements(Integer.parseInt(ctx.INTEGER().getText())); | 85 | + yangList.setMinElements(minElementValue); |
| 82 | break; | 86 | break; |
| 83 | default: | 87 | default: |
| 84 | throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, MIN_ELEMENT_DATA, | 88 | throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, MIN_ELEMENT_DATA, |
| 85 | - ctx.INTEGER().getText(), ENTRY)); | 89 | + ctx.minValue().getText(), ENTRY)); |
| 86 | } | 90 | } |
| 87 | } | 91 | } |
| 88 | } | 92 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -30,7 +30,8 @@ package org.onosproject.yangutils.parser.impl.listeners; | ... | @@ -30,7 +30,8 @@ package org.onosproject.yangutils.parser.impl.listeners; |
| 30 | * zero-integer-value = 1*DIGIT | 30 | * zero-integer-value = 1*DIGIT |
| 31 | * | 31 | * |
| 32 | * ANTLR grammar rule | 32 | * ANTLR grammar rule |
| 33 | - * positionStatement : POSITION_KEYWORD string STMTEND; | 33 | + * positionStatement : POSITION_KEYWORD position STMTEND; |
| 34 | + * position : string; | ||
| 34 | */ | 35 | */ |
| 35 | 36 | ||
| 36 | import org.onosproject.yangutils.datamodel.YangBit; | 37 | import org.onosproject.yangutils.datamodel.YangBit; |
| ... | @@ -44,7 +45,7 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLoc | ... | @@ -44,7 +45,7 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLoc |
| 44 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; | 45 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; |
| 45 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; | 46 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; |
| 46 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; | 47 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; |
| 47 | -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.removeQuotesAndHandleConcat; | 48 | +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.getValidNonNegativeIntegerValue; |
| 48 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; | 49 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; |
| 49 | import static org.onosproject.yangutils.utils.YangConstructType.POSITION_DATA; | 50 | import static org.onosproject.yangutils.utils.YangConstructType.POSITION_DATA; |
| 50 | 51 | ||
| ... | @@ -54,9 +55,6 @@ import static org.onosproject.yangutils.utils.YangConstructType.POSITION_DATA; | ... | @@ -54,9 +55,6 @@ import static org.onosproject.yangutils.utils.YangConstructType.POSITION_DATA; |
| 54 | */ | 55 | */ |
| 55 | public final class PositionListener { | 56 | public final class PositionListener { |
| 56 | 57 | ||
| 57 | - // Exact message in case position is invalid. | ||
| 58 | - private static String errMsg; | ||
| 59 | - | ||
| 60 | /** | 58 | /** |
| 61 | * Creates a new position listener. | 59 | * Creates a new position listener. |
| 62 | */ | 60 | */ |
| ... | @@ -74,27 +72,20 @@ public final class PositionListener { | ... | @@ -74,27 +72,20 @@ public final class PositionListener { |
| 74 | GeneratedYangParser.PositionStatementContext ctx) { | 72 | GeneratedYangParser.PositionStatementContext ctx) { |
| 75 | 73 | ||
| 76 | // Check for stack to be non empty. | 74 | // Check for stack to be non empty. |
| 77 | - checkStackIsNotEmpty(listener, MISSING_HOLDER, POSITION_DATA, ctx.string().getText(), ENTRY); | 75 | + checkStackIsNotEmpty(listener, MISSING_HOLDER, POSITION_DATA, ctx.position().getText(), ENTRY); |
| 78 | - | ||
| 79 | - String position = removeQuotesAndHandleConcat(ctx.string().getText()); | ||
| 80 | 76 | ||
| 81 | // Obtain the node of the stack. | 77 | // Obtain the node of the stack. |
| 82 | Parsable tmpNode = listener.getParsedDataStack().peek(); | 78 | Parsable tmpNode = listener.getParsedDataStack().peek(); |
| 83 | switch (tmpNode.getYangConstructType()) { | 79 | switch (tmpNode.getYangConstructType()) { |
| 84 | case BIT_DATA: { | 80 | case BIT_DATA: { |
| 85 | YangBit bitNode = (YangBit) tmpNode; | 81 | YangBit bitNode = (YangBit) tmpNode; |
| 86 | - if (!isBitPositionValid(listener, ctx, position)) { | 82 | + int positionValue = getValidBitPosition(listener, ctx); |
| 87 | - ParserException parserException = new ParserException(errMsg); | 83 | + bitNode.setPosition(positionValue); |
| 88 | - parserException.setLine(ctx.getStart().getLine()); | ||
| 89 | - parserException.setCharPosition(ctx.getStart().getCharPositionInLine()); | ||
| 90 | - throw parserException; | ||
| 91 | - } | ||
| 92 | - bitNode.setPosition(Integer.valueOf(position)); | ||
| 93 | break; | 84 | break; |
| 94 | } | 85 | } |
| 95 | default: | 86 | default: |
| 96 | throw new ParserException( | 87 | throw new ParserException( |
| 97 | - constructListenerErrorMessage(INVALID_HOLDER, POSITION_DATA, ctx.string().getText(), ENTRY)); | 88 | + constructListenerErrorMessage(INVALID_HOLDER, POSITION_DATA, ctx.position().getText(), ENTRY)); |
| 98 | } | 89 | } |
| 99 | } | 90 | } |
| 100 | 91 | ||
| ... | @@ -103,39 +94,38 @@ public final class PositionListener { | ... | @@ -103,39 +94,38 @@ public final class PositionListener { |
| 103 | * | 94 | * |
| 104 | * @param listener Listener's object | 95 | * @param listener Listener's object |
| 105 | * @param ctx context object of the grammar rule | 96 | * @param ctx context object of the grammar rule |
| 106 | - * @return validation result | 97 | + * @return position value |
| 107 | */ | 98 | */ |
| 108 | - private static boolean isBitPositionValid(TreeWalkListener listener, | 99 | + private static int getValidBitPosition(TreeWalkListener listener, |
| 109 | - GeneratedYangParser.PositionStatementContext ctx, String position) { | 100 | + GeneratedYangParser.PositionStatementContext ctx) { |
| 110 | Parsable bitNode = listener.getParsedDataStack().pop(); | 101 | Parsable bitNode = listener.getParsedDataStack().pop(); |
| 111 | 102 | ||
| 112 | // Check for stack to be non empty. | 103 | // Check for stack to be non empty. |
| 113 | - checkStackIsNotEmpty(listener, MISSING_HOLDER, POSITION_DATA, ctx.string().getText(), ENTRY); | 104 | + checkStackIsNotEmpty(listener, MISSING_HOLDER, POSITION_DATA, ctx.position().getText(), ENTRY); |
| 114 | 105 | ||
| 115 | - if (Integer.valueOf(position) < 0) { | 106 | + int positionValue = getValidNonNegativeIntegerValue(ctx.position().getText(), POSITION_DATA, ctx); |
| 116 | - errMsg = "YANG file error: Negative value of position is invalid."; | ||
| 117 | - listener.getParsedDataStack().push(bitNode); | ||
| 118 | - return false; | ||
| 119 | - } | ||
| 120 | 107 | ||
| 121 | Parsable tmpNode = listener.getParsedDataStack().peek(); | 108 | Parsable tmpNode = listener.getParsedDataStack().peek(); |
| 122 | switch (tmpNode.getYangConstructType()) { | 109 | switch (tmpNode.getYangConstructType()) { |
| 123 | case BITS_DATA: { | 110 | case BITS_DATA: { |
| 124 | YangBits yangBits = (YangBits) tmpNode; | 111 | YangBits yangBits = (YangBits) tmpNode; |
| 125 | for (YangBit curBit : yangBits.getBitSet()) { | 112 | for (YangBit curBit : yangBits.getBitSet()) { |
| 126 | - if (Integer.valueOf(position) == curBit.getPosition()) { | 113 | + if (positionValue == curBit.getPosition()) { |
| 127 | - errMsg = "YANG file error: Duplicate value of position is invalid."; | ||
| 128 | listener.getParsedDataStack().push(bitNode); | 114 | listener.getParsedDataStack().push(bitNode); |
| 129 | - return false; | 115 | + ParserException parserException = new ParserException("YANG file error: Duplicate value of " + |
| 116 | + "position is invalid."); | ||
| 117 | + parserException.setLine(ctx.getStart().getLine()); | ||
| 118 | + parserException.setCharPosition(ctx.getStart().getCharPositionInLine()); | ||
| 119 | + throw parserException; | ||
| 130 | } | 120 | } |
| 131 | } | 121 | } |
| 132 | listener.getParsedDataStack().push(bitNode); | 122 | listener.getParsedDataStack().push(bitNode); |
| 133 | - return true; | 123 | + return positionValue; |
| 134 | } | 124 | } |
| 135 | default: | 125 | default: |
| 136 | listener.getParsedDataStack().push(bitNode); | 126 | listener.getParsedDataStack().push(bitNode); |
| 137 | throw new ParserException( | 127 | throw new ParserException( |
| 138 | - constructListenerErrorMessage(INVALID_HOLDER, POSITION_DATA, ctx.string().getText(), ENTRY)); | 128 | + constructListenerErrorMessage(INVALID_HOLDER, POSITION_DATA, ctx.position().getText(), ENTRY)); |
| 139 | } | 129 | } |
| 140 | } | 130 | } |
| 141 | } | 131 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -23,10 +23,12 @@ import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; | ... | @@ -23,10 +23,12 @@ import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; |
| 23 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 23 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 24 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; | 24 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; |
| 25 | 25 | ||
| 26 | +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.removeQuotesAndHandleConcat; | ||
| 26 | import static org.onosproject.yangutils.utils.YangConstructType.STATUS_DATA; | 27 | import static org.onosproject.yangutils.utils.YangConstructType.STATUS_DATA; |
| 27 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; | 28 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; |
| 28 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; | 29 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; |
| 29 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; | 30 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER; |
| 31 | +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_CONTENT; | ||
| 30 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; | 32 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER; |
| 31 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; | 33 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty; |
| 32 | 34 | ||
| ... | @@ -51,6 +53,10 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidati | ... | @@ -51,6 +53,10 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidati |
| 51 | */ | 53 | */ |
| 52 | public final class StatusListener { | 54 | public final class StatusListener { |
| 53 | 55 | ||
| 56 | + private static final String CURRENT_KEYWORD = "current"; | ||
| 57 | + private static final String DEPRECATED_KEYWORD = "deprecated"; | ||
| 58 | + private static final String OBSOLETE_KEYWORD = "obsolete"; | ||
| 59 | + | ||
| 54 | /** | 60 | /** |
| 55 | * Creates a new status listener. | 61 | * Creates a new status listener. |
| 56 | */ | 62 | */ |
| ... | @@ -67,18 +73,11 @@ public final class StatusListener { | ... | @@ -67,18 +73,11 @@ public final class StatusListener { |
| 67 | */ | 73 | */ |
| 68 | public static void processStatusEntry(TreeWalkListener listener, | 74 | public static void processStatusEntry(TreeWalkListener listener, |
| 69 | GeneratedYangParser.StatusStatementContext ctx) { | 75 | GeneratedYangParser.StatusStatementContext ctx) { |
| 70 | - YangStatusType status; | ||
| 71 | 76 | ||
| 72 | // Check for stack to be non empty. | 77 | // Check for stack to be non empty. |
| 73 | checkStackIsNotEmpty(listener, MISSING_HOLDER, STATUS_DATA, "", ENTRY); | 78 | checkStackIsNotEmpty(listener, MISSING_HOLDER, STATUS_DATA, "", ENTRY); |
| 74 | 79 | ||
| 75 | - if (ctx.CURRENT_KEYWORD() != null) { | 80 | + YangStatusType status = getValidStatus(ctx); |
| 76 | - status = YangStatusType.CURRENT; | ||
| 77 | - } else if (ctx.DEPRECATED_KEYWORD() != null) { | ||
| 78 | - status = YangStatusType.DEPRECATED; | ||
| 79 | - } else { | ||
| 80 | - status = YangStatusType.OBSOLETE; | ||
| 81 | - } | ||
| 82 | 81 | ||
| 83 | Parsable tmpData = listener.getParsedDataStack().peek(); | 82 | Parsable tmpData = listener.getParsedDataStack().peek(); |
| 84 | if (tmpData instanceof YangStatus) { | 83 | if (tmpData instanceof YangStatus) { |
| ... | @@ -88,4 +87,28 @@ public final class StatusListener { | ... | @@ -88,4 +87,28 @@ public final class StatusListener { |
| 88 | throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, STATUS_DATA, "", ENTRY)); | 87 | throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, STATUS_DATA, "", ENTRY)); |
| 89 | } | 88 | } |
| 90 | } | 89 | } |
| 90 | + | ||
| 91 | + /** | ||
| 92 | + * Validates status value and returns the value from context. | ||
| 93 | + * | ||
| 94 | + * @param ctx context object of the grammar rule | ||
| 95 | + * @return status current/deprecated/obsolete | ||
| 96 | + */ | ||
| 97 | + private static YangStatusType getValidStatus(GeneratedYangParser.StatusStatementContext ctx) { | ||
| 98 | + | ||
| 99 | + YangStatusType status; | ||
| 100 | + | ||
| 101 | + String value = removeQuotesAndHandleConcat(ctx.status().getText()); | ||
| 102 | + if (value.equals(CURRENT_KEYWORD)) { | ||
| 103 | + status = YangStatusType.CURRENT; | ||
| 104 | + } else if (value.equals(DEPRECATED_KEYWORD)) { | ||
| 105 | + status = YangStatusType.DEPRECATED; | ||
| 106 | + } else if (value.equals(OBSOLETE_KEYWORD)) { | ||
| 107 | + status = YangStatusType.OBSOLETE; | ||
| 108 | + } else { | ||
| 109 | + throw new ParserException(constructListenerErrorMessage(INVALID_CONTENT, STATUS_DATA, value, ENTRY)); | ||
| 110 | + } | ||
| 111 | + | ||
| 112 | + return status; | ||
| 113 | + } | ||
| 91 | } | 114 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -23,7 +23,7 @@ import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; | ... | @@ -23,7 +23,7 @@ import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; |
| 23 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 23 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 24 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; | 24 | import org.onosproject.yangutils.parser.impl.TreeWalkListener; |
| 25 | 25 | ||
| 26 | -import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.removeQuotesAndHandleConcat; | 26 | +import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.getValidVersion; |
| 27 | import static org.onosproject.yangutils.utils.YangConstructType.VERSION_DATA; | 27 | import static org.onosproject.yangutils.utils.YangConstructType.VERSION_DATA; |
| 28 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; | 28 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY; |
| 29 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; | 29 | import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage; |
| ... | @@ -60,7 +60,8 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidati | ... | @@ -60,7 +60,8 @@ import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidati |
| 60 | * submodule_header_statement : yang_version_stmt? belongs_to_stmt | 60 | * submodule_header_statement : yang_version_stmt? belongs_to_stmt |
| 61 | * | belongs_to_stmt yang_version_stmt? | 61 | * | belongs_to_stmt yang_version_stmt? |
| 62 | * ; | 62 | * ; |
| 63 | - * yang_version_stmt : YANG_VERSION_KEYWORD string STMTEND; | 63 | + * yang_version_stmt : YANG_VERSION_KEYWORD version STMTEND; |
| 64 | + * version : string; | ||
| 64 | */ | 65 | */ |
| 65 | 66 | ||
| 66 | /** | 67 | /** |
| ... | @@ -86,42 +87,26 @@ public final class VersionListener { | ... | @@ -86,42 +87,26 @@ public final class VersionListener { |
| 86 | GeneratedYangParser.YangVersionStatementContext ctx) { | 87 | GeneratedYangParser.YangVersionStatementContext ctx) { |
| 87 | 88 | ||
| 88 | // Check for stack to be non empty. | 89 | // Check for stack to be non empty. |
| 89 | - checkStackIsNotEmpty(listener, MISSING_HOLDER, VERSION_DATA, ctx.string().getText(), ENTRY); | 90 | + checkStackIsNotEmpty(listener, MISSING_HOLDER, VERSION_DATA, ctx.version().getText(), ENTRY); |
| 90 | 91 | ||
| 91 | - String version = removeQuotesAndHandleConcat(ctx.string().getText()); | 92 | + byte version = getValidVersion(ctx); |
| 92 | - if (!isVersionValid(Integer.valueOf(version))) { | ||
| 93 | - ParserException parserException = new ParserException("YANG file error: Input version not supported"); | ||
| 94 | - parserException.setLine(ctx.getStart().getLine()); | ||
| 95 | - parserException.setCharPosition(ctx.getStart().getCharPositionInLine()); | ||
| 96 | - throw parserException; | ||
| 97 | - } | ||
| 98 | 93 | ||
| 99 | // Obtain the node of the stack. | 94 | // Obtain the node of the stack. |
| 100 | Parsable tmpNode = listener.getParsedDataStack().peek(); | 95 | Parsable tmpNode = listener.getParsedDataStack().peek(); |
| 101 | switch (tmpNode.getYangConstructType()) { | 96 | switch (tmpNode.getYangConstructType()) { |
| 102 | case MODULE_DATA: { | 97 | case MODULE_DATA: { |
| 103 | YangModule module = (YangModule) tmpNode; | 98 | YangModule module = (YangModule) tmpNode; |
| 104 | - module.setVersion((byte) 1); | 99 | + module.setVersion(version); |
| 105 | break; | 100 | break; |
| 106 | } | 101 | } |
| 107 | case SUB_MODULE_DATA: { | 102 | case SUB_MODULE_DATA: { |
| 108 | YangSubModule subModule = (YangSubModule) tmpNode; | 103 | YangSubModule subModule = (YangSubModule) tmpNode; |
| 109 | - subModule.setVersion((byte) 1); | 104 | + subModule.setVersion(version); |
| 110 | break; | 105 | break; |
| 111 | } | 106 | } |
| 112 | default: | 107 | default: |
| 113 | throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, VERSION_DATA, | 108 | throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, VERSION_DATA, |
| 114 | - ctx.string().getText(), ENTRY)); | 109 | + ctx.version().getText(), ENTRY)); |
| 115 | } | 110 | } |
| 116 | } | 111 | } |
| 117 | - | ||
| 118 | - /** | ||
| 119 | - * Validates whether the value of YANG version. | ||
| 120 | - * | ||
| 121 | - * @param version input yang version | ||
| 122 | - * @return validation result | ||
| 123 | - */ | ||
| 124 | - private static boolean isVersionValid(Integer version) { | ||
| 125 | - return version == 1; | ||
| 126 | - } | ||
| 127 | } | 112 | } | ... | ... |
| ... | @@ -21,6 +21,8 @@ import org.antlr.v4.runtime.ParserRuleContext; | ... | @@ -21,6 +21,8 @@ import org.antlr.v4.runtime.ParserRuleContext; |
| 21 | import java.text.ParseException; | 21 | import java.text.ParseException; |
| 22 | import java.text.SimpleDateFormat; | 22 | import java.text.SimpleDateFormat; |
| 23 | import java.util.regex.Pattern; | 23 | import java.util.regex.Pattern; |
| 24 | + | ||
| 25 | +import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser; | ||
| 24 | import org.onosproject.yangutils.utils.YangConstructType; | 26 | import org.onosproject.yangutils.utils.YangConstructType; |
| 25 | import org.onosproject.yangutils.parser.exceptions.ParserException; | 27 | import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 26 | 28 | ||
| ... | @@ -29,7 +31,11 @@ import org.onosproject.yangutils.parser.exceptions.ParserException; | ... | @@ -29,7 +31,11 @@ import org.onosproject.yangutils.parser.exceptions.ParserException; |
| 29 | */ | 31 | */ |
| 30 | public final class ListenerUtil { | 32 | public final class ListenerUtil { |
| 31 | private static final Pattern IDENTIFIER_PATTERN = Pattern.compile("[a-zA-Z_][a-zA-Z0-9_.-]*"); | 33 | private static final Pattern IDENTIFIER_PATTERN = Pattern.compile("[a-zA-Z_][a-zA-Z0-9_.-]*"); |
| 34 | + private static final String NON_NEGATIVE_INTEGER_PATTERN = "[0-9]+"; | ||
| 32 | private static final String PLUS = "+"; | 35 | private static final String PLUS = "+"; |
| 36 | + private static final String ONE = "1"; | ||
| 37 | + private static final String TRUE_KEYWORD = "true"; | ||
| 38 | + private static final String FALSE_KEYWORD = "false"; | ||
| 33 | private static final int IDENTIFIER_LENGTH = 64; | 39 | private static final int IDENTIFIER_LENGTH = 64; |
| 34 | 40 | ||
| 35 | /** | 41 | /** |
| ... | @@ -109,4 +115,73 @@ public final class ListenerUtil { | ... | @@ -109,4 +115,73 @@ public final class ListenerUtil { |
| 109 | 115 | ||
| 110 | return true; | 116 | return true; |
| 111 | } | 117 | } |
| 118 | + | ||
| 119 | + /** | ||
| 120 | + * Validates YANG version. | ||
| 121 | + * | ||
| 122 | + * @param ctx version context object of the grammar rule | ||
| 123 | + * @return valid version | ||
| 124 | + */ | ||
| 125 | + public static byte getValidVersion(GeneratedYangParser.YangVersionStatementContext ctx) { | ||
| 126 | + | ||
| 127 | + String value = removeQuotesAndHandleConcat(ctx.version().getText()); | ||
| 128 | + if (!value.equals(ONE)) { | ||
| 129 | + ParserException parserException = new ParserException("YANG file error: Input version not supported"); | ||
| 130 | + parserException.setLine(ctx.getStart().getLine()); | ||
| 131 | + parserException.setCharPosition(ctx.getStart().getCharPositionInLine()); | ||
| 132 | + throw parserException; | ||
| 133 | + } | ||
| 134 | + | ||
| 135 | + return Byte.valueOf(value); | ||
| 136 | + } | ||
| 137 | + | ||
| 138 | + /** | ||
| 139 | + * Validates non negative integer value. | ||
| 140 | + * | ||
| 141 | + * @param integerValue integer to be validated | ||
| 142 | + * @param yangConstruct yang construct for creating error message | ||
| 143 | + * @param ctx context object of the grammar rule | ||
| 144 | + * @return valid non negative integer value | ||
| 145 | + */ | ||
| 146 | + public static int getValidNonNegativeIntegerValue(String integerValue, YangConstructType yangConstruct, | ||
| 147 | + ParserRuleContext ctx) { | ||
| 148 | + | ||
| 149 | + String value = removeQuotesAndHandleConcat(integerValue); | ||
| 150 | + if (!value.matches(NON_NEGATIVE_INTEGER_PATTERN)) { | ||
| 151 | + ParserException parserException = new ParserException("YANG file error : " + | ||
| 152 | + YangConstructType.getYangConstructType(yangConstruct) + " value " + value + " is not " + | ||
| 153 | + "valid."); | ||
| 154 | + parserException.setLine(ctx.getStart().getLine()); | ||
| 155 | + parserException.setCharPosition(ctx.getStart().getCharPositionInLine()); | ||
| 156 | + throw parserException; | ||
| 157 | + } | ||
| 158 | + | ||
| 159 | + return Integer.parseInt(value); | ||
| 160 | + } | ||
| 161 | + | ||
| 162 | + /** | ||
| 163 | + * Validates boolean value. | ||
| 164 | + * | ||
| 165 | + * @param booleanValue value to be validated | ||
| 166 | + * @param yangConstruct yang construct for creating error message | ||
| 167 | + * @param ctx context object of the grammar rule | ||
| 168 | + * @return boolean value either true or false | ||
| 169 | + */ | ||
| 170 | + public static boolean getValidBooleanValue(String booleanValue, YangConstructType yangConstruct, | ||
| 171 | + ParserRuleContext ctx) { | ||
| 172 | + | ||
| 173 | + String value = removeQuotesAndHandleConcat(booleanValue); | ||
| 174 | + if (value.equals(TRUE_KEYWORD)) { | ||
| 175 | + return true; | ||
| 176 | + } else if (value.equals(FALSE_KEYWORD)) { | ||
| 177 | + return false; | ||
| 178 | + } else { | ||
| 179 | + ParserException parserException = new ParserException("YANG file error : " + | ||
| 180 | + YangConstructType.getYangConstructType(yangConstruct) + " value " + value + " is not " + | ||
| 181 | + "valid."); | ||
| 182 | + parserException.setLine(ctx.getStart().getLine()); | ||
| 183 | + parserException.setCharPosition(ctx.getStart().getCharPositionInLine()); | ||
| 184 | + throw parserException; | ||
| 185 | + } | ||
| 186 | + } | ||
| 112 | } | 187 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -64,7 +64,6 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -64,7 +64,6 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 64 | * *(import-stmt stmtsep) | 64 | * *(import-stmt stmtsep) |
| 65 | * *(include-stmt stmtsep) | 65 | * *(include-stmt stmtsep) |
| 66 | */ | 66 | */ |
| 67 | - | ||
| 68 | linkageStatements : (importStatement | 67 | linkageStatements : (importStatement |
| 69 | | includeStatement)*; | 68 | | includeStatement)*; |
| 70 | 69 | ||
| ... | @@ -75,7 +74,6 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -75,7 +74,6 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 75 | * [description-stmt stmtsep] | 74 | * [description-stmt stmtsep] |
| 76 | * [reference-stmt stmtsep] | 75 | * [reference-stmt stmtsep] |
| 77 | */ | 76 | */ |
| 78 | - | ||
| 79 | metaStatements : organizationStatement? contactStatement? descriptionStatement? referenceStatement? | 77 | metaStatements : organizationStatement? contactStatement? descriptionStatement? referenceStatement? |
| 80 | | organizationStatement? contactStatement? referenceStatement? descriptionStatement? | 78 | | organizationStatement? contactStatement? referenceStatement? descriptionStatement? |
| 81 | | organizationStatement? descriptionStatement? contactStatement? referenceStatement? | 79 | | organizationStatement? descriptionStatement? contactStatement? referenceStatement? |
| ... | @@ -117,7 +115,6 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -117,7 +115,6 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 117 | * notification-stmt / | 115 | * notification-stmt / |
| 118 | * deviation-stmt) stmtsep) | 116 | * deviation-stmt) stmtsep) |
| 119 | */ | 117 | */ |
| 120 | - | ||
| 121 | bodyStatements : (extensionStatement | 118 | bodyStatements : (extensionStatement |
| 122 | | featureStatement | 119 | | featureStatement |
| 123 | | identityStatement | 120 | | identityStatement |
| ... | @@ -134,8 +131,7 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -134,8 +131,7 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 134 | * yang-version-stmt = yang-version-keyword sep yang-version-arg-str | 131 | * yang-version-stmt = yang-version-keyword sep yang-version-arg-str |
| 135 | * optsep stmtend | 132 | * optsep stmtend |
| 136 | */ | 133 | */ |
| 137 | - | 134 | + yangVersionStatement : YANG_VERSION_KEYWORD version STMTEND; |
| 138 | - yangVersionStatement : YANG_VERSION_KEYWORD string STMTEND; | ||
| 139 | 135 | ||
| 140 | 136 | ||
| 141 | /** | 137 | /** |
| ... | @@ -455,7 +451,7 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -455,7 +451,7 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 455 | * [reference-stmt stmtsep] | 451 | * [reference-stmt stmtsep] |
| 456 | * "}") | 452 | * "}") |
| 457 | */ | 453 | */ |
| 458 | - rangeStatement : RANGE_KEYWORD string (STMTEND | LEFT_CURLY_BRACE commonStatements RIGHT_CURLY_BRACE); | 454 | + rangeStatement : RANGE_KEYWORD range (STMTEND | LEFT_CURLY_BRACE commonStatements RIGHT_CURLY_BRACE); |
| 459 | 455 | ||
| 460 | commonStatements : errorMessageStatement? errorAppTagStatement? descriptionStatement? referenceStatement? | 456 | commonStatements : errorMessageStatement? errorAppTagStatement? descriptionStatement? referenceStatement? |
| 461 | | errorMessageStatement? errorAppTagStatement? referenceStatement? descriptionStatement? | 457 | | errorMessageStatement? errorAppTagStatement? referenceStatement? descriptionStatement? |
| ... | @@ -501,7 +497,7 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -501,7 +497,7 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 501 | * [reference-stmt stmtsep] | 497 | * [reference-stmt stmtsep] |
| 502 | * "}") | 498 | * "}") |
| 503 | */ | 499 | */ |
| 504 | - lengthStatement : LENGTH_KEYWORD string | 500 | + lengthStatement : LENGTH_KEYWORD length |
| 505 | (STMTEND | LEFT_CURLY_BRACE commonStatements RIGHT_CURLY_BRACE); | 501 | (STMTEND | LEFT_CURLY_BRACE commonStatements RIGHT_CURLY_BRACE); |
| 506 | 502 | ||
| 507 | /** | 503 | /** |
| ... | @@ -577,7 +573,7 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -577,7 +573,7 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 577 | /** | 573 | /** |
| 578 | * path-stmt = path-keyword sep path-arg-str stmtend | 574 | * path-stmt = path-keyword sep path-arg-str stmtend |
| 579 | */ | 575 | */ |
| 580 | - pathStatement : PATH_KEYWORD string STMTEND; | 576 | + pathStatement : PATH_KEYWORD path STMTEND; |
| 581 | 577 | ||
| 582 | /** | 578 | /** |
| 583 | * require-instance-stmt = require-instance-keyword sep | 579 | * require-instance-stmt = require-instance-keyword sep |
| ... | @@ -657,7 +653,7 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -657,7 +653,7 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 657 | * position-value-arg > | 653 | * position-value-arg > |
| 658 | * position-value-arg = non-negative-integer-value | 654 | * position-value-arg = non-negative-integer-value |
| 659 | */ | 655 | */ |
| 660 | - positionStatement : POSITION_KEYWORD string STMTEND; | 656 | + positionStatement : POSITION_KEYWORD position STMTEND; |
| 661 | 657 | ||
| 662 | /** | 658 | /** |
| 663 | * status-stmt = status-keyword sep status-arg-str stmtend | 659 | * status-stmt = status-keyword sep status-arg-str stmtend |
| ... | @@ -667,7 +663,7 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -667,7 +663,7 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 667 | * obsolete-keyword / | 663 | * obsolete-keyword / |
| 668 | * deprecated-keyword | 664 | * deprecated-keyword |
| 669 | */ | 665 | */ |
| 670 | - statusStatement : STATUS_KEYWORD (CURRENT_KEYWORD | OBSOLETE_KEYWORD | DEPRECATED_KEYWORD) STMTEND; | 666 | + statusStatement : STATUS_KEYWORD status STMTEND; |
| 671 | 667 | ||
| 672 | /** | 668 | /** |
| 673 | * config-stmt = config-keyword sep | 669 | * config-stmt = config-keyword sep |
| ... | @@ -676,7 +672,7 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -676,7 +672,7 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 676 | * config-arg > | 672 | * config-arg > |
| 677 | * config-arg = true-keyword / false-keyword | 673 | * config-arg = true-keyword / false-keyword |
| 678 | */ | 674 | */ |
| 679 | - configStatement : CONFIG_KEYWORD (TRUE_KEYWORD | FALSE_KEYWORD) STMTEND; | 675 | + configStatement : CONFIG_KEYWORD config STMTEND; |
| 680 | 676 | ||
| 681 | /** | 677 | /** |
| 682 | * mandatory-stmt = mandatory-keyword sep | 678 | * mandatory-stmt = mandatory-keyword sep |
| ... | @@ -687,7 +683,7 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -687,7 +683,7 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 687 | * | 683 | * |
| 688 | * mandatory-arg = true-keyword / false-keyword | 684 | * mandatory-arg = true-keyword / false-keyword |
| 689 | */ | 685 | */ |
| 690 | - mandatoryStatement : MANDATORY_KEYWORD (TRUE_KEYWORD | FALSE_KEYWORD) STMTEND; | 686 | + mandatoryStatement : MANDATORY_KEYWORD mandatory STMTEND; |
| 691 | 687 | ||
| 692 | /** | 688 | /** |
| 693 | * presence-stmt = presence-keyword sep string stmtend | 689 | * presence-stmt = presence-keyword sep string stmtend |
| ... | @@ -703,7 +699,7 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -703,7 +699,7 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 703 | * | 699 | * |
| 704 | * ordered-by-arg = user-keyword / system-keyword | 700 | * ordered-by-arg = user-keyword / system-keyword |
| 705 | */ | 701 | */ |
| 706 | - orderedByStatement : ORDERED_BY_KEYWORD (USER_KEYWORD | SYSTEM_KEYWORD) STMTEND; | 702 | + orderedByStatement : ORDERED_BY_KEYWORD orderedBy STMTEND; |
| 707 | 703 | ||
| 708 | /** | 704 | /** |
| 709 | * must-stmt = must-keyword sep string optsep | 705 | * must-stmt = must-keyword sep string optsep |
| ... | @@ -735,22 +731,17 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -735,22 +731,17 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 735 | * min-value-arg > | 731 | * min-value-arg > |
| 736 | * min-value-arg = non-negative-integer-value | 732 | * min-value-arg = non-negative-integer-value |
| 737 | */ | 733 | */ |
| 738 | - minElementsStatement : MIN_ELEMENTS_KEYWORD INTEGER STMTEND; | 734 | + minElementsStatement : MIN_ELEMENTS_KEYWORD minValue STMTEND; |
| 739 | 735 | ||
| 740 | /** | 736 | /** |
| 741 | * max-elements-stmt = max-elements-keyword sep | 737 | * max-elements-stmt = max-elements-keyword sep |
| 742 | * max-value-arg-str stmtend | 738 | * max-value-arg-str stmtend |
| 743 | * max-value-arg-str = < a string that matches the rule | 739 | * max-value-arg-str = < a string that matches the rule |
| 744 | * max-value-arg > | 740 | * max-value-arg > |
| 745 | - | ||
| 746 | - */ | ||
| 747 | - maxElementsStatement : MAX_ELEMENTS_KEYWORD maxValueArgument STMTEND; | ||
| 748 | - | ||
| 749 | - /** | ||
| 750 | * max-value-arg = unbounded-keyword / | 741 | * max-value-arg = unbounded-keyword / |
| 751 | * positive-integer-value | 742 | * positive-integer-value |
| 752 | */ | 743 | */ |
| 753 | - maxValueArgument : UNBOUNDED_KEYWORD | INTEGER; | 744 | + maxElementsStatement : MAX_ELEMENTS_KEYWORD maxValue STMTEND; |
| 754 | 745 | ||
| 755 | /** | 746 | /** |
| 756 | * value-stmt = value-keyword sep integer-value stmtend | 747 | * value-stmt = value-keyword sep integer-value stmtend |
| ... | @@ -873,12 +864,12 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -873,12 +864,12 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 873 | /** | 864 | /** |
| 874 | * key-stmt = key-keyword sep key-arg-str stmtend | 865 | * key-stmt = key-keyword sep key-arg-str stmtend |
| 875 | */ | 866 | */ |
| 876 | - keyStatement : KEY_KEYWORD string STMTEND; | 867 | + keyStatement : KEY_KEYWORD key STMTEND; |
| 877 | 868 | ||
| 878 | /** | 869 | /** |
| 879 | * unique-stmt = unique-keyword sep unique-arg-str stmtend | 870 | * unique-stmt = unique-keyword sep unique-arg-str stmtend |
| 880 | */ | 871 | */ |
| 881 | - uniqueStatement: UNIQUE_KEYWORD string STMTEND; | 872 | + uniqueStatement: UNIQUE_KEYWORD unique STMTEND; |
| 882 | 873 | ||
| 883 | /** | 874 | /** |
| 884 | * choice-stmt = choice-keyword sep identifier-arg-str optsep | 875 | * choice-stmt = choice-keyword sep identifier-arg-str optsep |
| ... | @@ -958,9 +949,9 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -958,9 +949,9 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 958 | * refine-anyxml-stmts) | 949 | * refine-anyxml-stmts) |
| 959 | * "}") | 950 | * "}") |
| 960 | */ | 951 | */ |
| 961 | - refineStatement : REFINE_KEYWORD string (STMTEND | LEFT_CURLY_BRACE (refineContainerStatements | refineLeafStatements | 952 | + refineStatement : REFINE_KEYWORD refine (STMTEND | LEFT_CURLY_BRACE (refineContainerStatements |
| 962 | - | refineLeafListStatements | refineListStatements | refineChoiceStatements | refineCaseStatements) | 953 | + | refineLeafStatements | refineLeafListStatements | refineListStatements | refineChoiceStatements |
| 963 | - RIGHT_CURLY_BRACE); | 954 | + | refineCaseStatements) RIGHT_CURLY_BRACE); |
| 964 | 955 | ||
| 965 | /** | 956 | /** |
| 966 | * refine-container-stmts = | 957 | * refine-container-stmts = |
| ... | @@ -1046,8 +1037,9 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -1046,8 +1037,9 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 1046 | * "}" | 1037 | * "}" |
| 1047 | * TODO : 0..1 occurance to be checked in listener | 1038 | * TODO : 0..1 occurance to be checked in listener |
| 1048 | */ | 1039 | */ |
| 1049 | - usesAugmentStatement : AUGMENT_KEYWORD string LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | statusStatement | 1040 | + usesAugmentStatement : AUGMENT_KEYWORD augment LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement |
| 1050 | - | descriptionStatement | referenceStatement | dataDefStatement | caseStatement)* RIGHT_CURLY_BRACE; | 1041 | + | statusStatement | descriptionStatement | referenceStatement | dataDefStatement |
| 1042 | + | caseStatement)* RIGHT_CURLY_BRACE; | ||
| 1051 | 1043 | ||
| 1052 | /** | 1044 | /** |
| 1053 | * augment-stmt = augment-keyword sep augment-arg-str optsep | 1045 | * augment-stmt = augment-keyword sep augment-arg-str optsep |
| ... | @@ -1158,9 +1150,9 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -1158,9 +1150,9 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 1158 | * "}" | 1150 | * "}" |
| 1159 | * TODO : 0..1 occurance to be checked in listener | 1151 | * TODO : 0..1 occurance to be checked in listener |
| 1160 | */ | 1152 | */ |
| 1161 | - deviationStatement: DEVIATION_KEYWORD string LEFT_CURLY_BRACE (descriptionStatement | referenceStatement | 1153 | + deviationStatement: DEVIATION_KEYWORD deviation LEFT_CURLY_BRACE (descriptionStatement | referenceStatement |
| 1162 | - | deviateNotSupportedStatement | deviateAddStatement | deviateReplaceStatement | deviateDeleteStatement)* | 1154 | + | deviateNotSupportedStatement | deviateAddStatement | deviateReplaceStatement |
| 1163 | - RIGHT_CURLY_BRACE; | 1155 | + | deviateDeleteStatement)* RIGHT_CURLY_BRACE; |
| 1164 | 1156 | ||
| 1165 | /** | 1157 | /** |
| 1166 | * deviate-not-supported-stmt = | 1158 | * deviate-not-supported-stmt = |
| ... | @@ -1222,10 +1214,61 @@ package org.onosproject.yangutils.parser.antlrgencode; | ... | @@ -1222,10 +1214,61 @@ package org.onosproject.yangutils.parser.antlrgencode; |
| 1222 | 1214 | ||
| 1223 | string : STRING (PLUS STRING)* | 1215 | string : STRING (PLUS STRING)* |
| 1224 | | IDENTIFIER | 1216 | | IDENTIFIER |
| 1225 | - | INTEGER; | 1217 | + | INTEGER |
| 1218 | + | yangConstruct; | ||
| 1226 | 1219 | ||
| 1227 | identifier : STRING (PLUS STRING)* | 1220 | identifier : STRING (PLUS STRING)* |
| 1228 | - | IDENTIFIER; | 1221 | + | IDENTIFIER |
| 1222 | + | yangConstruct; | ||
| 1229 | 1223 | ||
| 1230 | dateArgumentString : DATE_ARG | 1224 | dateArgumentString : DATE_ARG |
| 1231 | | STRING (PLUS STRING)*; | 1225 | | STRING (PLUS STRING)*; |
| 1226 | + | ||
| 1227 | + version : string; | ||
| 1228 | + | ||
| 1229 | + range : string; | ||
| 1230 | + | ||
| 1231 | + length : string; | ||
| 1232 | + | ||
| 1233 | + path : string; | ||
| 1234 | + | ||
| 1235 | + position : string; | ||
| 1236 | + | ||
| 1237 | + status : string; | ||
| 1238 | + | ||
| 1239 | + config : string; | ||
| 1240 | + | ||
| 1241 | + mandatory : string; | ||
| 1242 | + | ||
| 1243 | + orderedBy : string; | ||
| 1244 | + | ||
| 1245 | + minValue : string; | ||
| 1246 | + | ||
| 1247 | + maxValue : string; | ||
| 1248 | + | ||
| 1249 | + key : string; | ||
| 1250 | + | ||
| 1251 | + unique : string; | ||
| 1252 | + | ||
| 1253 | + refine : string; | ||
| 1254 | + | ||
| 1255 | + augment : string; | ||
| 1256 | + | ||
| 1257 | + deviation : string; | ||
| 1258 | + | ||
| 1259 | + yangConstruct : ANYXML_KEYWORD | ARGUMENT_KEYWORD | AUGMENT_KEYWORD | BASE_KEYWORD | BELONGS_TO_KEYWORD | ||
| 1260 | + | BIT_KEYWORD | CASE_KEYWORD | CHOICE_KEYWORD | CONFIG_KEYWORD | CONTACT_KEYWORD | CONTAINER_KEYWORD | ||
| 1261 | + | DEFAULT_KEYWORD | DESCRIPTION_KEYWORD | ENUM_KEYWORD ERROR_APP_TAG_KEYWORD | ERROR_MESSAGE_KEYWORD | ||
| 1262 | + | EXTENSION_KEYWORD | DEVIATION_KEYWORD | DEVIATE_KEYWORD | FEATURE_KEYWORD | ||
| 1263 | + | FRACTION_DIGITS_KEYWORD | GROUPING_KEYWORD | IDENTITY_KEYWORD | IF_FEATURE_KEYWORD | ||
| 1264 | + | IMPORT_KEYWORD | INCLUDE_KEYWORD | INPUT_KEYWORD | KEY_KEYWORD | LEAF_KEYWORD | LEAF_LIST_KEYWORD | ||
| 1265 | + | LENGTH_KEYWORD | LIST_KEYWORD | MANDATORY_KEYWORD | MAX_ELEMENTS_KEYWORD | MIN_ELEMENTS_KEYWORD | ||
| 1266 | + | MODULE_KEYWORD | MUST_KEYWORD | NAMESPACE_KEYWORD | NOTIFICATION_KEYWORD | ORDERED_BY_KEYWORD | ||
| 1267 | + | ORGANIZATION_KEYWORD | OUTPUT_KEYWORD | PATH_KEYWORD | PATTERN_KEYWORD |POSITION_KEYWORD | ||
| 1268 | + | PREFIX_KEYWORD | PRESENCE_KEYWORD | RANGE_KEYWORD | REFERENCE_KEYWORD | REFINE_KEYWORD | ||
| 1269 | + | REQUIRE_INSTANCE_KEYWORD | REVISION_KEYWORD | REVISION_DATE_KEYWORD | RPC_KEYWORD | ||
| 1270 | + | STATUS_KEYWORD | SUBMODULE_KEYWORD | TYPE_KEYWORD | TYPEDEF_KEYWORD | UNIQUE_KEYWORD | ||
| 1271 | + | UNITS_KEYWORD | USES_KEYWORD | VALUE_KEYWORD | WHEN_KEYWORD | YANG_VERSION_KEYWORD | ||
| 1272 | + | YIN_ELEMENT_KEYWORD | ADD_KEYWORD | CURRENT_KEYWORD | DELETE_KEYWORD | DEPRECATED_KEYWORD | ||
| 1273 | + | FALSE_KEYWORD | MAX_KEYWORD | MIN_KEYWORD | NOT_SUPPORTED_KEYWORD | OBSOLETE_KEYWORD | ||
| 1274 | + | REPLACE_KEYWORD | SYSTEM_KEYWORD | TRUE_KEYWORD | UNBOUNDED_KEYWORD | USER_KEYWORD; | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -115,7 +115,7 @@ public class ConfigListenerTest { | ... | @@ -115,7 +115,7 @@ public class ConfigListenerTest { |
| 115 | @Test | 115 | @Test |
| 116 | public void processConfigInvalidValue() throws IOException, ParserException { | 116 | public void processConfigInvalidValue() throws IOException, ParserException { |
| 117 | thrown.expect(ParserException.class); | 117 | thrown.expect(ParserException.class); |
| 118 | - thrown.expectMessage("mismatched input 'invalid' expecting {'false', 'true'}"); | 118 | + thrown.expectMessage("YANG file error : config value invalid is not valid."); |
| 119 | YangNode node = manager.getDataModel("src/test/resources/ConfigInvalidValue.yang"); | 119 | YangNode node = manager.getDataModel("src/test/resources/ConfigInvalidValue.yang"); |
| 120 | } | 120 | } |
| 121 | 121 | ||
| ... | @@ -125,7 +125,7 @@ public class ConfigListenerTest { | ... | @@ -125,7 +125,7 @@ public class ConfigListenerTest { |
| 125 | @Test | 125 | @Test |
| 126 | public void processConfigEmptyValue() throws IOException, ParserException { | 126 | public void processConfigEmptyValue() throws IOException, ParserException { |
| 127 | thrown.expect(ParserException.class); | 127 | thrown.expect(ParserException.class); |
| 128 | - thrown.expectMessage("missing {'false', 'true'} at ';'"); | 128 | + thrown.expectMessage("no viable alternative at input ';'"); |
| 129 | YangNode node = manager.getDataModel("src/test/resources/ConfigEmptyValue.yang"); | 129 | YangNode node = manager.getDataModel("src/test/resources/ConfigEmptyValue.yang"); |
| 130 | } | 130 | } |
| 131 | 131 | ... | ... |
| ... | @@ -126,7 +126,7 @@ public class MandatoryListenerTest { | ... | @@ -126,7 +126,7 @@ public class MandatoryListenerTest { |
| 126 | @Test | 126 | @Test |
| 127 | public void processMandatoryEmptyStatement() throws IOException, ParserException { | 127 | public void processMandatoryEmptyStatement() throws IOException, ParserException { |
| 128 | thrown.expect(ParserException.class); | 128 | thrown.expect(ParserException.class); |
| 129 | - thrown.expectMessage("missing {'false', 'true'} at ';'"); | 129 | + thrown.expectMessage("no viable alternative at input ';'"); |
| 130 | YangNode node = manager.getDataModel("src/test/resources/MandatoryEmptyStatement.yang"); | 130 | YangNode node = manager.getDataModel("src/test/resources/MandatoryEmptyStatement.yang"); |
| 131 | } | 131 | } |
| 132 | 132 | ... | ... |
| ... | @@ -111,7 +111,7 @@ public class MinElementsListenerTest { | ... | @@ -111,7 +111,7 @@ public class MinElementsListenerTest { |
| 111 | @Test | 111 | @Test |
| 112 | public void processMinElementsInvalidValue() throws IOException, ParserException { | 112 | public void processMinElementsInvalidValue() throws IOException, ParserException { |
| 113 | thrown.expect(ParserException.class); | 113 | thrown.expect(ParserException.class); |
| 114 | - thrown.expectMessage("mismatched input 'asd' expecting INTEGER"); | 114 | + thrown.expectMessage("YANG file error : min-elements value asd is not valid."); |
| 115 | YangNode node = manager.getDataModel("src/test/resources/MinElementsInvalidValue.yang"); | 115 | YangNode node = manager.getDataModel("src/test/resources/MinElementsInvalidValue.yang"); |
| 116 | } | 116 | } |
| 117 | 117 | ... | ... |
| ... | @@ -141,7 +141,7 @@ public class StatusListenerTest { | ... | @@ -141,7 +141,7 @@ public class StatusListenerTest { |
| 141 | @Test | 141 | @Test |
| 142 | public void processStatusInvalidValue() throws IOException, ParserException { | 142 | public void processStatusInvalidValue() throws IOException, ParserException { |
| 143 | thrown.expect(ParserException.class); | 143 | thrown.expect(ParserException.class); |
| 144 | - thrown.expectMessage("mismatched input 'invalid' expecting {'current', 'deprecated', 'obsolete'}"); | 144 | + thrown.expectMessage("Invalid content in status \"invalid\" before processing."); |
| 145 | YangNode node = manager.getDataModel("src/test/resources/StatusInvalidValue.yang"); | 145 | YangNode node = manager.getDataModel("src/test/resources/StatusInvalidValue.yang"); |
| 146 | } | 146 | } |
| 147 | 147 | ... | ... |
-
Please register or login to post a comment