Loading...
Searching...
No Matches
Core

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.
 

Detailed Description

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 Documentation

◆ orgCache

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.

Operation Method

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.

◆ scope

typedef tnchain< std::string, node, tnmap< std::string, node, immutableTactic > > by::scope

Symbol scope container.

scope is declared based on tnchain. See tnchain first if unfamiliar.

Scope Concept in Byeol

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.)

How Scope is Used

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

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.

Func Scope

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.

Obj Scope

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.

File Scope

Literally the scope accessible only within that source code unit. In byeol code, symbols defined above pod all belong to file scope.

Remarks
file scope is always made to chain pod scope by the parser. See tnchain for chaining.

pod 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.

Function Documentation

◆ loopExpr()

by::loopExpr::loopExpr ( const blockExpr & blk)

Loop execution controller.

Manages loop iteration state and execution flow.

to Top