로딩중...
검색중...
일치하는것 없음
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. 더 자세히 ...

파일들

파일  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.

타입정의 문서화

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

함수 문서화

◆ loopExpr()

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

Loop execution controller

Manages loop iteration state and execution flow.

to Top