CodeQL library for Ruby
codeql/ruby-all 0.8.15-dev (changelog, source)
Search

Module Operation

Import path

import codeql.ruby.ast.Operation

Classes

AddExpr

An add expression. rb x + 1

AddExprRoot

A series of add expressions, e.g. 1 + 2 + 3. This class is used to represent the root of such a series, and the getALeaf predicate can be used to get the leaf nodes.

AssignAddExpr

A += assignment expression. rb x += 1

AssignArithmeticOperation

An arithmetic assignment operation: +=, -=, *=, /=, **=, and %=.

AssignBitwiseAndExpr

A bitwise AND assignment operation. rb x &= 0xff

AssignBitwiseOperation

A bitwise assignment operation: <<=, >>=, &=, |= and ^=.

AssignBitwiseOrExpr

A bitwise OR assignment operation. rb x |= 0x01

AssignBitwiseXorExpr

An XOR (exclusive OR) assignment operation. rb x ^= y

AssignDivExpr

A /= assignment expression. rb x /= y

AssignExponentExpr

A **= assignment expression. rb x **= 2

AssignExpr

An assignment operation with the operator =. rb x = 123

AssignLShiftExpr

A left-shift assignment operation. rb x <<= 3

AssignLogicalAndExpr

A logical AND assignment operation. rb x &&= y.even?

AssignLogicalOperation

A logical assignment operation: &&= and ||=.

AssignLogicalOrExpr

A logical OR assignment operation. rb x ||= y

AssignModuloExpr

A %= assignment expression. rb x %= 4

AssignMulExpr

A *= assignment expression. rb x *= 10

AssignOperation

A binary assignment operation other than =.

AssignRShiftExpr

A right-shift assignment operation. rb x >>= 3

AssignSubExpr

A -= assignment expression. rb x -= 3

Assignment

A binary assignment operation, including =, +=, &=, etc.

BinaryArithmeticOperation

A binary arithmetic operation.

BinaryBitwiseOperation

A binary bitwise operation.

BinaryLogicalOperation

A binary logical operation.

BinaryOperation

A binary operation.

BitwiseAndExpr

A bitwise AND operation. rb x & 0xff

BitwiseOrExpr

A bitwise OR operation. rb x | 0x01

BitwiseXorExpr

An XOR (exclusive OR) operation. rb x ^ y

CaseEqExpr

A case-equality (or ‘threequals’) expression. rb String === "foo"

ComparisonOperation

A comparison operation. That is, either an equality operation or a relational operation.

ComplementExpr

A complement (bitwise NOT) expression. rb ~x

DefinedExpr

A call to the special defined? operator. rb defined? some_method

DivExpr

A divide expression. rb x / y

EqExpr

An equals expression. rb x == y

EqualityOperation

An equality operation.

ExponentExpr

An exponent expression. rb x ** 2

GEExpr

A greater-than-or-equal expression. rb x >= 0

GTExpr

A greater-than expression. rb x > 0

HashSplatExpr

A hash-splat (or ‘double-splat’) expression. rb foo(**options)

LEExpr

A less-than-or-equal expression. rb x <= 10

LShiftExpr

A left-shift operation. rb x << n

LTExpr

A less-than expression. rb x < 10

LogicalAndExpr

A logical AND operation, using either and or &&. rb x and y a && b

LogicalOrExpr

A logical OR operation, using either or or ||. rb x or y a || b

ModuloExpr

A modulo expression. rb x % 2

MulExpr

A multiply expression. rb x * 10

NEExpr

A not-equals expression. rb x != y

NoRegExpMatchExpr

A regexp-doesn’t-match expression. rb input !~ /\d/

NotExpr

A logical NOT operation, using either ! or not. rb !x.nil? not params.empty?

Operation

An operation.

RShiftExpr

A right-shift operation. rb x >> n

RegExpMatchExpr

A regexp match expression. rb input =~ /\d/

RelationalOperation

A relational operation, that is, one of <=, <, >, or >=.

SpaceshipExpr

A three-way comparison (‘spaceship’) expression. rb a <=> b

SplatExpr

A splat expression. rb foo(*args)

SubExpr

A subtract expression. rb x - 3

UnaryArithmeticOperation

A unary arithmetic operation.

UnaryBitwiseOperation

A unary bitwise operation.

UnaryLogicalOperation

A unary logical operation.

UnaryMinusExpr

A unary minus expression. rb - a

UnaryOperation

A unary operation.

UnaryPlusExpr

A unary plus expression. rb + a