Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/pkg/river/parser/testdata/valid/expressions.river
4096 views
// Literals
lit_number = 10
lit_float  = 15.0
lit_string = "Hello, world!"
lit_ident  = other_ident
lit_null   = null
lit_true   = true
lit_false  = false

//  Arrays
array_expr_empty       = []
array_expr_one_element = [0]
array_expr             = [0, 1, 2, 3]
array_expr_trailing    = [0, 1, 2, 3,]
array_expr_multiline   = [
  0,
  1,
  2,
  3,
]
array_expr_nested      = [[1]]

// Objects
object_expr_empty     = {}
object_expr_one_field = { field_a = 1 }
object_expr           = { field_a = 1, field_b = 2 }
object_expr_trailing  = { field_a = 1, field_b = 2, }
object_expr_multiline = {
 field_a = 1,
 field_b = 2,
}
object_expr_nested    = { field_a = { nested_field_a = 1 } }

// Unary ops
not_something = !true
neg_number    = -5

// Math binops
binop_sum = 1 + 2
binop_sub = 1 - 2
binop_mul = 1 * 2
binop_div = 1 / 2
binop_mod = 1 % 2
binop_pow = 1 ^ 2 ^ 3

// Compare binops
binop_eq  = 1 == 2
binop_neq = 1 != 2
binop_lt  = 1 <  2
binop_lte = 1 <= 2
binop_gt  = 1 >  2
binop_gte = 1 >= 2

// Logical binops
binop_or  = true || false
binop_and = true && false


// Mixed math operations
math        = 1 + 2 - 3 * 4 / 5 % 6
compare_ops = 1 == 2 != 3 < 4 > 5 <= 6 >= 7
logical_ops = true || false && true
mixed_assoc = 1 * 3 + 5 ^ 3 - 2 % 1  // Test with both left- and right- associative operators
expr_parens = (5 * 2) + 5

// Accessors
field_access = a.b.c.d
element_access = a[0][1][2]

// Function calls
call_no_args = a()
call_one_arg = a(1)
call_multiple_args = a(1,2,3)
call_trailing_comma = a(1,2,3,)
call_multiline = a(
  1,
  2,
  3,
)

mixed_expr = (a.b.c)(1, 3 * some_list[magic_index * 2]).resulting_field