From: Jean Privat Date: Wed, 20 May 2009 21:06:00 +0000 (-0500) Subject: parser: differentiate all P* and A* production classes X-Git-Tag: v0.3~129 X-Git-Url: http://nitlanguage.org parser: differentiate all P* and A* production classes Signed-off-by: Jean Privat --- diff --git a/src/nitdoc.nit b/src/nitdoc.nit index b407967..b6f8bef 100644 --- a/src/nitdoc.nit +++ b/src/nitdoc.nit @@ -1074,10 +1074,10 @@ redef class MMSrcLocalClass redef fun doc do var n = node - if not n isa AClassdef then + if not n isa AStdClassdef then return null end - assert n isa AClassdef + assert n isa AStdClassdef var d = n.n_doc if d == null then return null diff --git a/src/parser/nit.sablecc3xx b/src/parser/nit.sablecc3xx index f79a6b1..afa1ac2 100644 --- a/src/parser/nit.sablecc3xx +++ b/src/parser/nit.sablecc3xx @@ -164,7 +164,7 @@ packagedecl = [doc]:no kwpackage no id [n2]:n1 {-> New packagedecl(doc.doc, kwpackage, id)}; import - = [doc]:no visibility kwimport no id [n2]:n1 {-> New import(visibility, kwimport, id)} + = {std} [doc]:no visibility kwimport no id [n2]:n1 {-> New import.std(visibility, kwimport, id)} | {no} [doc]:no visibility kwimport no kwend [n2]:n1 {-> New import.no(visibility, kwimport, kwend)} ; @@ -180,7 +180,7 @@ implicit_main_meth {-> propdef} /* CLASSES *******************************************************************/ classdef - = [doc]:no redef visibility classkind no classid formaldefs? [specials]:special* propdefs? [n2]:no kwend {-> New classdef(doc.doc, redef.kwredef, visibility, classkind, classid, [formaldefs.formaldef], [specials.superclass], [propdefs.propdef])}; + = [doc]:no redef visibility classkind no classid formaldefs? [specials]:special* propdefs? [n2]:no kwend {-> New classdef.std(doc.doc, redef.kwredef, visibility, classkind, classid, [formaldefs.formaldef], [specials.superclass], [propdefs.propdef])}; redef {-> kwredef?} = kwredef? {-> kwredef}; classkind @@ -536,7 +536,7 @@ module = packagedecl? [imports]:import* [classdefs]:classdef*; packagedecl = doc? kwpackage id; -import = visibility kwimport id +import = {std} visibility kwimport id | {no} visibility kwimport kwend ; @@ -547,7 +547,7 @@ visibility | {intrude} kwintrude ; -classdef = doc? kwredef? visibility classkind [id]:classid? [formaldefs]:formaldef* [superclasses]:superclass* [propdefs]:propdef* +classdef= {std} doc? kwredef? visibility classkind [id]:classid? [formaldefs]:formaldef* [superclasses]:superclass* [propdefs]:propdef* | {top} [propdefs]:propdef* | {main} [propdefs]:propdef* ; diff --git a/src/parser/parser.nit b/src/parser/parser.nit index 023c76e..131eba1 100644 --- a/src/parser/parser.nit +++ b/src/parser/parser.nit @@ -142,7 +142,7 @@ special ParserTable var node1 = pop assert node1 isa PModule var node = new Start(node1, node2) - (new SearchTokensVisitor).visit(node) + (new SearchTokensVisitor).enter_visit(node) return node else if action_type == 3 then # ERROR var location = new Location(lexer.filename, last_line, last_line, last_pos, last_pos) @@ -3110,7 +3110,7 @@ special ReduceAction assert tkwimportnode3 isa nullable TKwimport var tidnode4 = nodearraylist5 assert tidnode4 isa nullable TId - var pimportnode1: nullable AImport = new AImport.init_aimport( + var pimportnode1: nullable AStdImport = new AStdImport.init_astdimport( pvisibilitynode2, tkwimportnode3, tidnode4 @@ -3263,7 +3263,7 @@ special ReduceAction assert pclasskindnode5 isa nullable PClasskind var tclassidnode6 = nodearraylist5 assert tclassidnode6 isa nullable TClassid - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, null, pvisibilitynode4, @@ -3304,7 +3304,7 @@ special ReduceAction assert pclasskindnode5 isa nullable PClasskind var tclassidnode6 = nodearraylist6 assert tclassidnode6 isa nullable TClassid - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, tkwredefnode3, pvisibilitynode4, @@ -3352,7 +3352,7 @@ special ReduceAction listnode8.append(listnode7) end # end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, null, pvisibilitynode4, @@ -3403,7 +3403,7 @@ special ReduceAction listnode8.append(listnode7) end # end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, tkwredefnode3, pvisibilitynode4, @@ -3451,7 +3451,7 @@ special ReduceAction listnode9.append(listnode8) end # end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, null, pvisibilitynode4, @@ -3502,7 +3502,7 @@ special ReduceAction listnode9.append(listnode8) end # end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, tkwredefnode3, pvisibilitynode4, @@ -3560,7 +3560,7 @@ special ReduceAction listnode10.append(listnode9) end # end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, null, pvisibilitynode4, @@ -3621,7 +3621,7 @@ special ReduceAction listnode10.append(listnode9) end # end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, tkwredefnode3, pvisibilitynode4, @@ -3666,7 +3666,7 @@ special ReduceAction if ppropdefnode9 != null then listnode10.add(ppropdefnode9) end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, null, pvisibilitynode4, @@ -3721,7 +3721,7 @@ special ReduceAction listnode11.append(listnode10) end # end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, null, pvisibilitynode4, @@ -3769,7 +3769,7 @@ special ReduceAction if ppropdefnode9 != null then listnode10.add(ppropdefnode9) end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, tkwredefnode3, pvisibilitynode4, @@ -3827,7 +3827,7 @@ special ReduceAction listnode11.append(listnode10) end # end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, tkwredefnode3, pvisibilitynode4, @@ -3882,7 +3882,7 @@ special ReduceAction if ppropdefnode10 != null then listnode11.add(ppropdefnode10) end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, null, pvisibilitynode4, @@ -3947,7 +3947,7 @@ special ReduceAction listnode12.append(listnode11) end # end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, null, pvisibilitynode4, @@ -4005,7 +4005,7 @@ special ReduceAction if ppropdefnode10 != null then listnode11.add(ppropdefnode10) end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, tkwredefnode3, pvisibilitynode4, @@ -4073,7 +4073,7 @@ special ReduceAction listnode12.append(listnode11) end # end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, tkwredefnode3, pvisibilitynode4, @@ -4128,7 +4128,7 @@ special ReduceAction if ppropdefnode10 != null then listnode11.add(ppropdefnode10) end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, null, pvisibilitynode4, @@ -4193,7 +4193,7 @@ special ReduceAction listnode12.append(listnode11) end # end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, null, pvisibilitynode4, @@ -4251,7 +4251,7 @@ special ReduceAction if ppropdefnode10 != null then listnode11.add(ppropdefnode10) end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, tkwredefnode3, pvisibilitynode4, @@ -4319,7 +4319,7 @@ special ReduceAction listnode12.append(listnode11) end # end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, tkwredefnode3, pvisibilitynode4, @@ -4384,7 +4384,7 @@ special ReduceAction if ppropdefnode11 != null then listnode12.add(ppropdefnode11) end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, null, pvisibilitynode4, @@ -4459,7 +4459,7 @@ special ReduceAction listnode13.append(listnode12) end # end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, null, pvisibilitynode4, @@ -4527,7 +4527,7 @@ special ReduceAction if ppropdefnode11 != null then listnode12.add(ppropdefnode11) end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, tkwredefnode3, pvisibilitynode4, @@ -4605,7 +4605,7 @@ special ReduceAction listnode13.append(listnode12) end # end - var pclassdefnode1: nullable AClassdef = new AClassdef.init_aclassdef( + var pclassdefnode1: nullable AStdClassdef = new AStdClassdef.init_astdclassdef( pdocnode2, tkwredefnode3, pvisibilitynode4, diff --git a/src/parser/parser_abs.nit b/src/parser/parser_abs.nit index e3d23a4..e7326a3 100644 --- a/src/parser/parser_abs.nit +++ b/src/parser/parser_abs.nit @@ -319,7 +319,7 @@ special PPackagedecl readable writable var _n_kwpackage: TKwpackage readable writable var _n_id: TId end -class AImport +class AStdImport special PImport readable writable var _n_visibility: PVisibility readable writable var _n_kwimport: TKwimport @@ -346,7 +346,7 @@ class AIntrudeVisibility special PVisibility readable writable var _n_kwintrude: TKwintrude end -class AClassdef +class AStdClassdef special PClassdef readable writable var _n_doc: nullable PDoc = null readable writable var _n_kwredef: nullable TKwredef = null diff --git a/src/parser/parser_nodes.nit b/src/parser/parser_nodes.nit index 9b7fc6e..87ba1fa 100644 --- a/src/parser/parser_nodes.nit +++ b/src/parser/parser_nodes.nit @@ -327,7 +327,7 @@ special PPackagedecl readable writable var _n_kwpackage: TKwpackage readable writable var _n_id: TId end -class AImport +class AStdImport special PImport readable writable var _n_visibility: PVisibility readable writable var _n_kwimport: TKwimport @@ -354,7 +354,7 @@ class AIntrudeVisibility special PVisibility readable writable var _n_kwintrude: TKwintrude end -class AClassdef +class AStdClassdef special PClassdef readable writable var _n_doc: nullable PDoc = null readable writable var _n_kwredef: nullable TKwredef = null diff --git a/src/parser/parser_prod.nit b/src/parser/parser_prod.nit index d6b9606..49ee7f8 100644 --- a/src/parser/parser_prod.nit +++ b/src/parser/parser_prod.nit @@ -285,7 +285,7 @@ redef class APackagedecl v.enter_visit(_n_id) end end -redef class AImport +redef class AStdImport redef fun n_visibility=(n) do _n_visibility = n @@ -304,7 +304,7 @@ redef class AImport private init empty_init do end - init init_aimport ( + init init_astdimport ( n_visibility: nullable PVisibility , n_kwimport: nullable TKwimport , n_id: nullable TId @@ -596,7 +596,7 @@ redef class AIntrudeVisibility v.enter_visit(_n_kwintrude) end end -redef class AClassdef +redef class AStdClassdef redef fun n_doc=(n) do _n_doc = n @@ -631,7 +631,7 @@ redef class AClassdef private init empty_init do end - init init_aclassdef ( + init init_astdclassdef ( n_doc: nullable PDoc , n_kwredef: nullable TKwredef , n_visibility: nullable PVisibility , diff --git a/src/syntax/mmbuilder.nit b/src/syntax/mmbuilder.nit index a1b178a..38dcb8e 100644 --- a/src/syntax/mmbuilder.nit +++ b/src/syntax/mmbuilder.nit @@ -485,7 +485,7 @@ redef class PImport # Visibility level (intrude/public/private) fun visibility_level: Int is abstract end -redef class AImport +redef class AStdImport redef fun module_name do return n_id.to_symbol @@ -540,7 +540,7 @@ redef class PClassdef var local_classes = mod.src_local_classes if (local_classes.has_key(name)) then local_class = local_classes[name] - if self isa AClassdef then + if self isa AStdClassdef then # If we are not a special implicit class then rant v.error(self, "Error: A class {name} is already defined at line {local_class.node.location.line_start}.") return @@ -594,7 +594,7 @@ redef class AAbstractClasskind redef fun is_abstract do return true end -redef class AClassdef +redef class AStdClassdef redef fun name do return n_id.to_symbol