| 1734 | | {-| |
| 1735 | | Representation for rules (i.e. regexes). |
| 1736 | | |
| 1737 | | Currently there are two types of rules: Perl 5 rules, implemented with PCRE, |
| 1738 | | and Perl 6 rules, implemented with PGE. |
| 1739 | | -} |
| 1740 | | data VRule |
| 1741 | | -- | Perl5-compatible regular expression |
| 1742 | | = MkRulePCRE |
| 1743 | | { rxRegex :: !Regex -- ^ The \'regular\' expression (as a PCRE |
| 1744 | | -- 'Regex' object) |
| 1745 | | , rxGlobal :: !Bool -- ^ Flag indicating \'global\' (match-all) |
| 1746 | | , rxNumSubs :: !Int -- ^ The number of subpatterns present. |
| 1747 | | , rxStringify :: !Bool |
| 1748 | | , rxRuleStr :: !String -- ^ The rule string, for user reference. |
| 1749 | | , rxAdverbs :: !Val |
| 1750 | | } |
| 1751 | | -- | Parrot Grammar Engine rule |
| 1752 | | | MkRulePGE |
| 1753 | | { rxRule :: !String -- ^ The rule string |
| 1754 | | , rxGlobal :: !Bool -- ^ Flag indicating \'global\' (match-all) |
| 1755 | | , rxStringify :: !Bool |
| 1756 | | , rxAdverbs :: !Val |
| 1757 | | } |
| 1758 | | deriving (Show, Eq, Ord, Typeable) |
| | 1774 | -- Move them to Pugs.AST.Instances later? |
| | 1775 | instance YAML (a -> Eval b) |
| | 1776 | instance YAML (Eval a) |
| | 1777 | instance YAML (Map String String) |
| | 1778 | instance YAML (Map VStr (IVar VScalar)) |
| | 1779 | instance YAML (Map Var PadEntry) |
| | 1780 | instance YAML (Set Val) |
| | 1781 | instance YAML (VThread Val) |
| | 1782 | instance YAML ClassTree |
| | 1783 | instance YAML Dynamic |
| | 1784 | instance YAML ExitCode |
| | 1785 | instance YAML Pragma |
| | 1786 | instance YAML ProcessHandle |
| | 1787 | instance YAML Regex |
| | 1788 | instance YAML Unique |
| | 1789 | instance YAML VComplex |
| | 1790 | instance YAML VHandle |
| | 1791 | instance YAML VHash |
| | 1792 | instance YAML VOpaque |
| | 1793 | instance YAML VRef |
| | 1794 | instance YAML VSocket |
| | 1795 | |
| | 1796 | instance Perl5 Exp where |
| | 1797 | showPerl5 _ = "(undef)" |
| | 1798 | instance JSON Exp where |
| | 1799 | showJSON _ = "null" |
| | 1800 | |
| | 1801 | -- Non-canonical serialization... needs work |
| | 1802 | instance (Show (TVar a)) => Perl5 (TVar a) where |
| | 1803 | showPerl5 _ = "(warn '<ref>')" |
| | 1804 | instance (Show (TVar a)) => JSON (TVar a) where |
| | 1805 | showJSON _ = "null" |
| | 1806 | |
| | 1807 | ------------------------------------------------------------------------ |
| | 1808 | {-* Generated by DrIFT : Look, but Don't Touch. *-} |
| | 1809 | instance YAML VThunk where |
| | 1810 | asYAML (MkThunk aa ab) = asYAMLmap "MkThunk" |
| | 1811 | [("thunkExp", asYAML aa) , ("thunkType", asYAML ab)] |
| | 1812 | |
| | 1813 | instance YAML VProcess where |
| | 1814 | asYAML (MkProcess aa) = asYAMLseq "MkProcess" [asYAML aa] |
| | 1815 | |
| | 1816 | instance Perl5 Val where |
| | 1817 | showPerl5 (VUndef) = showP5Class "VUndef" |
| | 1818 | showPerl5 (VBool aa) = showP5ArrayObj "VBool" [showPerl5 aa] |
| | 1819 | showPerl5 (VInt aa) = showP5ArrayObj "VInt" [showPerl5 aa] |
| | 1820 | showPerl5 (VRat aa) = showP5ArrayObj "VRat" [showPerl5 aa] |
| | 1821 | showPerl5 (VNum aa) = showP5ArrayObj "VNum" [showPerl5 aa] |
| | 1822 | showPerl5 (VStr aa) = showP5ArrayObj "VStr" [showPerl5 aa] |
| | 1823 | showPerl5 (VList aa) = showP5ArrayObj "VList" [showPerl5 aa] |
| | 1824 | showPerl5 (VType aa) = showP5ArrayObj "VType" [showPerl5 aa] |
| | 1825 | |
| | 1826 | instance JSON Val where |
| | 1827 | showJSON (VUndef) = showJSScalar "VUndef" |
| | 1828 | showJSON (VBool aa) = showJSArrayObj "VBool" [showJSON aa] |
| | 1829 | showJSON (VInt aa) = showJSArrayObj "VInt" [showJSON aa] |
| | 1830 | showJSON (VRat aa) = showJSArrayObj "VRat" [showJSON aa] |
| | 1831 | showJSON (VNum aa) = showJSArrayObj "VNum" [showJSON aa] |
| | 1832 | showJSON (VStr aa) = showJSArrayObj "VStr" [showJSON aa] |
| | 1833 | showJSON (VList aa) = showJSArrayObj "VList" [showJSON aa] |
| | 1834 | showJSON (VType aa) = showJSArrayObj "VType" [showJSON aa] |
| | 1835 | |
| | 1836 | instance YAML Scope where |
| | 1837 | asYAML (SState) = asYAMLcls "SState" |
| | 1838 | asYAML (SMy) = asYAMLcls "SMy" |
| | 1839 | asYAML (SOur) = asYAMLcls "SOur" |
| | 1840 | asYAML (SLet) = asYAMLcls "SLet" |
| | 1841 | asYAML (STemp) = asYAMLcls "STemp" |
| | 1842 | asYAML (SGlobal) = asYAMLcls "SGlobal" |
| | 1843 | |
| | 1844 | instance JSON Scope where |
| | 1845 | showJSON (SState) = showJSScalar "SState" |
| | 1846 | showJSON (SMy) = showJSScalar "SMy" |
| | 1847 | showJSON (SOur) = showJSScalar "SOur" |
| | 1848 | showJSON (SLet) = showJSScalar "SLet" |
| | 1849 | showJSON (STemp) = showJSScalar "STemp" |
| | 1850 | showJSON (SGlobal) = showJSScalar "SGlobal" |
| | 1851 | |
| | 1852 | instance Perl5 Scope where |
| | 1853 | showPerl5 (SState) = showP5Class "SState" |
| | 1854 | showPerl5 (SMy) = showP5Class "SMy" |
| | 1855 | showPerl5 (SOur) = showP5Class "SOur" |
| | 1856 | showPerl5 (SLet) = showP5Class "SLet" |
| | 1857 | showPerl5 (STemp) = showP5Class "STemp" |
| | 1858 | showPerl5 (SGlobal) = showP5Class "SGlobal" |
| | 1859 | |
| | 1860 | instance YAML Pos where |
| | 1861 | asYAML (MkPos aa ab ac ad ae) = asYAMLmap "MkPos" |
| | 1862 | [("posName", asYAML aa) , ("posBeginLine", asYAML ab) , |
| | 1863 | ("posBeginColumn", asYAML ac) , ("posEndLine", asYAML ad) , |
| | 1864 | ("posEndColumn", asYAML ae)] |
| | 1865 | |
| | 1866 | instance JSON Pos where |
| | 1867 | showJSON (MkPos aa ab ac ad ae) = showJSHashObj "MkPos" |
| | 1868 | [("posName", showJSON aa) , ("posBeginLine", showJSON ab) , |
| | 1869 | ("posBeginColumn", showJSON ac) , ("posEndLine", showJSON ad) , |
| | 1870 | ("posEndColumn", showJSON ae)] |
| | 1871 | |
| | 1872 | instance Perl5 Pos where |
| | 1873 | showPerl5 (MkPos aa ab ac ad ae) = showP5HashObj "MkPos" |
| | 1874 | [("posName", showPerl5 aa) , ("posBeginLine", showPerl5 ab) , |
| | 1875 | ("posBeginColumn", showPerl5 ac) , ("posEndLine", showPerl5 ad) , |
| | 1876 | ("posEndColumn", showPerl5 ae)] |
| | 1877 | |
| | 1878 | instance YAML Type where |
| | 1879 | asYAML (MkType aa) = asYAMLseq "MkType" [asYAML aa] |
| | 1880 | asYAML (TypeOr aa ab) = asYAMLseq "TypeOr" [asYAML aa , asYAML ab] |
| | 1881 | asYAML (TypeAnd aa ab) = asYAMLseq "TypeAnd" |
| | 1882 | [asYAML aa , asYAML ab] |
| | 1883 | |
| | 1884 | instance JSON Type where |
| | 1885 | showJSON (MkType aa) = showJSArrayObj "MkType" [showJSON aa] |
| | 1886 | showJSON (TypeOr aa ab) = showJSArrayObj "TypeOr" |
| | 1887 | [showJSON aa , showJSON ab] |
| | 1888 | showJSON (TypeAnd aa ab) = showJSArrayObj "TypeAnd" |
| | 1889 | [showJSON aa , showJSON ab] |
| | 1890 | |
| | 1891 | instance Perl5 Type where |
| | 1892 | showPerl5 (MkType aa) = showP5ArrayObj "MkType" [showPerl5 aa] |
| | 1893 | showPerl5 (TypeOr aa ab) = showP5ArrayObj "TypeOr" |
| | 1894 | [showPerl5 aa , showPerl5 ab] |
| | 1895 | showPerl5 (TypeAnd aa ab) = showP5ArrayObj "TypeAnd" |
| | 1896 | [showPerl5 aa , showPerl5 ab] |
| | 1897 | |
| | 1898 | instance YAML Cxt where |
| | 1899 | asYAML (CxtVoid) = asYAMLcls "CxtVoid" |
| | 1900 | asYAML (CxtItem aa) = asYAMLseq "CxtItem" [asYAML aa] |
| | 1901 | asYAML (CxtSlurpy aa) = asYAMLseq "CxtSlurpy" [asYAML aa] |
| | 1902 | |
| | 1903 | instance JSON Cxt where |
| | 1904 | showJSON (CxtVoid) = showJSScalar "CxtVoid" |
| | 1905 | showJSON (CxtItem aa) = showJSArrayObj "CxtItem" [showJSON aa] |
| | 1906 | showJSON (CxtSlurpy aa) = showJSArrayObj "CxtSlurpy" [showJSON aa] |
| | 1907 | |
| | 1908 | instance Perl5 Cxt where |
| | 1909 | showPerl5 (CxtVoid) = showP5Class "CxtVoid" |
| | 1910 | showPerl5 (CxtItem aa) = showP5ArrayObj "CxtItem" [showPerl5 aa] |
| | 1911 | showPerl5 (CxtSlurpy aa) = showP5ArrayObj "CxtSlurpy" |
| | 1912 | [showPerl5 aa] |
| | 1913 | |
| | 1914 | instance YAML VRule where |
| | 1915 | asYAML (MkRulePCRE aa ab ac ad ae af) = asYAMLmap "MkRulePCRE" |
| | 1916 | [("rxRegex", asYAML aa) , ("rxGlobal", asYAML ab) , |
| | 1917 | ("rxNumSubs", asYAML ac) , ("rxStringify", asYAML ad) , |
| | 1918 | ("rxRuleStr", asYAML ae) , ("rxAdverbs", asYAML af)] |
| | 1919 | asYAML (MkRulePGE aa ab ac ad) = asYAMLmap "MkRulePGE" |
| | 1920 | [("rxRule", asYAML aa) , ("rxGlobal", asYAML ab) , |
| | 1921 | ("rxStringify", asYAML ac) , ("rxAdverbs", asYAML ad)] |
| | 1922 | |
| | 1923 | instance YAML Val where |
| | 1924 | asYAML (VUndef) = asYAMLcls "VUndef" |
| | 1925 | asYAML (VBool aa) = asYAMLseq "VBool" [asYAML aa] |
| | 1926 | asYAML (VInt aa) = asYAMLseq "VInt" [asYAML aa] |
| | 1927 | asYAML (VRat aa) = asYAMLseq "VRat" [asYAML aa] |
| | 1928 | asYAML (VNum aa) = asYAMLseq "VNum" [asYAML aa] |
| | 1929 | asYAML (VComplex aa) = asYAMLseq "VComplex" [asYAML aa] |
| | 1930 | asYAML (VStr aa) = asYAMLseq "VStr" [asYAML aa] |
| | 1931 | asYAML (VList aa) = asYAMLseq "VList" [asYAML aa] |
| | 1932 | asYAML (VType aa) = asYAMLseq "VType" [asYAML aa] |
| | 1933 | asYAML (VJunc aa) = asYAMLseq "VJunc" [asYAML aa] |
| | 1934 | asYAML (VError aa ab) = asYAMLseq "VError" [asYAML aa , asYAML ab] |
| | 1935 | asYAML (VControl aa) = asYAMLseq "VControl" [asYAML aa] |
| | 1936 | asYAML (VRef aa) = asYAMLseq "VRef" [asYAML aa] |
| | 1937 | asYAML (VCode aa) = asYAMLseq "VCode" [asYAML aa] |
| | 1938 | asYAML (VBlock aa) = asYAMLseq "VBlock" [asYAML aa] |
| | 1939 | asYAML (VHandle aa) = asYAMLseq "VHandle" [asYAML aa] |
| | 1940 | asYAML (VSocket aa) = asYAMLseq "VSocket" [asYAML aa] |
| | 1941 | asYAML (VThread aa) = asYAMLseq "VThread" [asYAML aa] |
| | 1942 | asYAML (VProcess aa) = asYAMLseq "VProcess" [asYAML aa] |
| | 1943 | asYAML (VRule aa) = asYAMLseq "VRule" [asYAML aa] |
| | 1944 | asYAML (VSubst aa) = asYAMLseq "VSubst" [asYAML aa] |
| | 1945 | asYAML (VMatch aa) = asYAMLseq "VMatch" [asYAML aa] |
| | 1946 | asYAML (VObject aa) = asYAMLseq "VObject" [asYAML aa] |
| | 1947 | asYAML (VOpaque aa) = asYAMLseq "VOpaque" [asYAML aa] |
| | 1948 | asYAML (PerlSV aa) = asYAMLseq "PerlSV" [asYAML aa] |
| | 1949 | |
| | 1950 | instance YAML VControl where |
| | 1951 | asYAML (ControlLeave aa ab) = asYAMLseq "ControlLeave" |
| | 1952 | [asYAML aa , asYAML ab] |
| | 1953 | asYAML (ControlExit aa) = asYAMLseq "ControlExit" [asYAML aa] |
| | 1954 | asYAML (ControlEnv aa) = asYAMLseq "ControlEnv" [asYAML aa] |
| | 1955 | |
| | 1956 | instance YAML VJunc where |
| | 1957 | asYAML (MkJunc aa ab ac) = asYAMLmap "MkJunc" |
| | 1958 | [("juncType", asYAML aa) , ("juncDup", asYAML ab) , |
| | 1959 | ("juncSet", asYAML ac)] |
| | 1960 | |
| | 1961 | instance YAML JuncType where |
| | 1962 | asYAML (JAny) = asYAMLcls "JAny" |
| | 1963 | asYAML (JAll) = asYAMLcls "JAll" |
| | 1964 | asYAML (JNone) = asYAMLcls "JNone" |
| | 1965 | asYAML (JOne) = asYAMLcls "JOne" |
| | 1966 | |
| | 1967 | instance YAML SubType where |
| | 1968 | asYAML (SubMethod) = asYAMLcls "SubMethod" |
| | 1969 | asYAML (SubCoroutine) = asYAMLcls "SubCoroutine" |
| | 1970 | asYAML (SubMacro) = asYAMLcls "SubMacro" |
| | 1971 | asYAML (SubRoutine) = asYAMLcls "SubRoutine" |
| | 1972 | asYAML (SubBlock) = asYAMLcls "SubBlock" |
| | 1973 | asYAML (SubPointy) = asYAMLcls "SubPointy" |
| | 1974 | asYAML (SubPrim) = asYAMLcls "SubPrim" |
| | 1975 | |
| | 1976 | instance JSON SubType where |
| | 1977 | showJSON (SubMethod) = showJSScalar "SubMethod" |
| | 1978 | showJSON (SubCoroutine) = showJSScalar "SubCoroutine" |
| | 1979 | showJSON (SubMacro) = showJSScalar "SubMacro" |
| | 1980 | showJSON (SubRoutine) = showJSScalar "SubRoutine" |
| | 1981 | showJSON (SubBlock) = showJSScalar "SubBlock" |
| | 1982 | showJSON (SubPointy) = showJSScalar "SubPointy" |
| | 1983 | showJSON (SubPrim) = showJSScalar "SubPrim" |
| | 1984 | |
| | 1985 | instance Perl5 SubType where |
| | 1986 | showPerl5 (SubMethod) = showP5Class "SubMethod" |
| | 1987 | showPerl5 (SubCoroutine) = showP5Class "SubCoroutine" |
| | 1988 | showPerl5 (SubMacro) = showP5Class "SubMacro" |
| | 1989 | showPerl5 (SubRoutine) = showP5Class "SubRoutine" |
| | 1990 | showPerl5 (SubBlock) = showP5Class "SubBlock" |
| | 1991 | showPerl5 (SubPointy) = showP5Class "SubPointy" |
| | 1992 | showPerl5 (SubPrim) = showP5Class "SubPrim" |
| | 1993 | |
| | 1994 | instance YAML Param where |
| | 1995 | asYAML (MkParam aa ab ac ad ae af ag ah ai) = asYAMLmap "MkParam" |
| | 1996 | [("isInvocant", asYAML aa) , ("isOptional", asYAML ab) , |
| | 1997 | ("isNamed", asYAML ac) , ("isLValue", asYAML ad) , |
| | 1998 | ("isWritable", asYAML ae) , ("isLazy", asYAML af) , |
| | 1999 | ("paramName", asYAML ag) , ("paramContext", asYAML ah) , |
| | 2000 | ("paramDefault", asYAML ai)] |
| | 2001 | |
| | 2002 | instance Perl5 Param where |
| | 2003 | showPerl5 (MkParam aa ab ac ad ae af ag ah ai) = |
| | 2004 | showP5HashObj "MkParam" |
| | 2005 | [("isInvocant", showPerl5 aa) , ("isOptional", showPerl5 ab) , |
| | 2006 | ("isNamed", showPerl5 ac) , ("isLValue", showPerl5 ad) , |
| | 2007 | ("isWritable", showPerl5 ae) , ("isLazy", showPerl5 af) , |
| | 2008 | ("paramName", showPerl5 ag) , ("paramContext", showPerl5 ah) , |
| | 2009 | ("paramDefault", showPerl5 ai)] |
| | 2010 | |
| | 2011 | instance JSON Param where |
| | 2012 | showJSON (MkParam aa ab ac ad ae af ag ah ai) = |
| | 2013 | showJSHashObj "MkParam" |
| | 2014 | [("isInvocant", showJSON aa) , ("isOptional", showJSON ab) , |
| | 2015 | ("isNamed", showJSON ac) , ("isLValue", showJSON ad) , |
| | 2016 | ("isWritable", showJSON ae) , ("isLazy", showJSON af) , |
| | 2017 | ("paramName", showJSON ag) , ("paramContext", showJSON ah) , |
| | 2018 | ("paramDefault", showJSON ai)] |
| | 2019 | |
| | 2020 | instance YAML VCode where |
| | 2021 | asYAML (MkCode aa ab ac ad ae af ag ah ai aj ak al) = |
| | 2022 | asYAMLmap "MkCode" |
| | 2023 | [("isMulti", asYAML aa) , ("subName", asYAML ab) , |
| | 2024 | ("subType", asYAML ac) , ("subEnv", asYAML ad) , |
| | 2025 | ("subAssoc", asYAML ae) , ("subParams", asYAML af) , |
| | 2026 | ("subBindings", asYAML ag) , ("subSlurpLimit", asYAML ah) , |
| | 2027 | ("subReturns", asYAML ai) , ("subLValue", asYAML aj) , |
| | 2028 | ("subBody", asYAML ak) , ("subCont", asYAML al)] |
| | 2029 | |
| | 2030 | instance YAML Ann where |
| | 2031 | asYAML (Cxt aa) = asYAMLseq "Cxt" [asYAML aa] |
| | 2032 | asYAML (Pos aa) = asYAMLseq "Pos" [asYAML aa] |
| | 2033 | asYAML (Prag aa) = asYAMLseq "Prag" [asYAML aa] |
| | 2034 | |
| | 2035 | instance YAML Exp where |
| | 2036 | asYAML (Noop) = asYAMLcls "Noop" |
| | 2037 | asYAML (App aa ab ac) = asYAMLseq "App" |
| | 2038 | [asYAML aa , asYAML ab , asYAML ac] |
| | 2039 | asYAML (Syn aa ab) = asYAMLseq "Syn" [asYAML aa , asYAML ab] |
| | 2040 | asYAML (Ann aa ab) = asYAMLseq "Ann" [asYAML aa , asYAML ab] |
| | 2041 | asYAML (Pad aa ab ac) = asYAMLseq "Pad" |
| | 2042 | [asYAML aa , asYAML ab , asYAML ac] |
| | 2043 | asYAML (Sym aa ab ac) = asYAMLseq "Sym" |
| | 2044 | [asYAML aa , asYAML ab , asYAML ac] |
| | 2045 | asYAML (Stmts aa ab) = asYAMLseq "Stmts" [asYAML aa , asYAML ab] |
| | 2046 | asYAML (Prim aa) = asYAMLseq "Prim" [asYAML aa] |
| | 2047 | asYAML (Val aa) = asYAMLseq "Val" [asYAML aa] |
| | 2048 | asYAML (Var aa) = asYAMLseq "Var" [asYAML aa] |
| | 2049 | asYAML (NonTerm aa) = asYAMLseq "NonTerm" [asYAML aa] |
| | 2050 | |
| | 2051 | instance YAML Env where |
| | 2052 | asYAML (MkEnv aa ab ac ad ae af ag ah ai aj ak al am an ao) = |
| | 2053 | asYAMLmap "MkEnv" |
| | 2054 | [("envContext", asYAML aa) , ("envLValue", asYAML ab) , |
| | 2055 | ("envLexical", asYAML ac) , ("envGlobal", asYAML ad) , |
| | 2056 | ("envPackage", asYAML ae) , ("envClasses", asYAML af) , |
| | 2057 | ("envEval", asYAML ag) , ("envCaller", asYAML ah) , |
| | 2058 | ("envOuter", asYAML ai) , ("envBody", asYAML aj) , |
| | 2059 | ("envDepth", asYAML ak) , ("envDebug", asYAML al) , |
| | 2060 | ("envPos", asYAML am) , ("envPragmas", asYAML an) , |
| | 2061 | ("envInitDat", asYAML ao)] |
| | 2062 | |
| | 2063 | instance YAML InitDat where |
| | 2064 | asYAML (MkInitDat aa) = asYAMLmap "MkInitDat" |
| | 2065 | [("initPragmas", asYAML aa)] |
| | 2066 | |
| | 2067 | instance YAML Pad where |
| | 2068 | asYAML (MkPad aa) = asYAMLseq "MkPad" [asYAML aa] |
| | 2069 | |
| | 2070 | instance YAML PadEntry where |
| | 2071 | asYAML (MkEntry aa) = asYAMLseq "MkEntry" [asYAML aa] |
| | 2072 | asYAML (MkEntryMulti aa) = asYAMLseq "MkEntryMulti" [asYAML aa] |
| | 2073 | |
| | 2074 | instance YAML IHashEnv where |
| | 2075 | asYAML (MkHashEnv) = asYAMLcls "MkHashEnv" |
| | 2076 | |
| | 2077 | instance YAML IScalarCwd where |
| | 2078 | asYAML (MkScalarCwd) = asYAMLcls "MkScalarCwd" |
| | 2079 | |
| | 2080 | instance YAML VObject where |
| | 2081 | asYAML (MkObject aa ab ac ad) = asYAMLmap "MkObject" |
| | 2082 | [("objType", asYAML aa) , ("objAttrs", asYAML ab) , |
| | 2083 | ("objOpaque", asYAML ac) , ("objId", asYAML ad)] |
| | 2084 | |
| | 2085 | instance YAML VMatch where |
| | 2086 | asYAML (MkMatch aa ab ac ad ae af) = asYAMLmap "MkMatch" |
| | 2087 | [("matchOk", asYAML aa) , ("matchFrom", asYAML ab) , |
| | 2088 | ("matchTo", asYAML ac) , ("matchStr", asYAML ad) , |
| | 2089 | ("matchSubPos", asYAML ae) , ("matchSubNamed", asYAML af)] |
| | 2090 | |
| | 2091 | -- Imported from other files :- |