Lines Matching refs:left
98 const Token& left,
101 const Value* old_value = scope->GetValue(left.value(), false);
103 if (scope->IsSetButUnused(left.value())) {
110 *err = Err(op_node->left()->GetRange(), "Overwriting unused variable.",
112 left.value().as_string() + "\" that had no effect.");
113 err->AppendSubErr(Err(*scope->GetValue(left.value()),
128 *err = Err(op_node->left()->GetRange(), "Replacing nonempty list.",
138 left.value().as_string() + " = []\nbefore reassigning."));
146 if (right.type() == Value::LIST && left.value() == kSourcesName) {
150 Value* set_value = scope->SetValue(left.value(),
156 scope->SetValue(left.value(), right, op_node->right());
162 // left value. This is set to true when doing +, and false when doing +=.
166 Value* left,
170 switch (left->type()) {
171 // Left-hand-side int.
175 left->int_value() += right.int_value();
180 *left = Value(op_node,
181 base::Int64ToString(left->int_value()) + right.string_value());
191 // Left-hand-side string.
195 left->string_value().append(base::Int64ToString(right.int_value()));
199 left->string_value().append(right.string_value());
207 // Left-hand-side list.
213 AppendFilteredSourcesToValue(scope, right, left);
215 left->list_value().push_back(right);
221 AppendFilteredSourcesToValue(scope, right, left);
225 left->list_value().push_back(right.list_value()[i]);
238 std::string("I see a ") + Value::DescribeType(left->type()) + " and a " +
244 const Token& left,
250 scope->GetValueForcedToCurrentScope(left.value(), op_node);
252 *err = Err(left, "Undefined variable for +=.",
256 ValuePlusEquals(scope, op_node, left, left_value, right, false, err);
258 scope->MarkUnused(left.value());
263 Value* left,
267 switch (left->type()) {
268 // Left-hand-side int.
272 left->int_value() -= right.int_value();
280 // Left-hand-side string.
284 // Left-hand-side list.
286 RemoveMatchesFromList(op_node, left, right, err);
294 std::string("I see a ") + Value::DescribeType(left->type()) + " and a " +
300 const Token& left,
304 scope->GetValueForcedToCurrentScope(left.value(), op_node);
306 *err = Err(left, "Undefined variable for -=.",
312 scope->MarkUnused(left.value());
320 const Value& left,
323 Value ret = left;
331 const Value& left,
334 Value ret = left;
344 const Value& left,
347 if (left == right)
354 const Value& left,
358 Value result = ExecuteEqualsEquals(scope, op_node, left, right, err);
364 const Value& left,
369 err->AppendRange(left.origin()->GetRange());
376 const Value& left,
379 if (left.type() != Value::INTEGER || right.type() != Value::INTEGER)
380 return FillNeedsTwoIntegersError(op_node, left, right, err);
381 return Value(op_node, left.int_value() <= right.int_value());
386 const Value& left,
389 if (left.type() != Value::INTEGER || right.type() != Value::INTEGER)
390 return FillNeedsTwoIntegersError(op_node, left, right, err);
391 return Value(op_node, left.int_value() >= right.int_value());
396 const Value& left,
399 if (left.type() != Value::INTEGER || right.type() != Value::INTEGER)
400 return FillNeedsTwoIntegersError(op_node, left, right, err);
401 return Value(op_node, left.int_value() > right.int_value());
406 const Value& left,
409 if (left.type() != Value::INTEGER || right.type() != Value::INTEGER)
410 return FillNeedsTwoIntegersError(op_node, left, right, err);
411 return Value(op_node, left.int_value() < right.int_value());
418 const Value& left,
421 if (left.type() != Value::BOOLEAN) {
422 *err = Err(left, "Left side of || operator is not a boolean.");
428 return Value(op_node, left.boolean_value() || right.boolean_value());
433 const Value& left,
436 if (left.type() != Value::BOOLEAN) {
437 *err = Err(left, "Left side of && operator is not a boolean.");
443 return Value(op_node, left.boolean_value() && right.boolean_value());
503 const ParseNode* left,
512 const IdentifierNode* left_id = left->AsIdentifier();
515 "This thing on the left is not an idenfitier.");
516 err->AppendRange(left->GetRange());
541 // Left value.
542 Value left_value = left->Execute(scope, err);
547 "This thing on the left does not evaluate to a value.");
548 err->AppendRange(left->GetRange());
553 // version since in this case we want to execute the left side first.