Hetu class
A helper class wrapped sourceContext, lexicon, parser, bundler, analyzer, compiler, interpreter, logger... and make them work together.
Constructors
-
Hetu({HetuConfig? config, HTLogger? logger, HTResourceContext<
HTSource> ? sourceContext, HTLocale? locale, HTLexicon? lexicon, HTLexer? lexer, HTParser? parser}) - Create a Hetu environment.
Properties
- analyzer ↔ HTAnalyzer
-
latefinal
- bundler ↔ HTBundler
-
latefinal
- compiler ↔ HTCompiler
-
latefinal
- config ↔ HetuConfig
-
getter/setter pair
- console ↔ Console
-
latefinal
- hashCode → int
-
The hash code for this object.
no setterinherited
- interpreter ↔ HTInterpreter
-
latefinal
- isInitted → bool
-
no setter
- lexer → HTLexer
-
no setter
- lexicon → HTLexicon
-
no setter
- parser ↔ HTParser
-
latefinal
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
sourceContext
→ HTResourceContext<
HTSource> -
final
- verison ↔ Version?
-
getter/setter pair
Methods
-
assign(
String id, dynamic value, {String? namespace, String? module, bool defineIfAbsent = false}) → void - Assign value to a top level variable defined in a certain namespace in the interpreter.
-
bundle(
HTSource source, {Version? version, bool errorHandled = false}) → ASTCompilation - Process the import declaration within several sources, generate a single ASTCompilation for HTCompiler to compile.
-
compile(
String content, {String? filename, CompilerConfig? config, bool isModuleEntryScript = false, Version? version}) → Uint8List - Compile a string into bytecode. This won't execute the code, so runtime errors will not be reported.
-
compileFile(
String key, {CompilerConfig? config, Version? version}) → Uint8List - Compile a source within current sourceContext. This won't execute the code, so runtime errors will not be reported.
-
define(
String id, dynamic value, {bool isMutable = false, bool override = false, bool throws = true, String? module}) → void - Add a declaration to certain namespace.
-
eval(
String content, {String? filename, String? module, bool globallyImport = false, HTResourceType type = HTResourceType.hetuLiteralCode, String? invoke, List positionalArgs = const [], Map< String, dynamic> namedArgs = const {}}) → dynamic -
Evaluate a string content.
If
invokeis provided, will immediately call the function after evaluation completed. -
evalFile(
String key, {String? module, bool globallyImport = false, String? invoke, List positionalArgs = const [], Map< String, dynamic> namedArgs = const {}}) → dynamic -
Evaluate a file.
keyis a possibly relative path. file content will be searched by sourceContext. Ifinvokeis provided, will immediately call the function after evaluation completed. -
evalSource(
HTSource source, {String? module, bool globallyImport = false, String? invoke, List positionalArgs = const [], Map< String, dynamic> namedArgs = const {}}) → dynamic -
Evaluate a HTSource.
If
invokeis provided, will immediately call the function after evaluation completed. -
fetch(
String id, {String? namespace, String? module, bool ignoreUndefined = false}) → dynamic - Get a variable defined in a certain namespace in the interpreter.
-
help(
dynamic id, {String? module}) → String? - Get the documentational comment of an identifier within the soruce code.
-
init(
{bool useDefaultModuleAndBinding = true, Map< String, Function> externalFunctions = const {}, Map<String, HTExternalMethod> externalMethods = const {}, Map<String, HTExternalFunctionTypedef> externalFunctionTypedef = const {}, List<HTExternalClass> externalClasses = const [], List<HTExternalTypeReflection> externalTypeReflections = const []}) → void - Initialize the interpreter, prepare it with preincluded modules, bind it with HTExternalFunction, HTExternalFunctionTypedef, HTExternalClass, etc.
-
invoke(
String func, {bool ignoreUndefined = false, String? namespace, String? module, List positionalArgs = const [], Map< String, dynamic> namedArgs = const {}}) → dynamic - Invoke a top level function defined in a certain namespace in the interpreter.
-
loadBytecode(
{required Uint8List bytes, required String module, bool globallyImport = false, String? invoke, List positionalArgs = const [], Map< String, dynamic> namedArgs = const {}}) → dynamic - Load a bytecode module and immediately run a function in it.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
require(
String path) → HTNamespace - Dynamically load a source into current bytecode.
-
stringify(
dynamic dynamic) → String -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited