Module ij
Package ij.macro

# Class Interpreter

java.lang.Object
ij.macro.Interpreter

All Implemented Interfaces:
  `MacroConstants`

public class Interpreter extends Object implements MacroConstants
This is the recursive descent parser/interpreter for the ImageJ macro language.

## Field Summary

Fields
Modifier and Type
Field
Description
`static boolean`
`batchMode`

### Fields inherited from interface ij.macro.MacroConstants

`ABS, ACOS, ARRAY, ARRAY_FUNC, ARRAY_FUNCTION, arrayFunctionIDs, arrayFunctions, ASIN, ATAN, ATAN2, AUTO_UPDATE, BEEP, BIT_DEPTH, BREAK, CALCULATOR, CALIBRATE, CALL, CHANGE_VALUES, CHAR_CODE_AT, CLOSE, COLOR, CONTINUE, COS, D2S, DEBUG, DIALOG, DIV_EQUAL, DO, DO_COMMAND, DO_WAND, DRAW_LINE, DRAW_OVAL, DRAW_RECT, DRAW_STRING, DUMP, ELSE, ENDS_WITH, EOF, EQ, EVAL, EXEC, EXIT, EXP, EXT, FALSE, FILE, FILL, FILL_OVAL, FILL_RECT, FIT, FLOOD_FILL, FLOOR, FOR, FROM_CHAR_CODE, FUNCTION, functionIDs, functions, GET_ARGUMENT, GET_BOOLEAN, GET_BOUNDING_RECT, GET_BOUNDS, GET_COORDINATES, GET_COUNT, GET_CURSOR_LOC, GET_DATE_AND_TIME, GET_DIMENSIONS, GET_DIR, GET_DIRECTORY, GET_DISPLAYED_AREA, GET_FILE_LIST, GET_FONT_LIST, GET_HEIGHT, GET_HISTOGRAM, GET_ID, GET_IMAGE_INFO, GET_INFO, GET_LINE, GET_LIST, GET_LOCATION_AND_SIZE, GET_LUT, GET_METADATA, GET_MIN_AND_MAX, GET_NUMBER, GET_PIXEL, GET_PIXEL_SIZE, GET_PROFILE, GET_RAW_STATISTICS, GET_RESULT, GET_RESULT_LABEL, GET_RESULT_STRING, GET_SLICE_NUMBER, GET_STATISTICS, GET_STRING, GET_STRING_WIDTH, GET_THRESHOLD, GET_TIME, GET_TITLE, GET_VALUE, GET_VERSION, GET_VOXEL_SIZE, GET_WIDTH, GET_ZOOM, GT, GTE, IF, IJ_CALL, IMAGE, INDEX_OF, INVERT, IS, IS_ACTIVE, IS_KEY_DOWN, IS_NAN, IS_OPEN, keywordIDs, keywords, LAST_INDEX_OF, LENGTH_OF, LINE_TO, LIST, LOG, LOGICAL_AND, LOGICAL_OR, LT, LTE, MACRO, MAKE_ARROW, MAKE_ELLIPSE, MAKE_LINE, MAKE_OVAL, MAKE_POINT, MAKE_POLYGON, MAKE_RECTANGLE, MAKE_ROTATED_RECT, MAKE_SELECTION, MAKE_TEXT, MATCHES, MATH, MAX_OF, MIN_OF, MINUS_EQUAL, MINUS_MINUS, MOVE_TO, MUL_EQUAL, NaN, NEQ, NEW_ARRAY, NEW_IMAGE, NEW_MENU, NIMAGES, NOP, NRESULTS, NSLICES, NUMBER, NUMERIC_FUNCTION, numericFunctionIDs, numericFunctions, OPEN, OVERLAY, PARSE_FLOAT, PARSE_INT, PI, PLOT, PLUS_EQUAL, PLUS_PLUS, POW, PREDEFINED_FUNCTION, PRINT, PROPERTY, PUT_PIXEL, RANDOM, RENAME, REPLACE, REQUIRES, RESET, RESET_MIN_MAX, RESET_THRESHOLD, RESTORE_PREVIOUS_TOOL, RESTORE_SETTINGS, RETURN, ROI, ROI_MANAGER, ROI_MANAGER2, ROUND, RUN, RUN_MACRO, SAVE, SAVE_AS, SAVE_SETTINGS, SCREEN_HEIGHT, SCREEN_WIDTH, SELECT, SELECT_IMAGE, SELECTION_CONTAINS, SELECTION_NAME, SELECTION_TYPE, SET_AUTO_THRESHOLD, SET_BACKGROUND, SET_BATCH_MODE, SET_COLOR, SET_FONT, SET_FOREGROUND, SET_JUSTIFICATION, SET_KEY_DOWN, SET_LINE_WIDTH, SET_LOCATION, SET_LUT, SET_METADATA, SET_MIN_MAX, SET_OPTION, SET_PASTE_MODE, SET_PIXEL, SET_RESULT, SET_RGB_WEIGHTS, SET_SELECTION_LOC, SET_SELECTION_NAME, SET_SLICE, SET_THRESHOLD, SET_TOOL, SET_VOXEL_SIZE, SET_Z_COORDINATE, SETUP_UNDO, SHIFT_LEFT, SHIFT_RIGHT, SHOW_MESSAGE, SHOW_MESSAGE_WITH_CANCEL, SHOW_PROGRESS, SHOW_STATUS, SHOW_TEXT, SIN, SNAPSHOT, SPLIT, SQRT, STACK, STARTS_WITH, STRING, STRING_CONSTANT, STRING_FUNCTION, stringFunctionIDs, stringFunctions, SUBSTRING, TABLE, TAN, TO_BINARY, TO_HEX, TO_LOWER_CASE, TO_SCALED, TO_STRING, TO_UNSCALED, TO_UPPER_CASE, TOK_MASK, TOK_SHIFT, TOOL_ID, TRIM, TRUE, UPDATE_DISPLAY, UPDATE_RESULTS, USER_FUNCTION, VAR, VARIABLE_FUNCTION, variableFunctionIDs, variableFunctions, WAIT, WAIT_FOR_USER, WHILE, WORD, WRITE`

## Constructor Summary

Constructors
Constructor
Description
`Interpreter()`

## Method Summary

Modifier and Type
Method
Description
`static void`
`abort()`
Aborts currently running macro.
`static void`
`abort(Interpreter interp)`
Absolete, replaced by abortMacro().
`void`
`abort(String message)`
`void`
`abortMacro()`
Aborts this macro.
`static void`
`activateImage(ImagePlus imp)`
`static void`
`addBatchModeImage(ImagePlus imp)`
`boolean`
`done()`
`String`
`eval(String code)`
Evaluates 'code' and returns the output, or any error, as a String.
`static String`
`getAdditionalFunctions()`
`static ImagePlus`
`getBatchModeImage(int id)`
`static int`
`getBatchModeImageCount()`
`static int[]`
`getBatchModeImageIDs()`
`static RoiManager`
`getBatchModeRoiManager()`
Returns the batch mode RoiManager instance.
`Debugger`
`getDebugger()`
`String`
`getErrorMessage()`
`static Interpreter`
`getInstance()`
`static ImagePlus`
`getLastBatchModeImage()`
`int`
`getLineNumber()`
`String`
`getStringVariable(String name)`
`double`
`getVariable(String name)`
`double`
`getVariable2(String name)`
`String`
`getVariableAsString(String name)`
`String[]`
`getVariableNames()`
Returns the names of all variables, without any annotation
`String[]`
`getVariables()`
Returns the names of all variables and functions with human-readable annotations
`static boolean`
`isBatchMode()`
`static boolean`
`isBatchModeRoiManager()`
Returns true if there is an internal batch mode RoiManager.
`static boolean`
`nonBatchMacroRunning()`
`static void`
`removeBatchModeImage(ImagePlus imp)`
`void`
`run(int location)`
Runs an existing macro starting at the specified program counter location.
`void`
`run(Program pgm)`
Interprets the specified tokenized macro file starting at location 0.
`void`
`run(String macro)`
Interprets the specified string.
`String`
`run(String macro, String arg)`
Runs the specified macro, passing it a string argument and returning a string value.
`ImagePlus`
`runBatchMacro(String macro, ImagePlus imp)`
Runs Process/Batch/ macros.
`void`
`runMacro(Program pgm, int macroLoc, String macroName)`
Interprets the specified tokenized macro starting at the specified location.
`void`
`saveGlobals(Program pgm)`
Saves global variables.
`static void`
`setAdditionalFunctions(String functions)`
Obsolete; replaced by the #include statement.
`void`
`setApplyMacroTable(ResultsTable rt)`
`void`
`setDebugger(Debugger debugger)`
`void`
`setDebugMode(int mode)`
`void`
`setIgnoreErrors(boolean ignoreErrors)`
`void`
`setVariable(String name, double value)`
`void`
`setVariable(String name, String str)`
`void`
`showArrayInspector(int row)`
Shows array elements after clicking an array variable in Debug window N.
`void`
`updateArrayInspector()`
Updates Array inspector if variable exists, otherwise closes ArrayInspector
`TextWindow`
`updateDebugWindow(String[] variables, TextWindow debugWindow)`
`boolean`
`wasError()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### batchMode

public static boolean batchMode

## Constructor Details

### Interpreter

public Interpreter()

## Method Details

### run

public void run(String macro)
Interprets the specified string.

### run

public String run(String macro, String arg)
Runs the specified macro, passing it a string argument and returning a string value.

See Also:
  - `IJ.runMacro(String,String)`
  - `IJ.runMacroFile(String,String)`

### eval

public String eval(String code)
Evaluates 'code' and returns the output, or any error, as a String.

See Also:
  - `Macro.eval(java.lang.String)`

### run

public void run(Program pgm)
Interprets the specified tokenized macro file starting at location 0.

### run

public void run(int location)
Runs an existing macro starting at the specified program counter location.

### runMacro

public void runMacro(Program pgm, int macroLoc, String macroName)
Interprets the specified tokenized macro starting at the specified location.

### runBatchMacro

public ImagePlus runBatchMacro(String macro, ImagePlus imp)
Runs Process/Batch/ macros.

### saveGlobals

public void saveGlobals(Program pgm)
Saves global variables.

### updateDebugWindow

public TextWindow updateDebugWindow(String[] variables, TextWindow debugWindow)

### abort

public static void abort()
Aborts currently running macro.

### abort

public static void abort(Interpreter interp)
Absolete, replaced by abortMacro().

### abortMacro

public void abortMacro()
Aborts this macro.

### abort

public void abort(String message)

### getInstance

public static Interpreter getInstance()

### isBatchMode

public static boolean isBatchMode()

### addBatchModeImage

public static void addBatchModeImage(ImagePlus imp)

### removeBatchModeImage

public static void removeBatchModeImage(ImagePlus imp)

### activateImage

public static void activateImage(ImagePlus imp)

### getBatchModeImageIDs

public static int[] getBatchModeImageIDs()

### getBatchModeImageCount

public static int getBatchModeImageCount()

### getBatchModeImage

public static ImagePlus getBatchModeImage(int id)

### getLastBatchModeImage

public static ImagePlus getLastBatchModeImage()

### setAdditionalFunctions

public static void setAdditionalFunctions(String functions)
Obsolete; replaced by the #include statement.

### getAdditionalFunctions

public static String getAdditionalFunctions()

### getBatchModeRoiManager

public static RoiManager getBatchModeRoiManager()
Returns the batch mode RoiManager instance.

### isBatchModeRoiManager

public static boolean isBatchModeRoiManager()
Returns true if there is an internal batch mode RoiManager.

### setDebugger

public void setDebugger(Debugger debugger)

### getDebugger

public Debugger getDebugger()

### setDebugMode

public void setDebugMode(int mode)

### getLineNumber

public int getLineNumber()

### getVariables

public String[] getVariables()
Returns the names of all variables and functions with human-readable annotations

### getVariableNames

public String[] getVariableNames()
Returns the names of all variables, without any annotation

### done

public boolean done()

### wasError

public boolean wasError()

### setVariable

public void setVariable(String name, double value)

### setVariable

public void setVariable(String name, String str)

### getVariable

public double getVariable(String name)

### getVariable2

public double getVariable2(String name)

### getStringVariable

public String getStringVariable(String name)

### getVariableAsString

public String getVariableAsString(String name)

### showArrayInspector

public void showArrayInspector(int row)
Shows array elements after clicking an array variable in Debug window N. Vischer

Parameters:
  `row` - Debug window row of variable to be shown

### updateArrayInspector

public void updateArrayInspector()
Updates Array inspector if variable exists, otherwise closes ArrayInspector

### nonBatchMacroRunning

public static boolean nonBatchMacroRunning()

### setApplyMacroTable

public void setApplyMacroTable(ResultsTable rt)

### setIgnoreErrors

public void setIgnoreErrors(boolean ignoreErrors)

### getErrorMessage

public String getErrorMessage()