Jelajahi Sumber

added pos for enum constrs.

Nicolas Cannasse 20 tahun lalu
induk
melakukan
824accea9e
2 mengubah file dengan 4 tambahan dan 4 penghapusan
  1. 1 1
      ast.ml
  2. 3 3
      parser.ml

+ 1 - 1
ast.ml

@@ -181,7 +181,7 @@ type type_param = string * type_param_flag list
 
 type type_def =
 	| EClass of string * type_param list * type_param_flag list * (class_field * pos) list
-	| EEnum of string * type_param list * (string * (string * type_path) list) list
+	| EEnum of string * type_param list * (string * (string * type_path) list * pos) list
 	| EImport of (string list * string)
 
 type type_decl = type_def * pos

+ 3 - 3
parser.ml

@@ -149,10 +149,10 @@ and parse_type_anonymous = parser
 	| [< '(Const (Ident name),_); '(DblDot,_); t = parse_type_path >] -> (name,t)
 
 and parse_enum = parser
-	| [< '(Const (Ident name),_); s >] ->
+	| [< '(Const (Ident name),p); s >] ->
 		match s with parser
-		| [< '(POpen,_); l = psep Comma parse_enum_param; '(PClose,_); _ = semicolon; >] -> (name,l)
-		| [< '(Semicolon,_) >] -> (name,[])
+		| [< '(POpen,_); l = psep Comma parse_enum_param; '(PClose,_); _ = semicolon; >] -> (name,l,p)
+		| [< '(Semicolon,_) >] -> (name,[],p)
 		| [< >] -> serror()
 
 and parse_enum_param = parser