Core language layer containing byeol AST and core language features. Contains the byeol Abstract Syntax Tree (AST), handles package loading and management, and implements the fundamental features of the byeol programming language. More...
Files | |
| file | narrIteration.hpp |
| Array iteration implementation. | |
| file | nmapIteration.hpp |
| file | nseqIteration.hpp |
| file | uiterable.hpp |
| Iterable interface for unidirectional containers. | |
Classes | |
| class | by::args |
| Function or object evaluation arguments. More... | |
| class | by::autopod |
| Automatic pod loading pod. More... | |
| class | by::baseFunc |
| Base class for all function types. More... | |
| class | by::baseObj |
| Base class for representing byeol objects. More... | |
| class | by::closure |
| func closure with captured object scope More... | |
| class | by::baseCtor |
| Base class for all constructor types. More... | |
| class | by::ctor |
| Constructor function for byeol objects. More... | |
| class | by::defaultCopyCtor |
| Default copy constructor for byeol runtime environment. More... | |
| class | by::defaultCtor |
| Default constructor implementation. More... | |
| class | by::dumScope |
| Dummy scope implementation that ignores additions. More... | |
| class | by::expr |
| Base class for all expressions. More... | |
| class | by::expr::exprType |
| Type information for expression nodes More... | |
| class | by::asExpr |
| Type casting expression. More... | |
| class | by::assignExpr |
| Assignment expression. More... | |
| class | by::blockExpr |
| Block expression. More... | |
| class | by::breakRet |
| Return state for break statements. More... | |
| class | by::breakExpr |
| Break statement expression. More... | |
| class | by::defArrayExpr |
| Array literal expression. More... | |
| class | by::defAssignExpr |
| Variable definition with assignment expression. More... | |
| class | by::defNestedFuncExpr |
| Nested function definition expression. More... | |
| class | by::defPropExpr |
| Property definition expression. More... | |
| class | by::defSeqExpr |
| Sequence definition expression. More... | |
| class | by::defVarExpr |
| Variable definition expression base class. More... | |
| class | by::endExpr |
| End keyword expression. More... | |
| class | by::evalExpr |
| Function/method call expression. More... | |
| class | by::exprMaker |
| Factory for creating expressions with source location information. More... | |
| class | by::FBOExpr |
| Fundamental Binary Operator expression. More... | |
| class | by::forExpr |
| For loop expression. More... | |
| class | by::FUOExpr |
| Fundamental Unary Operator expression. More... | |
| class | by::getExpr |
| Expression for property and method access. More... | |
| class | by::getGenericExpr |
| Generic type access expression. More... | |
| class | by::ifExpr |
| If conditional expression. More... | |
| class | by::isExpr |
| ntype checking expression More... | |
| class | by::loopExpr |
| Base class for loop expressions. More... | |
| class | by::nextRet |
| Return state for continue statements. More... | |
| class | by::nextExpr |
| Continue statement expression. More... | |
| class | by::retExpr |
| Return statement expression. More... | |
| class | by::retState |
| Return state object for control flow. More... | |
| class | by::retStateExpr |
| Base class for keywords that exit blockExpr. More... | |
| class | by::whileExpr |
| While loop expression. More... | |
| class | by::func |
| Function definition in byeol language. More... | |
| class | by::immutableTactic |
| Immutable type binding strategy. More... | |
| struct | by::entrypoint |
| Entry point definition for pod loading. More... | |
| struct | by::manifest |
| pod manifest information More... | |
| class | by::dumModifier |
| Dummy modifier that ignores all operations. More... | |
| class | by::modifier |
| Access modifier for type members. More... | |
| class | by::nestedFunc |
| Nested function with captured scope. More... | |
| class | by::node |
| Base class for all AST nodes in the byeol language. More... | |
| class | by::obj |
| Byeol runtime environment object. More... | |
| class | by::origin |
| User-defined origin type. More... | |
| class | by::param |
| Function parameter. More... | |
| class | by::params |
| Function parameter list container. More... | |
| class | by::dumParams |
| Dummy parameter container that ignores all operations. More... | |
| class | by::pod |
| Pod. More... | |
| class | by::dumSrc |
| Dummy source location implementation. More... | |
| class | by::dumSrcFile |
| Dummy source file implementation. More... | |
| class | by::src |
| Source location information. More... | |
| class | by::srcFile |
| Source code file information. More... | |
| class | by::statable |
| Interface for objects with compilation state. More... | |
| class | by::tbaseObjOrigin< T > |
| Template for easily defining baseObj origin objects. More... | |
| class | by::tmock< T > |
| Proxy template for type parameter T. More... | |
| struct | by::tprior< T > |
| Priority wrapper for type matching. More... | |
| class | by::tpriorities< T > |
| Collection of prioritized elements. More... | |
| class | by::validable |
| Interface for objects with validation state. More... | |
| struct | by::tgenericMarshaling< node &, true > |
| Generic marshaling specialization for node reference. More... | |
| struct | by::tmarshaling< T, isNode > |
| Template marshaling interface for C++ bridge. More... | |
| struct | by::tnormalMarshaling< tnativeType, tmarshalType > |
| Normal marshaling for primitive types. More... | |
| struct | by::tnormalMarshaling< void, nVoid > |
| Void marshaling specialization. More... | |
| class | by::tbridge< T > |
| C++ native class bridge. More... | |
| class | by::tbridgeClosure< Ret, T, Marshaling, Args > |
| Bridge closure for C++ lambda/function objects. More... | |
| class | by::tbridgeClosure< void, T, Marshaling, Args... > |
| Bridge closure specialization for void return type. More... | |
| class | by::tbridgeCtor< T, Marshaling, Args > |
| Bridge constructor for C++ objects. More... | |
| class | by::tbaseBridgeFunc< Ret, T, Marshaling, Args > |
| Base bridge function template. More... | |
| class | by::tbridger< T, isBaseObj > |
| C++ to byeol bridge builder. More... | |
| class | iter |
| Bidirectional iterator for key-value containers. More... | |
| class | nchainIteration |
| Chain iteration implementation. More... | |
| class | iteration |
| class | by::arr |
| Scripted array container for byeol language. More... | |
| class | by::seq |
| scripted sequence container for integer ranges More... | |
| class | by::tdumArr< T, defaultElemType > |
| Dummy array that ignores all modifications. More... | |
| class | by::nseq |
| Native sequence container for integer ranges. More... | |
| class | by::tbicontainable< K, V > |
| Template bidirectional container interface. More... | |
| class | by::tucontainable< T, R, RSquare > |
| Template unidirectional container interface. More... | |
| class | by::baseErr |
| Base class for error hierarchy. More... | |
| class | by::err |
| Standard error implementation. More... | |
| class | by::errReport |
| Error report collector. More... | |
| class | by::dummyErrReport |
| Dummy error reporter that discards all errors. More... | |
| class | by::inputFunc |
| Input function for reading user input. More... | |
| class | by::printFunc< T > |
| Template print function for output operations. More... | |
| class | by::nBool |
| Boolean primitive type in byeol language. More... | |
| class | by::nByte |
| Byte primitive type in byeol language. More... | |
| class | by::nFlt |
| Float primitive type in byeol language. More... | |
| class | by::nInt |
| Integer primitive type in byeol language. More... | |
| class | by::nStr |
| String primitive type in byeol language. More... | |
| class | by::nVoid |
| Void primitive type in byeol language. More... | |
| class | by::scalar |
| Base class for arithmetic operations on primitive types. More... | |
| class | by::util |
| Core utility functions. More... | |
| class | by::__WHEN_OBJECT__ |
| Enhanced error handling for core module. More... | |
| struct | by::scopeRegister |
| Scope registration entry for frame management. More... | |
| class | by::frame |
| Execution frame. More... | |
| class | by::frameInteractable |
| Interface for frame interaction. More... | |
| class | by::frames |
| Container for execution frame stack. More... | |
| struct | by::sig |
| Signal structure for error handling. More... | |
| class | by::signaler |
| Signal handler manager. More... | |
| class | by::sigZone |
| Signal handler zone management. More... | |
| class | by::starter |
| Program execution starter. More... | |
| class | by::thread |
| Thread execution context for byeol runtime. More... | |
| class | by::threadUse |
| Thread usage wrapper. More... | |
| class | by::coreInternal |
| class | by::byeolPodLoading |
| Byeol script pod loading implementation. More... | |
| class | by::cppPodLoading |
| C++ native pod loading implementation. More... | |
| class | by::podLoader |
| Pod loading and management system. More... | |
| class | by::podLoading |
| Base class for pod loading strategies. More... | |
| class | by::podMakable |
| Interface for pod creation and verification. More... | |
| class | by::trustPodLoading |
| Trusted pod loading implementation. More... | |
| class | by::asable |
| Type conversion interface. More... | |
| class | by::aser |
| Base type converter. More... | |
| class | by::ases |
| Collection of type converters. More... | |
| class | by::impliAses |
| Implicit type conversion collection. More... | |
| class | by::funcType |
| script type for function objects in byeol language. More... | |
| class | by::mgdType |
| Script type for byeol objects. More... | |
| class | by::ntype |
| represents native c++ type system for byeol language More... | |
| class | by::typeMaker |
| Factory for creating script types. More... | |
| class | by::tokenScan |
| Base class for token scanning strategies. More... | |
| class | by::normalScan |
| Normal token scanning mode. More... | |
| class | by::indentScan |
| Indentation-aware token scanning mode. More... | |
| class | by::defBlock |
| Definition block for organizing object definitions. More... | |
| class | by::interpreter |
| High-level interpreter for byeol language. More... | |
| class | by::parser |
| Parser for byeol language source code. More... | |
| class | by::smartDedent |
| Smart indentation management for code parsing. More... | |
| class | by::bufSupply |
| Buffer-based source supply. More... | |
| class | by::fileSupply |
| File-based source supply. More... | |
| class | by::srcSupply |
| Source code supply interface. More... | |
| class | by::tokenDispatcher |
| Token queue management for parser. More... | |
| class | by::tokenScanable |
| Interface for token scanning functionality. More... | |
| class | by::tworker< R, T > |
| Base worker template for processing tasks. More... | |
| class | by::baseConvergence |
| Base class for convergence algorithms. More... | |
| class | by::expander |
| Visitor for expanding generic types and expressions. More... | |
| class | by::generalizer |
| Visitor for generic type parameter replacement. More... | |
| class | by::graphVisitor |
| AST graph visualization visitor. More... | |
| class | by::verifier |
| AST verifier for semantic analysis. More... | |
| class | by::visitInfo |
| Visitor context information. More... | |
| class | by::visitor |
| Base visitor class for AST traversal. More... | |
Typedefs | |
| typedef std::map< std::string, tstr< obj > > | by::orgCache |
| Generic type origin with type parameters. | |
| typedef tnchain< std::string, node, tnmap< std::string, node, immutableTactic > > | by::scope |
| Symbol scope container. | |
Functions | |
| by::loopExpr::loopExpr (const blockExpr &blk) | |
| Loop execution controller. | |
Core language layer containing byeol AST and core language features. Contains the byeol Abstract Syntax Tree (AST), handles package loading and management, and implements the fundamental features of the byeol programming language.
| typedef std::map< std::string, tstr< obj > > by::orgCache |
Generic type origin with type parameters.
Basically performs the same role as origin class, but differs in that it supports generics and that this instance itself is not responsible for origin but creates/manages origin as needed.
genericOrigin manages origin objects with a map. When there's no myObj key in it, it deepClones the original origin object _org to create a new origin object. Then it puts generalizer into that object to perform the operation of replacing all type parameter T with myObj, changing the existing getExpr(args = T) parts to getExpr(args = myObj). The replaced origin is registered in subs() so that when called later with the same key, it's returned immediately without generalizer.
Symbol scope container.
scope is declared based on tnchain. See tnchain first if unfamiliar.
scope is classified into 5 types based on who created it: local scope (created by blockExpr), func scope (created by baseFunc), obj scope (created by baseObj), file scope, and pod scope. (Note: pod is the same as obj derived from baseObj code-wise, but byeol conceptually treats pod scope separately.)
scope is add()ed to frames owned by the is required to run an autopod object, allowing node objects in the program's AST to access symbols registered in the scope. Here we only explain each scope conceptually. See frameInteract or frames for how scopes are actually created, registered, and released.
Local scope is created when a block statement executes within a function. When the block statement ends, the scope disappears and instances referenced in that scope lose 1 reference count. For optimization, the local scope creation itself isn't done directly by blockExpr; instead, the side executing blockExpr has the frameInteractable blockExpr create it.
Scope storing symbols owned by func. Usually func's sub nodes are used directly as func scope. Typically includes nestedFunc owned by func or obj or static variables defined within func. Note these aren't created anew each time func is created. Since this scope is unique sub nodes owned by a unique func object in the system, it also exists uniquely.
Similar to func scope, the scope containing funcs or variables owned by a specific object is called obj scope. obj has separately distinguished shares and owns, and inherited symbols are also included in this obj scope. See obj for details.
Literally the scope accessible only within that source code unit. In byeol code, symbols defined above pod all belong to file scope.
Scope where symbols defined directly under pod are located. Functions defined in pod have their me as pod, and defined origin objects have their obj scope chain pod scope. See frames for why this chaining happens. Unlike file scope, pod scope can be accessed externally if dependencies are defined in manifest.