#ifndef RS274NGC_HH
#define RS274NGC_HH
#include "interp_base.hh"
#include <stdio.h>
#include "canon.hh"
#include "emc.hh"
#include "debugflags.h"
#include "interp_fwd.hh"
class Interp;
typedef int (Interp::*read_function_pointer) (char *, int *, block_pointer, double *);
#define DBG(level,fmt,args...) \
do { \
if (level < _setup.loggingLevel) { \
fprintf(stderr,fmt, ## args); \
} \
} while (0)
#define MSG(fmt,args...) \
do { \
DBG(0, fmt, ##args); \
} while (0)
#undef DEBUG_EMC
#define _logDebug(mask,dlflags,level, fmt, args...) \
do { \
if (((mask & _setup.debugmask) && \
(level < _setup.loggingLevel)) || \
(mask & EMC_DEBUG_UNCONDITIONAL)) { \
doLog(dlflags, \
__FILE__, \
__LINE__ , \
fmt "\n", \
## args); \
} \
} while(0)
#define logDebug(fmt, args...) _logDebug(EMC_DEBUG_INTERP,0,1,fmt, ## args)
#define logConfig(fmt, args...) _logDebug(EMC_DEBUG_CONFIG,0,1,fmt, ## args)
#define logOword(fmt, args...) _logDebug(EMC_DEBUG_OWORD,0,1,fmt, ## args)
#define logRemap(fmt, args...) _logDebug(EMC_DEBUG_REMAP,0,1,fmt, ## args)
#define logPy(fmt, args...) _logDebug(EMC_DEBUG_PYTHON,0,1,fmt, ## args)
#define logNP(fmt, args...) _logDebug(EMC_DEBUG_NAMEDPARAM,0,1,fmt, ## args)
#define Log(fmt, args...) _logDebug(EMC_DEBUG_UNCONDITIONAL,LOG_PID|LOG_FILENAME,-1,fmt, ## args)
#define Error(fmt, args...) _logDebug(EMC_DEBUG_UNCONDITIONAL,0,-1,fmt, ## args)
#endif