欢迎吐槽

一、 字面量

1. 数字字面量

0, 0xff, 0b10_01, .1

2. 字符串字面量

'x', "x\n\uffff\Uffffffff", `x{1}y`

3. 布尔和空字面量

true, false, null

4. 数组和对象字面量

[0, 1..8, 2...3, 3..-=1..1]

{x: 0, ...obj}

5. 函数字面量

x => x + 1

<T> (x: T, y) => { }

6. 类型字面量

<Float>0, <RegExp>'\w+', <X>[1, 2]

7. 标识符

x, \x, \0, _

二、 表达式

8. 算数运算表达式

+, -, *, /, mod, ^

9. 比较运算表达式

==, !=, <, >, <=, >=

10. 逻辑运算表达式

&, |, !

11. 空值运算表达式

??, !

12. 赋值运算表达式

=, +=, -=, *=, /=, &=, |=, ??=, ->

13. 更新表达式

++, --

14. 类型操作表达式

as, is, X<Y>

15. this 表达式和 super 表达式

this, super

16. 访问表达式

x.y, x?.y, x[y], x[^1, ^0]

17. 函数和构造函数调用表达式

fn(p: x, y)

new X()

18. 分支表达式

x ? y : z

x match {0 => 1, 1 => 0}

19. 遍历表达式

arr ~ sum

20. 括号表达式

(x)

三、 类型

21. 特殊类型

any, void

22. 数字字面量类型

0, 0xff, 0b10_01, .1

23. 字符串字面量类型

'x', "x\n\uffff\Uffffffff", `x{1}y`

24. 布尔和空字面量类型

true, false, null

25. 数组和对象字面量类型

[X, Y]

{x: X, y: Y}

26. 函数和构造函数字面量类型

(x: X) => Y

new() => X

27. 区间类型

1..10, 2...10

28. 标识符和成员访问类型

X, \X, X.Y, $import("path").X

29. 泛型和数组类型

X<Y>

X[]

30. 双目运算和单目运算类型

&, |, -

31. this 类型

this

32. 条件类型

X is infer T ? T : Y

33. 括号类型

(X)

四、 声明

34. 变量声明

x := 0;

x: number = 0;

35. 访问器声明

get accessor { return 0 }

set accessor { print(value) }

36. 函数声明

function fn<T>(x, y: T, z = 1, ...rest) => 0;

37. 类声明

class X: Y {

field = 0;

    get accessor => 0

    set accessor { field = value; }

new() { }

method<T>(p: T) { }

plus(p) { }

explicit as Z() { }

}

38. 接口声明

interface X { }

39. 枚举声明

enum X { x, y = 1 }

40. 类型别名声明

type X = Y;

41. 扩展声明

extension X { }

42. 模块声明

module X { }

module "name" {}

五、 语句

43. 判断语句

if (x) { }

if (x) { } else { }

44. 循环语句

while (x) { }

45. 跳转语句

break;

continue;

return x;

yield x;

46. 异常语句

try { } catch { } finally { }

throw "Error";

47. 确认语句

assert true;

48. 表达式和空语句

fn();

;

T 语言语法设计(预审稿)的更多相关文章

  1. 2018-02-04 AppleScript类自然语言与非英语语法设计

    最早知晓是之前C#中文版的github讨论里提到了AppleScript有多语言版. 昨天想起, 觉得它毕竟是为数不多(仅有的?)大公司开发的非英语语法的编程语言, 不禁好奇它的前世今生. 于是作了一 ...

  2. L脚本语言语法手冊 0.10版

    L脚本语言语法手冊 0.10版       简  介 L脚本语言是一个轻量级的,旨在接近自然语言的编程语言,眼下支持在中文.英文基础上的编程.并可扩展为随意语种.L脚本语言的语法结构简单.程序结构相对 ...

  3. Go语言语法说明

    Go语言语法说明 go语言中的go func(){}() 表示以并发的方式调用匿名函数func 深入讲解Go语言中函数new与make的使用和区别 前言 本文主要给大家介绍了Go语言中函数new与ma ...

  4. c++学习书籍推荐《C++语言的设计与演化》下载

    百度云及其他网盘下载地址:点我 编辑推荐 <C++语言的设计与演化>由C++语言的设计者Bjarne Stroustrup著就,是一本阐述C++语言的设计及开发过程的无可争辩的内情手册.S ...

  5. PL真有意思(二):程序设计语言语法

    前言 虽然标题是程序语言的语法,但是讲的是对词法和语法的解析,其实关于这个前面那个写编译器系列的描述会更清楚,有关语言语法的部分应该是穿插在整个设计当中的,也看语言设计者的心情了 和英语汉语这些自然语 ...

  6. JavaScript笔记 – 程序语法设计

    一.基础语法设计 JavaScript是可以与HTML标记语言混合.用于网页交互式的解释型脚本语言.由国际标准ECMAScript提供核心语言功能.文档对象模型(DOM)提供访问和操作网页内容的方法和 ...

  7. Neo4j-Cypher语言语法

    Neo4j-Cypher语言语法 梦飞扬 2018-03-15 264 阅读 Neo4j 本文是记录Neo4j图数据库中实用的Cypher语言语法. Cypher是什么 "Cypher&qu ...

  8. 学写PEP,参与Python语言的设计

    如果你为Python写了一篇PEP,这篇PEP成功的被Python指导委员会接受了,那么以后你在吹牛皮的时候你就可以说我主导了Python语言某个特性的设计工作. -- 跬蟒 我就问你主导Python ...

  9. ANTLR 语法设计

    下面学习如何编写语法. 如何定义语法规则 一种语言模式就是一种递归的语法结构. 我们需要从一系列有代表性的输入文件中归纳出一门语言的结构.在完成这样的归纳工作后,我们就可以正式使用ANTLR语法来表达 ...

  10. Go语言语法汇总(转)

    Go语言语法汇总 分类: 技术2013-09-16 14:21 3007人阅读 评论(0) 收藏 举报 go语言golang并发语法   目录(?)[+]   最近看了看GoLang,把Go语言的语法 ...

随机推荐

  1. 80篇国产数据库实操文档汇总(含TiDB、达梦、openGauss等)

    国产数据库发展得如火如荼,数据库的国产化替代也正在进行中.最近,有越来越多的朋友都加入了学习国产数据库的队伍中,本文便选取了墨天轮技术社区的国产数据库流行度排行榜上排名靠前的几个数据库,整理了相关的实 ...

  2. .NET高级调试 - 3.7对象检查

    简介 在大多数调试会话中,首先需要检查的项目就是分析应用程序的状态.在确认程序的问题是某种无效状态造成的,我们便需要分析程序是如何变成无效状态的.那么在分析过程中,需要为我们深入了解对象的各种审查方法 ...

  3. Android复习(二)应用资源——>样式

    样式资源定义界面的格式和外观.样式可应用于单个 View(从布局文件中)或应用于整个 Activity 或应用(从清单文件中). 如需详细了解如何创建和应用样式,请参阅样式和主题. 注意:样式是使用  ...

  4. day08-数据类型拓展及面试题

    数据类型拓展及面试题 整数拓展----进制   //整数拓展----进制         int i=10;//十进制   不能以0开头,0~9         int i1=0b11;//二进制:0 ...

  5. spring注解@PostConstruct

    该注解可以实现在运行工程时,自动运行该注解下的方法: @PostConstruct是java5的时候引入的注解,指的是在项目启动的时候执行这个方法,也可以理解为在spring容器启动的时候执行,可作为 ...

  6. 2023NOIP A层联测25 T2 游戏

    2023NOIP A层联测25 T2 游戏 优秀且新颖的期望题. 思路 分析问题,由于双方都是最优策略,所以可以说学生知道老师会选择那些教室设置概率(概率设置好就不能改变),老师也知道学生会怎样选择教 ...

  7. 网站统计代码v1.0

    var m = {}; var p ={}; var gifUrl = 'http://hm.iwgame.test/v.gif'; (function() { //参数组合类 m = { ck : ...

  8. 在运行期通过反射了解JVM内部机制

    本文由 ImportNew - 黄飞飞 翻译自 takipioncode.欢迎加入Java小组.转载请参见文章末尾的要求. 在日常工作中,我们都习惯直接使用或者通过框架使用反射.在没有反射相关硬编码知 ...

  9. HAR文件

    简介 HAR(HTTP Archive format),是一种或 JSON 格式的存档格式文件,通用扩展名为 .har.Web 浏览器可以使用该格式导出有关其加载的网页的详细性能数据. 使用场景 在开 ...

  10. 时序数据库之InfluxDB

    涉及用户认证: shangmayuan.com/a/1056241c80ef4dfc9cef830d.html