Authors: Andreas Rumpf, Zahary KaradjovVersion: 1.2.0 "复杂度"很像"能量": 你可以将它从最终用户转移到一个或多个其他玩家,但总量对于给定的任务保持不变。— Ran 关于本文定义词法分析 编码缩进注释多行注释标识符 & 关键字标识符相等性字符串字面值三引用字符串字面值原始字符串字面值广义原始字符串字面值字符字面值数值常量操作符其它标记 句法 结合律语法 求值顺序常量和常量表达式编译期执行限制类型 序数类型预定义整数类型子范围类型预定义浮点类型布尔类型字符类型枚举类型字符串类型cstring类型结构化类型数组和序列类型开放数组(openarray)可变参数未检查数组元组和对象类型对象构造对象变体集合类型引用和指针类型将GC内存和 ptr 混用Not nil注解过程类型Distinct类型自动类型 类型关系 类型相等性类型相等与类型区分子类型关系可转换关系赋值兼容性 重载解析 基于 ‘var T’ 的重载无类型的延迟类型解析可变参数匹配 语句和表达式 语句列表表达式Discard表达式Void上下文Var语句Let语句元组解包常量段静态语句和表达式If语句Case语句When语句When nimvm语句Return语句Yield语句Block语句Break语句While语句Continue语句汇编语句Using语句If表达式When表达式Case表达式Block表达式Table构造函数类型转换类型强转addr操作符unsafeAddr操作符 过程 导出标记方法调用语法属性命令调用语法闭包匿名过程函数不可重载的内置Var形参Var返回类型下标操作符重载 多方法迭代器和for语句 隐式items和pairs调用第一类迭代器 转换器Type段异常处理 Try语句Try表达式排除从句Defer语句Raise语句异常层级导入的异常 效应系统 异常跟踪Tag跟踪Effects编译指示 泛型 Is操作符类型类别泛型推导限制泛型符号查找Mixin语句Bind语句 模板 类型化和无类型形参向模板传代码块无类型可变参数模板符号绑定标识符构造模板形参查询规则模板卫生方法调用语法限制 宏 Debug示例BindSymCase-Of宏Macros用作编译指示For循环宏 特殊类型 static[T]typedesc[T]因为迭代器是首选解释,y 的类型为 string : 模块 Include语句导入的模块名从目录中集体导入伪import/include目录From import语句Export语句Import语句 作用域规则编译器消息编译指示 deprecated编译指示noSideEffect编译指示compileTime编译指示noReturn编译指示acyclic编译指示final编译指示shallow编译指示pure编译指示asmNoStackFrame编译指示error编译指示fatal编译指示warning编译指示hint编译指示line编译指示linearScanEnd 编译指示computedGoto编译指示unroll编译指示immediate编译指示编译选项编译指示push和pop编译指示register编译指示global编译指示pragma编译指示禁用某些消息used编译指示experimental编译指示 特定实现的编译指示 Bitsize 编译指示Volatile编译指示NoDecl编译指示Header编译指示IncompleteStruct编译指示Compile编译指示Link编译指示PassC编译指示PassL编译指示Emit编译指示ImportCpp编译指示ImportObjC编译指示CodegenDecl编译指示InjectStmt编译指示编译期定义的编译指示自定义标注 外部函数接口 Importc编译指示Exportc编译指示Extern编译指示Bycopy编译指示Byref编译指示Varargs编译指示Union编译指示Packed编译指示用于导入的Dynlib编译指示用于导出的Dynlib编译指示 线程 Thread编译指示GC安全Threadvar编译指示线程和异常