Branch data Line data Source code
1 : : %{
2 : : #include "vector/shumate-vector-expression-type-private.h"
3 : : #define EXACT(c) .expect_exprs = c, .expect_exprs_set = 1
4 : : #define GE(c) .expect_ge_exprs = c, .expect_ge_exprs_set = 1
5 : : #define LE(c) .expect_le_exprs = c, .expect_le_exprs_set = 1
6 : : %}
7 : : struct _ExprInfo
8 : : {
9 : : /* Keep the struct definition in shumate-vector-expression-type-private.h
10 : : in sync! */
11 : :
12 : : const char *name;
13 : : ExprType type;
14 : :
15 : : int expect_exprs;
16 : : int expect_ge_exprs;
17 : : int expect_le_exprs;
18 : :
19 : : gboolean expect_exprs_set : 1;
20 : : gboolean expect_ge_exprs_set : 1;
21 : : gboolean expect_le_exprs_set : 1;
22 : : gboolean lookup_first_arg : 1;
23 : 1227 : };
24 : : %%
25 : 1227 : collator, EXPR_COLLATOR
26 : : format, EXPR_FORMAT
27 : : image, EXPR_IMAGE, EXACT(1)
28 : : literal, EXPR_TYPE_LITERAL, EXACT(1)
29 : : to-boolean, EXPR_TO_BOOLEAN, EXACT(1)
30 : : to-color, EXPR_TO_COLOR, GE(1)
31 : : to-number, EXPR_TO_NUMBER, GE(1)
32 : : to-string, EXPR_TO_STRING, EXACT(1)
33 : : typeof, EXPR_TYPEOF, EXACT(1)
34 : : geometry-type, EXPR_GEOMETRY_TYPE, EXACT(0)
35 : : id, EXPR_ID, EXACT(0)
36 : : at, EXPR_AT, EXACT(2)
37 : : get, EXPR_GET, EXACT(1)
38 : : has, EXPR_HAS, EXACT(1)
39 : : !has, EXPR_NOT_HAS, EXACT(1)
40 : : in, EXPR_IN, GE(1), .lookup_first_arg = TRUE
41 : : !in, EXPR_NOT_IN, GE(1), .lookup_first_arg = TRUE
42 : : index-of, EXPR_INDEX_OF, GE(2), LE(3)
43 : : length, EXPR_LENGTH, EXACT(1)
44 : : slice, EXPR_SLICE, GE(2), LE(3)
45 : : !, EXPR_NOT, EXACT(1)
46 : : !=, EXPR_NE, GE(2), LE(3), .lookup_first_arg = TRUE
47 : : <, EXPR_LT, GE(2), LE(3), .lookup_first_arg = TRUE
48 : : <=, EXPR_LE, GE(2), LE(3), .lookup_first_arg = TRUE
49 : : ==, EXPR_EQ, GE(2), LE(3), .lookup_first_arg = TRUE
50 : : >, EXPR_GT, GE(2), LE(3), .lookup_first_arg = TRUE
51 : : >=, EXPR_GE, GE(2), LE(3), .lookup_first_arg = TRUE
52 : : all, EXPR_ALL
53 : : any, EXPR_ANY
54 : 1227 : none, EXPR_NONE
55 : : case, EXPR_CASE
56 [ + + ]: 1227 : coalesce, EXPR_COALESCE
57 : : match, EXPR_MATCH, GE(2)
58 : 1110 : interpolate, EXPR_INTERPOLATE
59 : 1110 : step, EXPR_STEP
60 : : let, EXPR_LET
61 : 1227 : var, EXPR_VAR
62 : 1227 : concat, EXPR_CONCAT
63 : 1227 : downcase, EXPR_DOWNCASE, EXACT(1)
64 : : resolved-locale, EXPR_RESOLVED_LOCALE
65 : 1227 : upcase, EXPR_UPCASE, EXACT(1)
66 : : -, EXPR_SUB, GE(1), LE(2)
67 : : *, EXPR_MUL, GE(1)
68 : : /, EXPR_DIV, EXACT(2)
69 : 1227 : "%", EXPR_REM, EXACT(2)
70 : : ^, EXPR_POW, EXACT(2)
71 : 1227 : +, EXPR_ADD, GE(1)
72 [ + - ]: 1227 : abs, EXPR_ABS, EXACT(1)
73 : : acos, EXPR_ACOS, EXACT(1)
74 : 1227 : asin, EXPR_ASIN, EXACT(1)
75 : : atan, EXPR_ATAN, EXACT(1)
76 [ + - ]: 1227 : ceil, EXPR_CEIL, EXACT(1)
77 : : cos, EXPR_COS, EXACT(1)
78 : 1227 : e, EXPR_E, EXACT(0)
79 : : floor, EXPR_FLOOR, EXACT(1)
80 [ + + + - ]: 1227 : ln, EXPR_LN, EXACT(1)
81 : 1224 : ln2, EXPR_LN2, EXACT(0)
82 : : log10, EXPR_LOG10, EXACT(1)
83 : : log2, EXPR_LOG2, EXACT(1)
84 : : max, EXPR_MAX, GE(1)
85 : : min, EXPR_MIN, GE(1)
86 : : pi, EXPR_PI, EXACT(0)
87 : : round, EXPR_ROUND, EXACT(1)
88 : : sin, EXPR_SIN, EXACT(1)
89 : : sqrt, EXPR_SQRT, EXACT(1)
90 : : tan, EXPR_TAN, EXACT(1)
91 : : zoom, EXPR_ZOOM
|