nitlanguage
/
nit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
src: mass rename project->package
[nit.git]
/
src
/
parser
/
parser_nodes.nit
diff --git
a/src/parser/parser_nodes.nit
b/src/parser/parser_nodes.nit
index
6d7233e
..
5204376
100644
(file)
--- a/
src/parser/parser_nodes.nit
+++ b/
src/parser/parser_nodes.nit
@@
-203,6
+203,7
@@
class ANodes[E: ANode]
private var parent: ANode
private var items = new Array[E]
redef fun iterator do return items.iterator
private var parent: ANode
private var items = new Array[E]
redef fun iterator do return items.iterator
+ redef fun reverse_iterator do return items.reverse_iterator
redef fun length do return items.length
redef fun is_empty do return items.is_empty
redef fun push(e)
redef fun length do return items.length
redef fun is_empty do return items.is_empty
redef fun push(e)
@@
-965,13
+966,8
@@
abstract class TokenLiteral
end
end
end
end
-# A literal decimal integer
-class TNumber
- super TokenLiteral
-end
-
-# A literal hexadecimal integer
-class THexNumber
+# A literal integer
+class TInteger
super TokenLiteral
end
super TokenLiteral
end
@@
-1653,6
+1649,16
@@
class ABraassignMethid
var n_assign: TAssign is writable, noinit
end
var n_assign: TAssign is writable, noinit
end
+# A potentially qualified simple identifier `foo::bar::baz`
+class AQid
+ super Prod
+ # The qualifier, if any
+ var n_qualified: nullable AQualified = null is writable
+
+ # The final identifier
+ var n_id: TId is writable, noinit
+end
+
# A signature in a method definition. eg `(x,y:X,z:Z):T`
class ASignature
super Prod
# A signature in a method definition. eg `(x,y:X,z:Z):T`
class ASignature
super Prod
@@
-2064,15
+2070,22
@@
class ANotExpr
var n_expr: AExpr is writable, noinit
end
var n_expr: AExpr is writable, noinit
end
+# A `==` or a `!=` expression
+#
+# Both have a similar effect on adaptive typing, so this class factorizes the common behavior.
+class AEqFormExpr
+ super ABinopExpr
+end
+
# A `==` expression
class AEqExpr
# A `==` expression
class AEqExpr
- super ABinopExpr
+ super AEqFormExpr
redef fun operator do return "=="
end
# A `!=` expression
class ANeExpr
redef fun operator do return "=="
end
# A `!=` expression
class ANeExpr
- super ABinopExpr
+ super AEqFormExpr
redef fun operator do return "!="
end
redef fun operator do return "!="
end
@@
-2187,7
+2200,7
@@
class AAmpExpr
end
# A unary operation on a method
end
# A unary operation on a method
-class AUnaryopExpr
+abstract class AUnaryopExpr
super ASendExpr
# The operator
super ASendExpr
# The operator
@@
-2226,7
+2239,7
@@
class ANewExpr
var n_type: AType is writable, noinit
# The name of the named-constructor, if any
var n_type: AType is writable, noinit
# The name of the named-constructor, if any
- var n_id: nullable TId = null is writable
+ var n_qid: nullable AQid = null is writable
# The arguments of the `new`
var n_args: AExprs is writable, noinit
# The arguments of the `new`
var n_args: AExprs is writable, noinit
@@
-2260,7
+2273,7
@@
abstract class ACallFormExpr
super ASendExpr
# The name of the method
super ASendExpr
# The name of the method
- var n_id: TId is writable, noinit
+ var n_qid: AQid is writable, noinit
# The arguments of the call
var n_args: AExprs is writable, noinit
# The arguments of the call
var n_args: AExprs is writable, noinit
@@
-2471,24
+2484,11
@@
class ANullExpr
end
# An integer literal
end
# An integer literal
-class AIntExpr
+class AIntegerExpr
super AExpr
super AExpr
-end
-
-# An integer literal in decimal format
-class ADecIntExpr
- super AIntExpr
-
- # The decimal token
- var n_number: TNumber is writable, noinit
-end
-
-# An integer literal in hexadecimal format
-class AHexIntExpr
- super AIntExpr
- # The hexadecimal token
- var n_hex_number: THexNumber is writable, noinit
+ # The integer token
+ var n_integer: TInteger is writable, noinit
end
# A float literal
end
# A float literal
@@
-2811,7
+2811,7
@@
class AModuleName
# The starting quad (`::`)
var n_quad: nullable TQuad = null is writable
# The starting quad (`::`)
var n_quad: nullable TQuad = null is writable
- # The list of quad-separated project/group identifiers
+ # The list of quad-separated package/group identifiers
var n_path = new ANodes[TId](self)
# The final module identifier
var n_path = new ANodes[TId](self)
# The final module identifier
@@
-2847,7
+2847,7
@@
class AQualified
# The starting quad (`::`)
var n_quad: nullable TQuad = null is writable
# The starting quad (`::`)
var n_quad: nullable TQuad = null is writable
- # The list of quad-separated project/group/module identifiers
+ # The list of quad-separated package/group/module identifiers
var n_id = new ANodes[TId](self)
# A class identifier
var n_id = new ANodes[TId](self)
# A class identifier