literal: promote `as_X` from annotation
authorJean Privat <jean@pryen.org>
Thu, 18 Dec 2014 20:00:23 +0000 (15:00 -0500)
committerJean Privat <jean@pryen.org>
Thu, 18 Dec 2014 21:28:11 +0000 (16:28 -0500)
Signed-off-by: Jean Privat <jean@pryen.org>

src/annotation.nit
src/literal.nit

index af63ad3..f5d2447 100644 (file)
@@ -16,7 +16,7 @@
 module annotation
 
 import modelbuilder
-private import literal
+import literal
 import model::mmodule_data
 
 redef class Prod
@@ -100,37 +100,6 @@ redef class AAnnotation
        end
 end
 
-redef class AExpr
-       # Get `self` as a `String`.
-       # Return null if not a string.
-       fun as_string: nullable String
-       do
-               if not self isa AStringFormExpr then return null
-               return self.value.as(not null)
-       end
-
-       # Get `self` as an `Int`.
-       # Return null if not an integer.
-       fun as_int: nullable Int
-       do
-               if not self isa AIntExpr then return null
-               return self.value.as(not null)
-       end
-
-       # Get `self` as a single identifier.
-       # Return null if not a single identifier.
-       fun as_id: nullable String
-       do
-               if self isa AMethidExpr then
-                       return self.collect_text
-               end
-               if not self isa ACallExpr then return null
-               if not self.n_expr isa AImplicitSelfExpr then return null
-               if not self.n_args.n_exprs.is_empty then return null
-               return self.n_id.text
-       end
-end
-
 redef class ModelBuilder
        # Collect all annotations by `name` assocated to `mmodule` and its imported modules.
        # Note that visibility is not considered.
index e39409f..5af1808 100644 (file)
@@ -55,6 +55,38 @@ redef class ANode
        private fun accept_literal(v: LiteralVisitor) do end
 end
 
+redef class AExpr
+       # Get `self` as a `String`.
+       # Return null if not a string.
+       fun as_string: nullable String
+       do
+               if not self isa AStringFormExpr then return null
+               return self.value.as(not null)
+       end
+
+       # Get `self` as an `Int`.
+       # Return null if not an integer.
+       fun as_int: nullable Int
+       do
+               if not self isa AIntExpr then return null
+               return self.value.as(not null)
+       end
+
+       # Get `self` as a single identifier.
+       # Return null if not a single identifier.
+       fun as_id: nullable String
+       do
+               if self isa AMethidExpr then
+                       return self.collect_text
+               end
+               if not self isa ACallExpr then return null
+               if not self.n_expr isa AImplicitSelfExpr then return null
+               if not self.n_args.n_exprs.is_empty then return null
+               return self.n_id.text
+       end
+end
+
+
 redef class AIntExpr
        # The value of the literal int once computed.
        var value: nullable Int