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 | - } | ||
116 | } | 110 | } |
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 | } | 111 | } |
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