feat: replace 'this' keyword with 'construct' for constructor definitions across core lib, compiler, docs, and tests

Add TOKEN_CONSTRUCT as a new reserved word in the Wren compiler lexer and parser, and update the grammar rule table so that 'construct' triggers a constructor signature instead of 'this'. Modify all built-in class definitions in core.wren, wren_core.c, benchmark files, and test fixtures to use 'construct new(...)' and 'construct named(...)' syntax. Update documentation in classes.markdown and syntax.markdown to reflect the new keyword, and remove the deprecated test files for 'new' and infix class expressions.
This commit is contained in:
Bob Nystrom
2015-07-21 14:24:53 +00:00
parent 847edd8e1e
commit 7d9e45e906
31 changed files with 68 additions and 81 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
// Ported from the Python version.
class Tree {
this new(item, depth) {
construct new(item, depth) {
_item = item
if (depth > 0) {
var item2 = item + item
+11 -11
View File
@@ -50,7 +50,7 @@ var ORDERED = null
// disrupting current constraints. Strengths cannot be created outside
// this class, so == can be used for value comparison.
class Strength {
this new(value, name) {
construct new(value, name) {
_value = value
_name = name
}
@@ -82,7 +82,7 @@ ORDERED = [
var ThePlanner
class Constraint {
this new(strength) {
construct new(strength) {
_strength = strength
}
@@ -131,7 +131,7 @@ class Constraint {
// Abstract superclass for constraints having a single possible output variable.
class UnaryConstraint is Constraint {
this new(myOutput, strength) {
construct new(myOutput, strength) {
super(strength)
_satisfied = false
_myOutput = myOutput
@@ -187,7 +187,7 @@ class UnaryConstraint is Constraint {
// change their output during plan execution. This is called "stay
// optimization".
class StayConstraint is UnaryConstraint {
this new(variable, strength) {
construct new(variable, strength) {
super(variable, strength)
}
@@ -199,7 +199,7 @@ class StayConstraint is UnaryConstraint {
// A unary input constraint used to mark a variable that the client
// wishes to change.
class EditConstraint is UnaryConstraint {
this new(variable, strength) {
construct new(variable, strength) {
super(variable, strength)
}
@@ -219,7 +219,7 @@ var BACKWARD = 0
// Abstract superclass for constraints having two possible output
// variables.
class BinaryConstraint is Constraint {
this new(v1, v2, strength) {
construct new(v1, v2, strength) {
super(strength)
_v1 = v1
_v2 = v2
@@ -328,7 +328,7 @@ class BinaryConstraint is Constraint {
// this relationship but the scale factor and offset are considered
// read-only.
class ScaleConstraint is BinaryConstraint {
this new(src, scale, offset, dest, strength) {
construct new(src, scale, offset, dest, strength) {
_scale = scale
_offset = offset
super(src, dest, strength)
@@ -376,7 +376,7 @@ class ScaleConstraint is BinaryConstraint {
// Constrains two variables to have the same value.
class EqualityConstraint is BinaryConstraint {
this new(v1, v2, strength) {
construct new(v1, v2, strength) {
super(v1, v2, strength)
}
@@ -391,7 +391,7 @@ class EqualityConstraint is BinaryConstraint {
// various parameters of interest to the DeltaBlue incremental
// constraint solver.
class Variable {
this new(name, value) {
construct new(name, value) {
_constraints = []
_determinedBy = null
_mark = 0
@@ -430,7 +430,7 @@ class Variable {
// to resatisfy all currently satisfiable constraints in the face of
// one or more changing inputs.
class Plan {
this new() {
construct new() {
_list = []
}
@@ -448,7 +448,7 @@ class Plan {
}
class Planner {
this new() {
construct new() {
_currentMark = 0
}
+2 -2
View File
@@ -1,5 +1,5 @@
class Toggle {
this new(startState) {
construct new(startState) {
_state = startState
}
@@ -11,7 +11,7 @@ class Toggle {
}
class NthToggle is Toggle {
this new(startState, maxCounter) {
construct new(startState, maxCounter) {
super(startState)
_countMax = maxCounter
_count = 0