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. 더 자세히 ...
파일들 | |
| 파일 | narrIteration.hpp |
| Array iteration implementation | |
| 파일 | nmapIteration.hpp |
| 파일 | nseqIteration.hpp |
| 파일 | uiterable.hpp |
| Iterable interface for unidirectional containers | |
클래스 | |
| class | by::args |
| Function or object evaluation arguments 더 자세히 ... | |
| class | by::autopod |
| Automatic pod loading pod 더 자세히 ... | |
| class | by::baseFunc |
| Base class for all function types 더 자세히 ... | |
| class | by::baseObj |
| Base class for representing byeol objects 더 자세히 ... | |
| class | by::closure |
| func closure with captured object scope 더 자세히 ... | |
| class | by::baseCtor |
| Base class for all constructor types 더 자세히 ... | |
| class | by::ctor |
| Constructor function for byeol objects 더 자세히 ... | |
| class | by::defaultCopyCtor |
| Default copy constructor for byeol runtime environment 더 자세히 ... | |
| class | by::defaultCtor |
| Default constructor implementation 더 자세히 ... | |
| class | by::dumScope |
| Dummy scope implementation that ignores additions 더 자세히 ... | |
| class | by::expr |
| Base class for all expressions 더 자세히 ... | |
| class | by::expr::exprType |
| Type information for expression nodes 더 자세히 ... | |
| class | by::asExpr |
| Type casting expression 더 자세히 ... | |
| class | by::assignExpr |
| Assignment expression 더 자세히 ... | |
| class | by::blockExpr |
| Block expression 더 자세히 ... | |
| class | by::breakRet |
| Return state for break statements 더 자세히 ... | |
| class | by::breakExpr |
| Break statement expression 더 자세히 ... | |
| class | by::defArrayExpr |
| Array literal expression 더 자세히 ... | |
| class | by::defAssignExpr |
| Variable definition with assignment expression 더 자세히 ... | |
| class | by::defNestedFuncExpr |
| Nested function definition expression 더 자세히 ... | |
| class | by::defPropExpr |
| Property definition expression 더 자세히 ... | |
| class | by::defSeqExpr |
| Sequence definition expression 더 자세히 ... | |
| class | by::defVarExpr |
| Variable definition expression base class 더 자세히 ... | |
| class | by::endExpr |
| End keyword expression 더 자세히 ... | |
| class | by::evalExpr |
| Function/method call expression 더 자세히 ... | |
| class | by::exprMaker |
| Factory for creating expressions with source location information 더 자세히 ... | |
| class | by::FBOExpr |
| Fundamental Binary Operator expression 더 자세히 ... | |
| class | by::forExpr |
| For loop expression 더 자세히 ... | |
| class | by::FUOExpr |
| Fundamental Unary Operator expression 더 자세히 ... | |
| class | by::getExpr |
| Expression for property and method access 더 자세히 ... | |
| class | by::getGenericExpr |
| Generic type access expression 더 자세히 ... | |
| class | by::ifExpr |
| If conditional expression 더 자세히 ... | |
| class | by::isExpr |
| ntype checking expression 더 자세히 ... | |
| class | by::loopExpr |
| Base class for loop expressions 더 자세히 ... | |
| class | by::nextRet |
| Return state for continue statements 더 자세히 ... | |
| class | by::nextExpr |
| Continue statement expression 더 자세히 ... | |
| class | by::retExpr |
| Return statement expression 더 자세히 ... | |
| class | by::retState |
| Return state object for control flow 더 자세히 ... | |
| class | by::retStateExpr |
| Base class for keywords that exit blockExpr 더 자세히 ... | |
| class | by::whileExpr |
| While loop expression 더 자세히 ... | |
| class | by::func |
| Function definition in byeol language 더 자세히 ... | |
| class | by::immutableTactic |
| Immutable type binding strategy 더 자세히 ... | |
| struct | by::entrypoint |
| Entry point definition for pod loading 더 자세히 ... | |
| struct | by::manifest |
| pod manifest information 더 자세히 ... | |
| class | by::dumModifier |
| Dummy modifier that ignores all operations 더 자세히 ... | |
| class | by::modifier |
| Access modifier for type members 더 자세히 ... | |
| class | by::nestedFunc |
| Nested function with captured scope 더 자세히 ... | |
| class | by::node |
| Base class for all AST nodes in the byeol language 더 자세히 ... | |
| class | by::obj |
| Byeol runtime environment object 더 자세히 ... | |
| class | by::origin |
| User-defined origin type 더 자세히 ... | |
| class | by::param |
| Function parameter 더 자세히 ... | |
| class | by::params |
| Function parameter list container 더 자세히 ... | |
| class | by::dumParams |
| Dummy parameter container that ignores all operations 더 자세히 ... | |
| class | by::pod |
| Pod 더 자세히 ... | |
| class | by::dumSrc |
| Dummy source location implementation 더 자세히 ... | |
| class | by::dumSrcFile |
| Dummy source file implementation 더 자세히 ... | |
| class | by::src |
| Source location information 더 자세히 ... | |
| class | by::srcFile |
| Source code file information 더 자세히 ... | |
| class | by::statable |
| Interface for objects with compilation state 더 자세히 ... | |
| class | by::tbaseObjOrigin< T > |
| Template for easily defining baseObj origin objects 더 자세히 ... | |
| class | by::tmock< T > |
| Proxy template for type parameter T 더 자세히 ... | |
| struct | by::tprior< T > |
| Priority wrapper for type matching 더 자세히 ... | |
| class | by::tpriorities< T > |
| Collection of prioritized elements 더 자세히 ... | |
| class | by::validable |
| Interface for objects with validation state 더 자세히 ... | |
| struct | by::tgenericMarshaling< node &, true > |
| Generic marshaling specialization for node reference 더 자세히 ... | |
| struct | by::tmarshaling< T, isNode > |
| Template marshaling interface for C++ bridge 더 자세히 ... | |
| struct | by::tnormalMarshaling< tnativeType, tmarshalType > |
| Normal marshaling for primitive types 더 자세히 ... | |
| struct | by::tnormalMarshaling< void, nVoid > |
| Void marshaling specialization 더 자세히 ... | |
| class | by::tbridge< T > |
| C++ native class bridge 더 자세히 ... | |
| class | by::tbridgeClosure< Ret, T, Marshaling, Args > |
| Bridge closure for C++ lambda/function objects 더 자세히 ... | |
| class | by::tbridgeClosure< void, T, Marshaling, Args... > |
| Bridge closure specialization for void return type 더 자세히 ... | |
| class | by::tbridgeCtor< T, Marshaling, Args > |
| Bridge constructor for C++ objects 더 자세히 ... | |
| class | by::tbaseBridgeFunc< Ret, T, Marshaling, Args > |
| Base bridge function template 더 자세히 ... | |
| class | by::tbridger< T, isBaseObj > |
| C++ to byeol bridge builder 더 자세히 ... | |
| class | iter |
| Bidirectional iterator for key-value containers 더 자세히 ... | |
| class | nchainIteration |
| Chain iteration implementation 더 자세히 ... | |
| class | iteration |
| class | by::arr |
| Scripted array container for byeol language 더 자세히 ... | |
| class | by::seq |
| scripted sequence container for integer ranges 더 자세히 ... | |
| class | by::tdumArr< T, defaultElemType > |
| Dummy array that ignores all modifications 더 자세히 ... | |
| class | by::nseq |
| Native sequence container for integer ranges 더 자세히 ... | |
| class | by::tbicontainable< K, V > |
| Template bidirectional container interface 더 자세히 ... | |
| class | by::tucontainable< T, R, RSquare > |
| Template unidirectional container interface 더 자세히 ... | |
| class | by::baseErr |
| Base class for error hierarchy 더 자세히 ... | |
| class | by::err |
| Standard error implementation 더 자세히 ... | |
| class | by::errReport |
| Error report collector 더 자세히 ... | |
| class | by::dummyErrReport |
| Dummy error reporter that discards all errors 더 자세히 ... | |
| class | by::inputFunc |
| Input function for reading user input 더 자세히 ... | |
| class | by::printFunc< T > |
| Template print function for output operations 더 자세히 ... | |
| class | by::nBool |
| Boolean primitive type in byeol language 더 자세히 ... | |
| class | by::nByte |
| Byte primitive type in byeol language 더 자세히 ... | |
| class | by::nFlt |
| Float primitive type in byeol language 더 자세히 ... | |
| class | by::nInt |
| Integer primitive type in byeol language 더 자세히 ... | |
| class | by::nStr |
| String primitive type in byeol language 더 자세히 ... | |
| class | by::nVoid |
| Void primitive type in byeol language 더 자세히 ... | |
| class | by::scalar |
| Base class for arithmetic operations on primitive types 더 자세히 ... | |
| class | by::util |
| Core utility functions 더 자세히 ... | |
| class | by::__WHEN_OBJECT__ |
| Enhanced error handling for core module 더 자세히 ... | |
| struct | by::scopeRegister |
| Scope registration entry for frame management 더 자세히 ... | |
| class | by::frame |
| Execution frame 더 자세히 ... | |
| class | by::frameInteractable |
| Interface for frame interaction 더 자세히 ... | |
| class | by::frames |
| Container for execution frame stack 더 자세히 ... | |
| struct | by::sig |
| Signal structure for error handling 더 자세히 ... | |
| class | by::signaler |
| Signal handler manager 더 자세히 ... | |
| class | by::sigZone |
| Signal handler zone management 더 자세히 ... | |
| class | by::starter |
| Program execution starter 더 자세히 ... | |
| class | by::thread |
| Thread execution context for byeol runtime 더 자세히 ... | |
| class | by::threadUse |
| Thread usage wrapper 더 자세히 ... | |
| class | by::coreInternal |
| class | by::byeolPodLoading |
| Byeol script pod loading implementation 더 자세히 ... | |
| class | by::cppPodLoading |
| C++ native pod loading implementation 더 자세히 ... | |
| class | by::podLoader |
| Pod loading and management system 더 자세히 ... | |
| class | by::podLoading |
| Base class for pod loading strategies 더 자세히 ... | |
| class | by::podMakable |
| Interface for pod creation and verification 더 자세히 ... | |
| class | by::trustPodLoading |
| Trusted pod loading implementation 더 자세히 ... | |
| class | by::asable |
| Type conversion interface 더 자세히 ... | |
| class | by::aser |
| Base type converter 더 자세히 ... | |
| class | by::ases |
| Collection of type converters 더 자세히 ... | |
| class | by::impliAses |
| Implicit type conversion collection 더 자세히 ... | |
| class | by::funcType |
| script type for function objects in byeol language. 더 자세히 ... | |
| class | by::mgdType |
| Script type for byeol objects 더 자세히 ... | |
| class | by::ntype |
| represents native c++ type system for byeol language 더 자세히 ... | |
| class | by::typeMaker |
| Factory for creating script types 더 자세히 ... | |
| class | by::tokenScan |
| Base class for token scanning strategies 더 자세히 ... | |
| class | by::normalScan |
| Normal token scanning mode 더 자세히 ... | |
| class | by::indentScan |
| Indentation-aware token scanning mode 더 자세히 ... | |
| class | by::defBlock |
| Definition block for organizing object definitions 더 자세히 ... | |
| class | by::interpreter |
| High-level interpreter for byeol language 더 자세히 ... | |
| class | by::parser |
| Parser for byeol language source code 더 자세히 ... | |
| class | by::smartDedent |
| Smart indentation management for code parsing 더 자세히 ... | |
| class | by::bufSupply |
| Buffer-based source supply 더 자세히 ... | |
| class | by::fileSupply |
| File-based source supply 더 자세히 ... | |
| class | by::srcSupply |
| Source code supply interface 더 자세히 ... | |
| class | by::tokenDispatcher |
| Token queue management for parser 더 자세히 ... | |
| class | by::tokenScanable |
| Interface for token scanning functionality 더 자세히 ... | |
| class | by::tworker< R, T > |
| Base worker template for processing tasks 더 자세히 ... | |
| class | by::baseConvergence |
| Base class for convergence algorithms 더 자세히 ... | |
| class | by::expander |
| Visitor for expanding generic types and expressions 더 자세히 ... | |
| class | by::generalizer |
| Visitor for generic type parameter replacement 더 자세히 ... | |
| class | by::graphVisitor |
| AST graph visualization visitor 더 자세히 ... | |
| class | by::verifier |
| AST verifier for semantic analysis 더 자세히 ... | |
| class | by::visitInfo |
| Visitor context information 더 자세히 ... | |
| class | by::visitor |
| Base visitor class for AST traversal 더 자세히 ... | |
타입정의 | |
| 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 | |
함수 | |
| 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.