// ************************************************************************** // // // // eses eses // // eses eses // // eses eseses esesese eses Embedded Systems Group // // ese ese ese ese ese // // ese eseseses eseseses ese Department of Computer Science // // eses eses ese eses // // eses eseses eseseses eses University of Kaiserslautern // // eses eses // // // // ************************************************************************** // // The example below shows that macros are allowed to make use of static // // recursion, i.e., recursion that must terminate at compile-time. // // ************************************************************************** // macro fact(n) = (n==0?1:n*fact(n-1)); macro gcd(m,n) = (n==0?m:gcd(n,m%n)); module StaticRecursion(nat ?n,!m) { m = fact(100); pause; m = gcd(1254532,7524320); } drivenby { pause; }