瀏覽代碼

[parser] reserve `operator` and `overload` as keywords

see #7413
Simon Krajewski 7 年之前
父節點
當前提交
5458671684
共有 3 個文件被更改,包括 7 次插入1 次删除
  1. 1 0
      extra/CHANGES.txt
  2. 4 0
      src/core/ast.ml
  3. 2 1
      src/syntax/lexer.ml

+ 1 - 0
extra/CHANGES.txt

@@ -2,6 +2,7 @@ XXXX-XX-XX:
 
 	General improvements and optimizations:
 
+	all : [breaking] reserved `operator` and `overload` as keywords (#7413)
 	all : added support for write-mode `@:op(a.b)`
 	all : made `final` on structure fields invariant (#7039)
 	all : [breaking] disallowed static variables that have no type-hint and expression (#6440)

+ 4 - 0
src/core/ast.ml

@@ -63,6 +63,8 @@ type keyword =
 	| Abstract
 	| Macro
 	| Final
+	| Operator
+	| Overload
 
 type binop =
 	| OpAdd
@@ -430,6 +432,8 @@ let s_keyword = function
 	| Abstract -> "abstract"
 	| Macro -> "macro"
 	| Final -> "final"
+	| Operator -> "operator"
+	| Overload -> "overload"
 
 let rec s_binop = function
 	| OpAdd -> "+"

+ 2 - 1
src/syntax/lexer.ml

@@ -84,7 +84,8 @@ let keywords =
 		Switch;Case;Default;Public;Private;Try;Untyped;
 		Catch;New;This;Throw;Extern;Enum;In;Interface;
 		Cast;Override;Dynamic;Typedef;Package;
-		Inline;Using;Null;True;False;Abstract;Macro;Final];
+		Inline;Using;Null;True;False;Abstract;Macro;Final;
+		Operator;Overload];
 	h
 
 let is_valid_identifier s = try