dl
dl_script.h 文件参考

dl脚本语言 更多...

#include <vector>
#include <list>
#include <unordered_map>
#include <functional>
#include <string>
#include <cassert>
#include <stack>
#include <variant>
#include <array>
#include <cstdint>

浏览该文件的源代码.

struct  dl::ScriptVar
 变量(大小严格控制) 更多...
 
struct  dl::ScriptToken
 
struct  dl::ScriptExprToken
 表达式token(指向真实变量) 更多...
 
struct  dl::ScriptExpr
 后缀表达式 更多...
 
class  dl::ScriptVarSpace
 变量空间 更多...
 
struct  dl::ScriptSegment
 代码段(包含单独作用域) 更多...
 
struct  dl::ScriptBlock
 代码块 更多...
 
struct  dl::ScriptControlIf
 控制语句 更多...
 
struct  dl::ScriptControlIfElse
 
struct  dl::ScriptControlElse
 
struct  dl::ScriptControlFor
 
struct  dl::ScriptControlWhile
 
struct  dl::ScriptSegmentRT
 代码段运行时 更多...
 
class  dl::ScriptVM
 虚拟机 更多...
 
class  dl::ScriptSystem
 管理器 更多...
 

命名空间

namespace  dl
 

类型定义

using dl::ScriptIndex = uint32_t
 
using dl::ScriptInt = int64_t
 
using dl::ScriptFloat = double
 
using dl::ScriptString = std::string
 
using dl::ScriptIndexVS = uint8_t
 
using dl::ScriptVector = std::vector<ScriptVar>
 
using dl::ScriptTable = std::unordered_map<std::string, ScriptVar>
 
using dl::ScriptParam = ScriptVector
 
using dl::ScriptFunction = std::function<int(ScriptVM&, const ScriptParam&)>
 

枚举

enum class  dl::ScriptVarType : ScriptIndex {
  dl::E_null , dl::E_int , dl::E_float , dl::E_string ,
  dl::E_class , dl::E_vector , dl::E_table , dl::E_function ,
  dl::E_userdata , dl::E_operator , dl::E_max
}
 变量类型(用户层面) 更多...
 
enum class  dl::ScriptOperator : ScriptIndex {
  dl::E_assign , dl::E_add , dl::E_sub , dl::E_mul ,
  dl::E_div , dl::E_comma , dl::E_equal , dl::E_error
}
 操作类型 更多...
 
enum class  dl::ScriptExprTokenType { dl::ESET_variable , dl::ESET_literal , dl::ESET_operator }
 表达式token类型 更多...
 
enum class  dl::ScriptSegmentType : ScriptIndex {
  dl::E_expr , dl::E_if , dl::E_ifelse , dl::E_else ,
  dl::E_while , dl::E_for , dl::E_vector , dl::E_table
}
 

函数

bool dl::IsBaseType (ScriptVarType type)
 是基础类型
 
std::string_view dl::to_string (ScriptOperator op)
 
bool dl::operator== (const ScriptVar &a, const ScriptVar &b)
 
std::string_view dl::to_string (ScriptToken::Type type)
 
std::string dl::to_string (const ScriptExpr &expr)
 

变量

constexpr ScriptIndex dl::SCRIPT_INDEX_RETURN = (ScriptIndex)-1
 
constexpr ScriptIndexVS dl::SCRIPT_INDEX_VS_0 = 0
 
constexpr ScriptIndexVS dl::SCRIPT_INDEX_VS_ITERAL = (ScriptIndexVS)-3
 
constexpr ScriptIndexVS dl::SCRIPT_INDEX_VS_TEMP = (ScriptIndexVS)-2
 
constexpr ScriptIndexVS dl::SCRIPT_INDEX_VS_ERROR = (ScriptIndexVS)-1
 
ScriptSystemdl::g_script
 

详细描述

dl脚本语言

版本
1.0
作者
lveyou
日期
24-05-30
注解
尽量不依赖dl的其他文件

在文件 dl_script.h 中定义.