diff --git a/src/language.yacc b/src/language.yacc index ad9135cd90a025468db15210a76d0ed6d4d170f6..74aab449beaa5d4e1518cc944a85f869d023fed3 100644 --- a/src/language.yacc +++ b/src/language.yacc @@ -156,7 +156,7 @@ /* This is the grammar definition of Pike. */ #include "global.h" -RCSID("$Id: language.yacc,v 1.41 1997/04/23 20:11:49 hubbe Exp $"); +RCSID("$Id: language.yacc,v 1.42 1997/05/07 06:25:35 per Exp $"); #ifdef HAVE_MEMORY_H #include <memory.h> #endif @@ -174,6 +174,7 @@ RCSID("$Id: language.yacc,v 1.41 1997/04/23 20:11:49 hubbe Exp $"); #include "pike_macros.h" #include "error.h" #include "docode.h" +#include "machine.h" #define YYMAXDEPTH 600 @@ -1274,14 +1275,23 @@ comma_expr_or_maxint: /* empty */ { $$=mkintnode(0x7fffffff); } gauge: F_GAUGE catch_arg { +#ifdef HAVE_GETHRVTIME $$=mkopernode("`-", + mkopernode("`/", + mkopernode("`-", mkefuncallnode("gethrvtime",0), + mknode(F_ARG_LIST,$2, + mkefuncallnode("gethrvtime",0))), + mkintnode(1000)), 0); +#else + $$=mkopernode("`-", mkopernode("`-", mknode(F_INDEX,mkefuncallnode("rusage",0), mkintnode(GAUGE_RUSAGE_INDEX)), mknode(F_ARG_LIST,$2, mknode(F_INDEX,mkefuncallnode("rusage",0), mkintnode(GAUGE_RUSAGE_INDEX)))),0); - } ; +#endif + }; typeof: F_TYPEOF '(' expr0 ')' {