Help topic summaries¶
The following subsections contain the output of EmPy’s builtin help
system (emhelp
).
Command line usage summary¶
USAGE:
./em.py [<options>] [<filename, or `-` for stdin> [<argument>...]]
- Options begin with `-` or `--`
- Specify a filename (and arguments) to process that document as input
- Specify `-` (and arguments) to process stdin with standard buffering
- Specify no filename to enter interactive mode with line buffering
- Specify `--` to stop processing options
Command line options summary¶
OPTIONS:
Valid command line options (defaults in brackets):
-V --version Print version
-W --info Print version and system information
-Z --details Print extensive system and platform details
-h --help Print help; more -h options for more help
-H --topics=TOPICS Print usage for comma-separated topics
-v --verbose Show verbose debugging while processing
-p --prefix=CHAR Choose desired prefix [@]
--no-prefix Do not do any markup processing at all
-q --no-output Suppress all output
-m --pseudomodule=NAME Change internal pseudomodule name [empy]
-f --flatten Flatten pseudomodule members at start
-k --keep-going Don't exit on errors; continue
-e --ignore-errors Ignore errors completely
-r --raw-errors Show full tracebacks of Python errors
-s --brief-errors Don't show attributes when formatting errors
--verbose-errors Show attributes when formatting errors (default)
-i --interactive Enter interactive mode after processing
-d --delete-on-error Delete output file on error
(-o or -a needed) [False]
-n --no-proxy Do not override sys.stdout with proxy [True]
--config=STATEMENTS Do configuration variable assignments
-c --config-file=FILENAME Load configuration resource path(s)
--config-variable=NAME Configuration variable name while loading [_]
-C --ignore-missing-config Don't raise for missing configuration files
-o --output=FILENAME Specify file for output as write
-a --append=FILENAME Specify file for output as append
-O --output-binary=FILENAME Specify file for binary output as write
-A --append-binary=FILENAME Specify file for binary output as append
--output-mode=MODE Explicitly specify the mode for output
--input-mode=MODE Explicitly specify the mode for input
-b --buffering Specify buffering strategy for files:
none (= 0), line (= 1), full (= -1), default,
or another value for fixed [16384]
--default-buffering Specify default buffering for files (default)
-N --no-buffering Specify no buffering for reads on files
-L --line-buffering Specify line buffering for files
-B --full-buffering Specify full buffering for files
-I --import=MODULES Import Python modules before processing
-D --define=DEFN Execute Python assignment statement
-S --string=STR Execute string literal assignment
-P --preprocess=FILENAME Interpret EmPy file before main document
-Q --postprocess=FILENAME Interpret EmPy file after main document
-E --execute=STATEMENT Execute Python statement before main document
-K --postexecute=STATEMENT Execute Python statement after main document
-F --file=FILENAME Execute Python file before main document
-G --postfile=FILENAME Execute Python file after main document
-X --expand=MARKUP Expand EmPy markup before main document
-Y --postexpand=MARKUP Expand EmPy markup after main document
--preinitializer=FILENAME Execute Python file before interpreter
--postinitializer=FILENAME Execute Python file after interpreter
-w --pause-at-end Prompt at the end of processing [False]
-l --relative-path Add path of EmPy script to sys.path [False]
--replace-newlines Replace expression newlines with spaces (default)
--no-replace-newlines Don't replace expression newlines with spaces
--ignore-bangpaths Treat bangpaths as comments (default)
--no-ignore-bangpaths Don't treat bangpaths as comments
--expand-user Expand user constructions (~user) in paths (default)
--no-expand-user Don't expand user constructions in paths
--auto-validate-icons Auto-validate icons on first use (default)
--no-auto-validate-icons Don't auto-validate icons on first use
--none-symbol String to write when expanding None [None]
--no-none-symbol Write nothing when expanding None (default)
--starting-line Line number to start with [1]
--starting-column Column number to start with [1]
--emoji-modules Comma-separated list of emoji modules to try
[emoji,emojis,emoji_data_python,unicodedata]
--no-emoji-modules Only use unicodedata for emoji markup
--disable-emoji-modules Disable emoji modules; use emojis dictionary
--ignore-emoji-not-found Emoji not found is not an error
-u --binary --unicode Read input file as binary?
(enables Unicode support in Python 2.x) [False]
-x --encoding=E Set both input and output Unicode encodings
--input-encoding=E Set input Unicode encoding [utf-8]
--output-encoding=E Set output Unicode encoding [utf-8]
-y --errors=E Set both input and output Unicode error handler
--input-errors=E Set input Unicode error handler [strict]
--output-errors=E Set output Unicode error handler [strict]
-z --normalization-form=F Specify Unicode normalization form [NFKC]
--auto-play-diversions Autoplay diversions on exit (default)
--no-auto-play-diversions Don't autoplay diversions on exit
--check-variables Validate configuration variables (default)
--no-check-variables Don't validate configuration variables
--path-separator Path separator for configuration paths [:]
--enable-modules Enable EmPy module support (default)
-g --disable-modules Disable EmPy module support
--module-extension Filename extension for EmPy modules [.em]
--module-finder-index Index of module finder in meta path [0]
--enable-import-output Enable output during import (default)
-j --disable-import-output Disable output during import
--context-format Context format [%(name)s:%(line)d:%(column)d]
--success-code=N Exit code to return on script success [0]
--failure-code=N Exit code to return on script failure [1]
--unknown-code=N Exit code to return on bad configuration [2]
Simple command line options summary¶
SIMPLE:
Short (single letter) command line options:
-a --append=FILENAME Specify file for output as append
-b --buffering Specify buffering strategy for files:
none (= 0), line (= 1), full (= -1), default,
or another value for fixed [16384]
-c --config-file=FILENAME Load configuration resource path(s)
-d --delete-on-error Delete output file on error
(-o or -a needed) [False]
-e --ignore-errors Ignore errors completely
-f --flatten Flatten pseudomodule members at start
-g --disable-modules Disable EmPy module support
-h --help Print help; more -h options for more help
-i --interactive Enter interactive mode after processing
-j --disable-import-output Disable output during import
-k --keep-going Don't exit on errors; continue
-l --relative-path Add path of EmPy script to sys.path [False]
-m --pseudomodule=NAME Change internal pseudomodule name [empy]
-n --no-proxy Do not override sys.stdout with proxy [True]
-o --output=FILENAME Specify file for output as write
-p --prefix=CHAR Choose desired prefix [@]
-q --no-output Suppress all output
-r --raw-errors Show full tracebacks of Python errors
-s --brief-errors Don't show attributes when formatting errors
-u --binary --unicode Read input file as binary?
(enables Unicode support in Python 2.x) [False]
-v --verbose Show verbose debugging while processing
-w --pause-at-end Prompt at the end of processing [False]
-x --encoding=E Set both input and output Unicode encodings
-y --errors=E Set both input and output Unicode error handler
-z --normalization-form=F Specify Unicode normalization form [NFKC]
-A --append-binary=FILENAME Specify file for binary output as append
-B --full-buffering Specify full buffering for files
-C --ignore-missing-config Don't raise for missing configuration files
-D --define=DEFN Execute Python assignment statement
-E --execute=STATEMENT Execute Python statement before main document
-F --file=FILENAME Execute Python file before main document
-G --postfile=FILENAME Execute Python file after main document
-H --topics=TOPICS Print usage for comma-separated topics
-I --import=MODULES Import Python modules before processing
-K --postexecute=STATEMENT Execute Python statement after main document
-L --line-buffering Specify line buffering for files
-N --no-buffering Specify no buffering for reads on files
-O --output-binary=FILENAME Specify file for binary output as write
-P --preprocess=FILENAME Interpret EmPy file before main document
-Q --postprocess=FILENAME Interpret EmPy file after main document
-S --string=STR Execute string literal assignment
-V --version Print version
-W --info Print version and system information
-X --expand=MARKUP Expand EmPy markup before main document
-Y --postexpand=MARKUP Expand EmPy markup after main document
-Z --details Print extensive system and platform details
Markup summary¶
MARKUP:
The following markups are supported (NL means newline; WS means whitespace):
@# ... NL Line comment; consume everything including newline
@* ... * Inline comment; consume everything inside
@ WS Ignore whitespace; line continuation
@- ... NL Disable output; consume up to trailing newline
@+ ... NL Enable output; consume up to trailing newline
@@ Literal @; @ is escaped (duplicated prefix)
@' STRING ' Replace with string literal contents
@" STRING " Replace with string literal contents
@''' STRING ... ''' Replace with multiline string literal contents
@""" STRING ... """ Replace with multiline string literal contents
@` LITERAL ` Write everything inside literally (no expansion)
@( EXPRESSION ) Evaluate expression and substitute with str
@( TEST ? THEN ) If test, evaluate then, otherwise do nothing
@( TEST ? THEN ! ELSE ) If test, evaluate then, otherwise evaluate else;
can be chained with repeated test/then/[else]
@( TRY $ EXCEPT ) Evaluate try expression, or except if it raises
@ SIMPLE_EXPRESSION Evaluate simple expression and substitute
(e.g., @x, @x.y, @f(a, b), @l[i], @f{...}, etc.)
@$ EXPRESSION $ [DUMMY] $ Evaluates to @$ EXPRESSION $ EXPANSION $
@{ STATEMENTS } Statements are executed for side effects
@[ CONTROL ] Control markups: if E; elif E; for N in E;
while E; try; except E as N; finally;
continue; break; else; with E as N; match E;
case E; defined N; def F(...); end X
@\ ESCAPE_CODE A C-style escape sequence
@^ CHAR DIACRITIC(S) A two-part diacritic sequence
(e.g., e' for an e with acute accent)
@| ICON A custom icon sequence
(e.g., :) for a smiley face emoji)
@: EMOJI : Lookup emoji by name
@% KEY NL Significator form of __KEY__ = None
@% KEY WS VALUE NL Significator form of __KEY__ = VALUE
@%! KEY NL Significator form of __KEY__ = ""
@%! KEY WS STRING NL Stringized significator form: __KEY__ = "STRING"
@%% KEY WS VALUE %% NL Multiline significator form
@%%! KEY WS STRING %% NL Multiline stringized significator form
@? NAME NL Set the current context name
@! INTEGER NL Set the current context line number
@(( ... )), @[[ ... ]], Extension markup; implementation provided by user
@{{ ... }}, @< ... >
Escape sequences summary¶
ESCAPES:
Valid escape sequences are:
@\0 U+0000; NUL, null
@\a U+0007; BEL, bell
@\b U+0008; BS, backspace
@\B{BIN} freeform binary code BIN (e.g., {1000001} for A)
@\dDDD three-digit decimal code DDD (e.g., 065 for A)
@\D{DEC} freeform decimal code DEC (e.g., {65} for A)
@\e U+001B; ESC, escape
@\f U+000C; FF, form feed
@\h U+007F; DEL, delete
@\k U+0006; ACK, acknowledge
@\K U+0015; NAK, negative acknowledge
@\n U+000A; LF, linefeed; newline
@\N{NAME} Unicode character named NAME (e.g., LATIN CAPITAL LETTER A)
@\oOOO three-digit octal code OOO (e.g., 101 for A)
@\O{OCT} freeform octal code OCT (e.g., {101} for A)
@\qQQQQ four-digit quaternary code QQQQ (e.g., 1001 for A)
@\Q{QUA} freeform quaternary code QUA (e.g., {1001} for A)
@\r U+000D; CR, carriage return
@\s U+0020; SP, space
@\S U+00A0; NBSP, no-break space
@\t U+0009; HT, horizontal tab
@\uHHHH 16-bit hexadecimal Unicode HHHH (e.g., 0041 for A)
@\UHHHHHHHH 32-bit hexadecimal Unicode HHHHHHHH (e.g., 00000041 for A)
@\v U+000B; VT, vertical tab
@\V{VS} VS, variation selector (1 .. 256) (e.g., 16 for emoji display)
@\w U+FE0E; VS15, variation selector 15; text display
@\W U+FE0F; VS16, variation selector 16; emoji display
@\xHH 8-bit hexadecimal code HH (e.g., 41 for A)
@\X{HEX} freeform hexadecimal code HEX (e.g., {41} for A)
@\y U+001A; SUB, substitution
@\Y U+FFFD; RC, replacement character: �
@\z U+0004; EOT, end of transmission
@\Z U+FEFF; ZWNBSP/BOM, zero-width no-break space/byte order mark
@\, U+2009; THSP, thin space
@\^C Control character C (e.g., [ for ESC)
@\^{NAME} Escape named NAME (control character) (e.g., ESC)
@\( U+0028; Literal (: (
@\) U+0029; Literal ): )
@\[ U+005B; Literal [: [
@\] U+005D; Literal ]: ]
@\{ U+007B; Literal {: {
@\} U+007D; Literal }: }
@\< U+003C; Literal <: <
@\> U+003E; Literal >: >
@\\ U+005C; Literal \: \
@\' U+0027; Literal ': '
@\" U+0022; Literal ": "
@\? U+003F; Literal ?: ?
Environment variables summary¶
ENVIRON:
The following environment variables are recognized (with corresponding
command line arguments):
EMPY_OPTIONS Specify additional options to be included
EMPY_CONFIG Specify configuration file(s) to load: -c PATHS
EMPY_PREFIX Specify the default prefix: -p PREFIX
EMPY_PSEUDO Specify name of pseudomodule: -m NAME
EMPY_FLATTEN Flatten empy pseudomodule if defined: -f
EMPY_RAW_ERRORS Show raw errors if defined: -r
EMPY_INTERACTIVE Enter interactive mode if defined: -i
EMPY_DELETE_ON_ERROR Delete output file on error: -d
EMPY_NO_PROXY Do not install sys.stdout proxy if defined: -n
EMPY_BUFFERING Buffer size (-1, 0, 1, or n): -b VALUE
EMPY_BINARY Open input file as binary (for Python 2.x Unicode): -u
EMPY_ENCODING Unicode both input and output encodings
EMPY_INPUT_ENCODING Unicode input encoding
EMPY_OUTPUT_ENCODING Unicode output encoding
EMPY_ERRORS Unicode both input and output error handlers
EMPY_INPUT_ERRORS Unicode input error handler
EMPY_OUTPUT_ERRORS Unicode output error handler
Pseudomodule attributes and methods summary¶
PSEUDO:
The empy pseudomodule contains the following attributes and methods:
version String representing EmPy version
compat List of applied Python compatibility features
executable The EmPy executable
argv EmPy script name and command line arguments
config The configuration for this interpreter
ok Is the interpreter still active?
error The last error to occur, or None
__init__(**kwargs) The interpreter constructor
__enter__/__exit__(...) Context manager support
reset() Reset the interpreter state
ready() Declare the interpreter ready
shutdown() Shutdown the interpreter
write(data) Write data to stream
writelines(lines) Write a sequence of lines to stream
flush() Flush the stream
serialize(object) Write a string version of the object
top() -> Stream Get the top-level stream
push() Push this interpreter on the stream stack
pop() Pop this interpreter off the stream stack
clear() Clear the interpreter stacks
go(fname, mode, [pre, [post]]) Process a file by filename
interact() Enter interactive mode
file(file, [loc]) Process a file object
fileLine(file, [loc]) Process a file object in lines
fileChunk(file, buf, [loc]]) Process a file in chunks
fileFull(file, [loc]]) Process a file as a single chunk
process(command) Process a command
processAll(commands) Process a sequence of commands
identify() Identify top context as name, line
getContext() Return the current context
newContext(...) Return a new context with name and counts
pushContext(context) Push a context
popContext() Pop the current context
setContext(context) Replace the current context
setContextName(name) Set the name of the current context
setContextLine(line) Set the line number of the current context
setContextColumn(column) Set the column number of the current context
setContextData(...) Set any of the name, line, column number
restoreContext(context) Replace the top context with an existing one
clearFinalizers() Clear all finalizers
appendFinalizer(finalizer) Append function to be called at shutdown
prependFinalizer(finalizer) Prepend function to be called at shutdown
getGlobals() Retrieve this interpreter's globals
setGlobals(dict) Set this interpreter's globals
updateGlobals(dict) Merge dictionary into interpreter's globals
clearGlobals() Start globals over anew
saveGlobals([deep]) Save a copy of the globals
restoreGlobals([pop]) Restore the most recently saved globals
include(file, [loc]) Include filename or file-like object
expand(string, [loc]) Explicitly expand string and return
defined(name, [loc]) Find if the name is defined
lookup(name, [loc]) Lookup the variable name
evaluate(expression, [loc]) Evaluate the expression (and write?)
execute(statements, [loc]) Execute the statements
single(source, [loc]) Execute the expression or statement
atomic(name, value, [loc]) Perform an atomic assignment
assign(name, value, [loc]) Perform an arbitrary assignment
significate(key, [value]) Significate the given key, value pair
quote(string) Quote prefixes in provided string and return
escape(data) Escape EmPy markup in data and return
flatten([keys]) Flatten module contents to globals namespace
getPrefix() Get current prefix
setPrefix(char) Set new prefix
stopDiverting() Stop diverting; data sent directly to output
createDiversion(name) Create a diversion but do not divert to it
retrieveDiversion(name, [def]) Retrieve the actual named diversion object
startDiversion(name) Start diverting to given diversion
playDiversion(name) Recall diversion and then eliminate it
replayDiversion(name) Recall diversion but retain it
dropDiversion(name) Drop diversion
playAllDiversions() Stop diverting and play all diversions
replayAllDiversions() Stop diverting and replay all diversions
dropAllDiversions() Stop diverting and drop all diversions
getCurrentDiversionName() Get the name of the current diversion
getAllDiversionNames() Get a sorted sequence of diversion names
isExistingDiversionName(name) Is this the name of a diversion?
getFilter() Get the first filter in the current chain
getLastFilter() Get the last filter in the current chain
getFilterCount() Get the number of filters in current chain
resetFilter() Reset filter; no filtering
setFilter(filter...) Install new filter(s), replacing any chain
prependFilter(filter) Prepend filter to beginning of current chain
appendFilter(filter) Append a filter to end of current chain
setFilterChain(filters) Install a new filter chain
areHooksEnabled() Return whether or not hooks are enabled
enableHooks() Enable hooks (default)
disableHooks() Disable hook invocation
getHooks() Get all the hooks
appendHook(hook) Append the given hook
prependHook(hook) Prepend the given hook
removeHook(hook) Remove an already-registered hook
clearHooks() Clear all hooks
invokeHook(_name, ...) Manually invoke hook
hasCallback() Is there a custom callback?
getCallback() Get custom callback
registerCallback(callback) Register custom callback
deregisterCallback() Deregister custom callback
invokeCallback(contents) Invoke the custom callback directly
defaultHandler(t, e, tb) The default error handler
getHandler() Get the current error handler (or None)
setHandler(handler, [eoe]) Set the error handler
invokeHandler(t, e, tb) Manually invoke the error handler
initializeEmojiModules(names) Initialize the emoji modules
getEmojiModule(name) Get an abstracted emoji module
getEmojiModuleNames() Return the list of emoji module names
substituteEmoji(text) Do an emoji substitution
Interpreter constructor arguments summary¶
CONSTRUCTOR:
The following keyword arguments for the Interpreter constructor are supported
(defaults in brackets). All arguments have meaningful defaults:
argv The system arguments to use ['<->']
callback A custom callback to register [None]
config The configuration object [default]
core The core to use for this interpreter [Core()]
definerFunc Interpreter `@[def]` definition function [Python]
dispatcher Dispatch errors or raise to caller? [True]
evalFunc Interpreter expression evaluation function [eval]
execFunc Interpreter statement execution function [exec]
executable The path to the EmPy executable [".../em.py"]
extension The extension to automatically install [None]
filespec A 3-tuple of the input filename, mode, and buffering [None]
filters The list of filters to install [[]]
globals The globals dictionary to use [{}]
handler The error handler to use [default]
hooks The list of hooks to install [[]]
ident The identifier for the interpreter [None]
immediately Declare the interpreter ready after initialization? [True]
input The input file to use for interactivity [sys.stdin]
matcherFunc Interpreter `@[match]` matcher function [Python]
output The output file to use [sys.stdout]
root The root interpreter context filename ['<root>']
serializerFunc Interpreter serializer function [str]
Configuration variables summary¶
VARIABLES:
The following configuration variable attributes are supported (defaults in
brackets, with dictionaries being summarized with their length):
name The name of this configuration (optional) [default]
notes Notes for this configuration (optional) [None]
prefix The prefix [@]
pseudomoduleName The pseudomodule name [empy]
verbose Verbose processing (for debugging)? [False]
rawErrors Print Python stacktraces on error? [False]
verboseErrors Show attributes in error messages? [True]
exitOnError Exit after an error? [True]
ignoreErrors Ignore errors? [False]
contextFormat Context format [%(name)s:%(line)d:%(column)d]
goInteractive Go interactive after done processing? [False]
deleteOnError Delete output file on error? [False]
doFlatten Flatten pseudomodule members at start? [False]
useProxy Install a stdout proxy? [True]
relativePath Add EmPy script path to sys.path? [False]
buffering Specify buffering strategy for files:
0 (none), 1 (line), -1 (full), or N [16384]
replaceNewlines Replace newlines with spaces in expressions? [False]
ignoreBangpaths Treat bangpaths as comments? [True]
noneSymbol String to write when expanding None [None]
missingConfigIsError Is a missing configuration file an error? [True]
pauseAtEnd Prompt at the end of processing? [False]
startingLine Line number to start with [1]
startingColumn Column number to start with [1]
significatorDelimiters Significator variable delimiters [('__', '__')]
emptySignificator Value to use for empty significators [None]
autoValidateIcons Automatically validate icons before each use? [True]
emojiModuleNames List of emoji modules to try to use
[['emoji', 'emojis', 'emoji_data_python', 'unicodedata']]
emojiNotFoundIsError Is an unknown emoji an error? [True]
useBinary Open files as binary (Python 2.x Unicode)? [False]
inputEncoding Set input Unicode encoding [utf-8]
outputEncoding Set output Unicode encoding [utf-8]
inputErrors Set input Unicode error handler [strict]
outputErrors Set output Unicode error handler [strict]
normalizationForm Specify Unicode normalization form [NFKC]
autoPlayDiversions Auto-play diversions on exit? [True]
expandUserConstructions Expand ~ and ~user constructions [True]
configVariableName Configuration variable name while loading [_]
successCode Exit code to return on script success [0]
failureCode Exit code to return on script failure [1]
unknownCode Exit code to return on bad configuration [2]
checkVariables Check configuration variables on assignment? [True]
pathSeparator Path separator for configuration file paths [:]
supportModules Support EmPy modules? [True]
moduleExtension Filename extension for EmPy modules [.em]
moduleFinderIndex Index of module finder in meta path [0]
enableImportOutput Disable output during import? [True]
duplicativeFirsts List of duplicative first characters [['(', '[', '{']]
controls Controls dictionary [{166}]
diacritics Diacritics dictionary [{64}]
icons Icons dictionary [{111}]
emojis Emojis dictionary [{0}]
Configuration methods summary¶
METHODS:
The configuration instance contains the following methods:
initialize() Initialize the instance
shutdown() Shutdown the instance
isInitialize() Is this configuration initialized?
pauseIfRequired() Pause if required
check(in, out) Check file settings
has(name) Is this variable defined?
get(name[, default]) Get this variable value
set(name, value) Set this variable
update(**kwargs) Update with dictionary
clone([deep]) Clone (optionally deep) this configuration
run(statements) Run configuration commands
load(filename, [required]) Load configuration file
path(filename, [required]) Load configuration file(s) path
hasEnvironment(name) Is this environment variable defined?
environment(name, ...) Get the enviroment variable value
hasDefaultPrefix() Is the prefix the default?
hasFullBuffering() Is the buffering set to full?
hasNoBuffering() Is the buffering set to none?
hasLineBuffering() Is the buffering set to line?
hasFixedBuffering() Is the buffering set to fixed?
createFactory([tokens]) Create token factory
adjustFactory() Adjust token factory for non-default prefix
getFactory([tokens], [force]) Get a token factory
resetFactory() Clear the current token factory
hasBinary() Is binary (Unicode) support enabled?
enableBinary(...) Enable binary (Unicode) support
disableBinary() Disable binary (Unicode) support
isDefaultEncodingErrors() Is encoding/errors the default?
getDefaultEncoding() Get the default file encoding
open(filename, [mode], ...) Open a file
significatorReString() Regular expression string for significators
significatorRe() Regular expression pattern for significators
significatorFor(key) Significator variable name for key
setContextFormat(format) Set the context format
renderContext(context) Render context using format
calculateIconsSignature() Calculate icons signature
signIcons() Sign the icons dictionary
transmogrifyIcons() Process the icons dictionary
validateIcons() Process the icons dictionaray if necessary
intializeEmojiModules([names]) Initialize emoji module support
substituteEmoji(text) Substitute emoji
isSuccessCode(code) Does this exit code indicate success?
isExitError(error) Is this exception instance an exit?
errorToExitCode(error) Return exit code for exception instance
isNotAnError(error) Is this exception instance not an error?
formatError(error[, p, s]) Render an error string from instance
Hook methods summary¶
HOOKS:
The following hook methods are supported. The return values are ignored except
for the `pre...` methods which, when they return a true value, signal that the
following token handling should be skipped:
atInstallProxy(proxy, new) Proxy being installed
atUninstallProxy(proxy, new) Proxy being uninstalled
atStartup() Interpreter started up
atReady() Interpreter ready
atFinalize() Interpreter finalizing
atShutdown() Interpreter shutting down
atParse(scanner, loc) Interpreter parsing
atToken(token) Interpreter expanding token
atHandle(info, fatal, contexts) Interpreter encountered error
atInteract() Interpreter going interactive
pushContext(context) Context being pushed
popContext(context) Context was popped
setContext(context) Context was set or modified
restoreContext(context) Context was restored
prePrefix() Pre prefix token
preWhitespace() Pre whitespace token
preString(string) Pre string literal token
preLineComment(comment) Pre line comment
postLineComment() Post line comment
preInlineComment(comment) Pre inline comment
postInlineComment() Post inline comment
preBackquote(literal) Pre backquote literal
postBackquote() Post backquote literal
preSignificator(key, value, s) Pre significator
postSignificator() post significator
preContextName(name) Pre context name
postContextName() Post context name
preContextLine(line) Pre context line
postContextLine() Post context line
preExpression(pairs, except, loc) Pre expression
postExpression(result) Post expression
preSimple(code, sub, loc) Pre simple expression
postSimple(result) Post simple expression
preInPlace(code, loc) Pre in-place expression
postInPlace(result) Post in-place expression
preStatement(code, loc) Pre statement
postStatement() Post statement
preControl(type, rest, loc) Pre control
postControl() Post control
preEscape(code) Pre escape
postEscape() Post escape
preDiacritic(code) Pre diacritic
postDiacritic() Post diacritic
preIcon(code) Pre icon
postIcon() Post icon
preEmoji(name) Pre emoji
postEmoji() Post emoji
preCustom(contents) Pre custom
postCustom() Post custom
beforeProcess(command, n) Before command processing
afterProcess() After command processing
beforeInclude(file, loc, name) Before file inclusion
afterInclude() After file inclusion
beforeExpand(string, loc, name) Before expand call
afterExpand(result) After expand call
beforeTokens(tokens, loc) Before processing tokens
afterTokens(result) After processing tokens
beforeFileLines(file, loc) Before reading file by lines
afterFileLines() After reading file by lines
beforeFileChunks(file, loc) Before reading file by chunks
afterFileChunks() After reading file by chunks
beforeFileFull(file, loc) Before reading file in full
afterFilFull() After reading file in full
beforeString(string, loc) Before processing string
afterString() After processing string
beforeQuote(string) Before quoting string
afterQuote() After quoting string
beforeEscape(string) Before escaping string
afterEscape() After escaping string
beforeSignificate(key, value, loc) Before significator
afterSignificate() After significator
beforeCallback(contents) Before custom callback
afterCallback() Before custom callback
beforeAtomic(name, value, loc) Before atomic assignment
afterAtomic() After atomic assignment
beforeMulti(names, values, loc) Before complex assignment
afterMulti() After complex assignment
beforeImport(name, loc) Before module import
afterImport() After module import
beforeFunctional(code, lists, loc) Before functional expression
afterFunctional(result) After functional expression
beforeEvaluate(code, loc, write) Before expression evaluation
afterEvaluate(result) After expression evaluation
beforeExecute(statements, loc) Before statement execution
afterExecute() After statement execution
beforeSingle(source, loc) Before single execution
afterSingle(result) After single execution
beforeFinalizer(final) Before finalizer processing
afterFinalizer() After finalizer processing
Named escapes (control codes) summary¶
NAMED:
The following named escapes (control codes) (`@\^{...}`) are supported:
NUL U+0000; null
SOH U+0001; start of heading, transmission control one
TC1 U+0001; start of heading, transmission control one
STX U+0002; start of text, transmission control two
TC2 U+0002; start of text, transmission control two
ETX U+0003; end of text, transmission control three
TC3 U+0003; end of text, transmission control three
EOT U+0004; end of transmission, transmission control four
TC4 U+0004; end of transmission, transmission control four
ENQ U+0005; enquiry, transmission control five
TC5 U+0005; enquiry, transmission control five
ACK U+0006; acknowledge, transmission control six
TC6 U+0006; acknowledge, transmission control six
BEL U+0007; bell; alert
BS U+0008; backspace, format effector zero
FE0 U+0008; backspace, format effector zero
FE1 U+0009; horizontal tabulation, format effector one; tab
HT U+0009; horizontal tabulation, format effector one; tab
FE2 U+000A; linefeed, format effector two; newline (Unix)
LF U+000A; linefeed, format effector two; newline (Unix)
NL U+000A; linefeed, format effector two; newline (Unix)
FE3 U+000B; line tabulation, format effector three; vertical tab
LT U+000B; line tabulation, format effector three; vertical tab
VT U+000B; line tabulation, format effector three; vertical tab
FE4 U+000C; form feed, format effector four
FF U+000C; form feed, format effector four
CR U+000D; carriage return, format effector five; enter
FE5 U+000D; carriage return, format effector five; enter
LS1 U+000E; shift out, locking-shift one
SO U+000E; shift out, locking-shift one
LS0 U+000F; shift in, locking-shirt zero
SI U+000F; shift in, locking-shirt zero
DLE U+0010; data link escape; transmission control seven
TC7 U+0010; data link escape; transmission control seven
DC1 U+0011; device control one; xon
XON U+0011; device control one; xon
DC2 U+0012; device control two
DC3 U+0013; device control three; xoff
XOFF U+0013; device control three; xoff
DC4 U+0014; device control four; stop
STOP U+0014; device control four; stop
NAK U+0015; negative acknowledge, transmission control eight
TC8 U+0015; negative acknowledge, transmission control eight
SYN U+0016; synchronous idle, transmission control nine
TC9 U+0016; synchronous idle, transmission control nine
ETB U+0017; end of transmission block, transmission control ten
TC10 U+0017; end of transmission block, transmission control ten
CAN U+0018; cancel
EM U+0019; end of medium
SUB U+001A; substitute; end of file (DOS)
ESC U+001B; escape
FS U+001C; file separator, information separator four
IS4 U+001C; file separator, information separator four
GS U+001D; group separator, information separator three
IS3 U+001D; group separator, information separator three
IS2 U+001E; record separator, information separator two
RS U+001E; record separator, information separator two
IS1 U+001F; unit separator, information separator one
US U+001F; unit separator, information separator one
SP U+0020; space
DEL U+007F; delete
PAD U+0080; padding character
HOP U+0081; high octet preset
BPH U+0082; break permitted here
NBH U+0083; no break here
IND U+0084; index
NEL U+0085; next line
SSA U+0086; start of selected area
ESA U+0087; end of selected area
HTS U+0088; horizontal/character tabulation set
HTJ U+0089; horizontal/character tabulation with justification
VTS U+008A; vertical/line tabulation set
PLD U+008B; partial line down/forward
PLU U+008C; partial line up/backward
RI U+008D; reverse index, reverse line feed
SS2 U+008E; single shift two
SS3 U+008F; single shift three
DCS U+0090; device control string
PU1 U+0091; private use one
PU2 U+0092; private use two
STS U+0093; set transmission state
CHC U+0094; cancel character
MW U+0095; message waiting
SPA U+0096; start of protected/guarded area
EPA U+0097; end of protected/guarded area
SOS U+0098; start of string
SGCI U+0099; single graphic character introducer, unassigned
SCI U+009A; single character introducer
CSI U+009B; control sequence introducer
ST U+009C; string terminator
OSC U+009D; operating system command
PM U+009E; privacy message
APC U+009F; application program command
NBSP U+00A0; no-break space
SHY U+00AD; soft hyphen, discretionary hyphen
CGJ U+034F; combining grapheme joiner
NQSP U+2000; en quad
MQSP U+2001; em quad; mutton quad
ENSP U+2002; en space; nut
EMSP U+2003; em space; mutton
3MSP U+2004; three-per-em space; thick space
4MSP U+2005; four-per-em space; mid space
6MSP U+2006; six-per-em space
FSP U+2007; figure space
PSP U+2008; punctuation space
THSP U+2009; thin space
HSP U+200A; hair space
ZWSP U+200B; zero width space
ZWNJ U+200C; zero width non-joiner
ZWJ U+200D; zero width joiner
LRM U+200E; left-to-right mark
RLM U+200F; right-to-left mark
NBHY U+2011; non-breaking hyphen: ‑
LSEP U+2028; line separator
PSEP U+2029; paragraph separator
LRE U+202A; left-to-right encoding
RLE U+202B; right-to-left encoding
PDF U+202C; pop directional formatting
LRO U+202D; left-to-right override
RLO U+202E; right-to-left override
NNBSP U+202F; narrow no-break space
MMSP U+205F; medium mathematical space
WJ U+2060; word joiner
FA U+2061; function application (`f()`)
IT U+2062; invisible times (`x`)
IS U+2063; invisible separator (`,`)
ISS U+206A; inhibit symmetric swapping
ASS U+206B; activate symmetric swapping
IAFS U+206C; inhibit arabic form shaping
AAFS U+206D; activate arabic form shaping
NADS U+206E; national digit shapes
NODS U+206F; nominal digit shapes
IDSP U+3000; ideographic space
IIM U+3005; ideographic iteration mark: 々
ICM U+3006; ideographic closing mark: 〆
INZ U+3007; ideographic number zero: 〇
VIIM U+303B; vertical ideographic iteration mark: 〻
MASU U+303C; masu mark: 〼
PAM U+303D; part alternation mark: 〽
IVI U+303E; ideographic variation indicator: 〾
IHFSP U+303F; ideograhic half fill space: 〿
VS1 U+FE00; variation selector 1
VS2 U+FE01; variation selector 2
VS3 U+FE02; variation selector 3
VS4 U+FE03; variation selector 4
VS5 U+FE04; variation selector 5
VS6 U+FE05; variation selector 6
VS7 U+FE06; variation selector 7
VS8 U+FE07; variation selector 8
VS9 U+FE08; variation selector 9
VS10 U+FE09; variation selector 10
VS11 U+FE0A; variation selector 11
VS12 U+FE0B; variation selector 12
VS13 U+FE0C; variation selector 13
VS14 U+FE0D; variation selector 14
TEXT U+FE0E; variation selector 15; text display
VS15 U+FE0E; variation selector 15; text display
EMOJI U+FE0F; variation selector 16; emoji display
VS16 U+FE0F; variation selector 16; emoji display
BOM U+FEFF; zero width no-break space; byte order mark
ZWNBSP U+FEFF; zero width no-break space; byte order mark
IAA U+FFF9; interlinear annotation anchor
IAS U+FFFA; interlinear annotation separator
IAT U+FFFB; interlinear annotation terminator
ORC U+FFFC; object replacement character
RC U+FFFD; replacement character: �
Diacritic combiners summary¶
DIACRITICS:
The following diacritic combining characters (`@^C...`) are supported:
` U+0300; grave: ◌̀
' U+0301; acute: ◌́
^ U+0302; circumflex accent: ◌̂
~ U+0303; tilde: ◌̃
- U+0304; macron: ◌̄
_ U+0305; overline: ◌̅
( U+0306; breve: ◌̆
. U+0307; dot: ◌̇
: U+0308; diaeresis: ◌̈
? U+0309; hook above: ◌̉
o U+030A; ring above: ◌̊
" U+030B; double acute accent: ◌̋
v U+030C; caron: ◌̌
s U+030D; vertical line above: ◌̍
S U+030E; double vertical line above: ◌̎
{ U+030F; double grave accent: ◌̏
@ U+0310; candrabinu: ◌̐
) U+0311; inverted breve: ◌̑
1 U+0312; turned comma above: ◌̒
2 U+0313; comma above: ◌̓
3 U+0314; reversed comma above: ◌̔
4 U+0315; comma above right: ◌̕
] U+0316; grave accent below: ◌̖
[ U+0317; acute accent below: ◌̗
< U+0318; left tack below: ◌̘
> U+0319; right tack below: ◌̙
A U+031A; left angle above: ◌̚
h U+031B; horn: ◌̛
r U+031C; left half ring below: ◌̜
u U+031D; up tack below: ◌̝
d U+031E; down tack below: ◌̞
+ U+031F; plus sign below: ◌̟
m U+0320; minus sign below: ◌̠
P U+0321; palatalized hook below: ◌̡
R U+0322; retroflex hook below: ◌̢
D U+0323; dot below: ◌̣
E U+0324; diaeresis below: ◌̤
O U+0325; ring below: ◌̥
c U+0326; comma below: ◌̦
, U+0327; cedilla: ◌̧
K U+0328; ogonek: ◌̨
V U+0329; vertical line below: ◌̩
$ U+032A; bridge below: ◌̪
W U+032B; inverted double arch below: ◌̫
H U+032C; caron below: ◌̬
C U+032D; circumflex accent below: ◌̭
B U+032E; breve below: ◌̮
N U+032F; inverted breve below: ◌̯
T U+0330; tilde below: ◌̰
M U+0331; macron below: ◌̱
l U+0332; low line: ◌̲
L U+0333; double low line: ◌̳
& U+0334; tilde overlay: ◌̴
! U+0335; short stroke overlay: ◌̵
| U+0336; long stroke overlay: ◌̶
% U+0337; short solidays overlay: ◌̷
/ U+0338; long solidus overlay: ◌̸
g U+0339; right half ring below: ◌̹
* U+033A; inverted bridge below: ◌̺
# U+033B; square below: ◌̻
G U+033C; seagull below: ◌̼
x U+033D; x above: ◌̽
; U+033E; vertical tilde: ◌̾
= U+033F; double overline: ◌̿
Icons summary¶
ICONS:
The following icon sequences (`@|...`) are supported:
! U+2757 U+FE0F; exclamation mark: ❗️
"" U+0022; quotation mark: "
"( U+201C; left double quotation mark: “
") U+201D; right double quotation mark: ”
$ U+1F4B2; heavy dollar sign: 💲
%% U+1F3B4; flower playing cards: 🎴
%c U+2663 U+FE0F; club suit: ♣️
%d U+2666 U+FE0F; diamond suit: ♦️
%e U+1F9E7; red gift envelope: 🧧
%h U+2665 U+FE0F; heart suit: ♥️
%j U+1F0CF; joker: 🃏
%r U+1F004; Mahjong red dragon: 🀄
%s U+2660 U+FE0F; spade suit: ♠️
&! U+1F396 U+FE0F; military medal: 🎖️
&$ U+1F3C6; trophy: 🏆
&0 U+1F3C5; sports medal: 🏅
&1 U+1F947; first place medal: 🥇
&2 U+1F948; second place medal: 🥈
&3 U+1F949; third place medal: 🥉
'' U+0027; apostrophe: '
'( U+2018; left single quotation mark: ‘
') U+2019; right single quotation mark: ’
'/ U+00B4; acute accent: ´
'\ U+0060; grave accent: `
* U+002A U+FE0F; asterisk: *️
+ U+1F53A; red triangle pointed up: 🔺
,+ U+1F44D; thumbs up: 👍
,- U+1F44E; thumbs down: 👎
,a U+261D U+FE0F; point above: ☝️
,d U+1F447; point down: 👇
,f U+1F44A; oncoming fist: 👊
,l U+1F448; point left: 👈
,o U+1FAF5; point out: 🫵
,r U+1F449; point right: 👉
,s U+1F91D; handshake: 🤝
,u U+1F446; point up: 👆
- U+1F53B; red triangle pointed down: 🔻
.d U+2B07 U+FE0F; down arrow: ⬇️
.l U+2B05 U+FE0F; left arrow: ⬅️
.r U+27A1 U+FE0F; right arrow: ➡️
.u U+2B06 U+FE0F; up arrow: ⬆️
/ U+2714 U+FE0F; check mark: ✔️
:$ U+1F911; money-mouth face: 🤑
:( U+1F61E; disappointed face: 😞
:) U+1F600; grinning face: 😀
:* U+1F618; face blowing a kiss: 😘
:/ U+1F60F; smirking face: 😏
:0 U+1F636; face without mouth: 😶
:1 U+1F914; thinking face: 🤔
:2 U+1F92B; shushing face: 🤫
:3 U+1F617; kissing face: 😗
:4 U+1F605; grinning face with sweat: 😅
:5 U+1F972; smiling face with tear: 🥲
:6 U+1F602; face with tears of joy: 😂
:7 U+1F917; smiling face with open hands: 🤗
:8 U+1F910; zipper-mouth face: 🤐
:9 U+1F923; rolling on the floor laughing: 🤣
:<3 U+2764 U+FE0F; red heart: ❤️
:D U+1F601; beaming face with smiling eyes: 😁
:O U+1F62F; hushed face: 😯
:P U+1F61B; face with tongue: 😛
:S U+1FAE1; saluting face: 🫡
:T U+1F62B; tired face: 😫
:Y U+1F971; yawning face: 🥱
:Z U+1F634; sleeping face: 😴
:[ U+1F641; frowning face: 🙁
:\ U+1F615; confused face: 😕
:] U+263A U+FE0F; smiling face: ☺️
:| U+1F610; neutral face: 😐
;) U+1F609; winking face: 😉
< U+23EA; black left-pointing double triangle: ⏪
=* U+2716 U+FE0F; heavy multiplication sign: ✖️
=+ U+2795 U+FE0F; heavy plus sign: ➕️
=- U+2796 U+FE0F; heavy minus sign: ➖️
=/ U+2797 U+FE0F; heavy division sign: ➗️
> U+23E9; black right-pointing double triangle: ⏩
? U+2753 U+FE0F; question mark: ❓️
B) U+1F60E; smiling face with sunglasses: 😎
E U+2130; script capital E: ℰ
F U+2131; script capital F: ℱ
M U+2133; script capital M: ℳ
\ U+274C U+FE0F; cross mark: ❌️
^ U+26A0 U+FE0F; warning sign: ⚠️
{!!} U+203C U+FE0F; double exclamation mark: ‼️
{!?} U+2049 U+FE0F; exclamation question mark: ⁉️
{()} U+1F534; red circle: 🔴
{[]} U+1F7E5; red square: 🟥
{{}} U+2B55 U+FE0F; hollow red circle: ⭕️
| U+1F346; aubergine: 🍆
~ U+3030 U+FE0F; wavy dash: 〰️
Usage hints summary¶
HINTS:
Whitespace immediately inside parentheses of `@(...)` are ignored. Whitespace
immediately inside braces of `@{...}` are ignored, unless ... spans multiple
lines. Use `@{ ... }@` to suppress newline following second `@`. Simple
expressions ignore trailing punctuation; `@x.` means `@(x).`, not a parse
error. A `#!` at the start of a file is treated as a comment. The full
documentation is available at <http://www.alcyone.com/software/empy/>.
Topic list¶
TOPICS:
Need more help? Add more -h options (-hh, -hhh) for more help. Use -H <topic>
for help on a specific topic, or specify a comma-separated list of topics. Try
`default` (-h) for default help, `more` (-hh) for more common topics, `all`
(-hhh) for all help topics, or `topics` for this list. Use -V for version
information, -W for version and system information, or -Z for all debug
details. Available topics:
usage Basic command line usage
options Command line options
simple Simple (one-letter) command line options
markup Markup syntax
escapes Escape sequences
environ Environment variables
pseudo Pseudomodule attributes and functions
constructor Keyword arguments for the Interpreter constructor
variables Configuration variable attributes
methods Configuration methods
hooks Hook methods
named Named escapes
diacritics Diacritic combiners
icons Icons
hints Usage hints
topics This list of topics