=====================================
Ellipsis in relations
=====================================

model
schema 1.1

type document
  relations
    define reader: [user]
    ...

---

(source_file
  (model
    (schema (version)))
  (type_declaration
    (identifier)
    (relations
      (definition
        relation: (identifier)
        (relation_def
          (direct_relationship
            (identifier))))
      (semgrep_ellipsis))))

=====================================
Ellipsis between type declarations
=====================================

model
schema 1.1

type user

...

type document
  relations
    define reader: [user]

---

(source_file
  (model
    (schema (version)))
  (type_declaration (identifier))
  (semgrep_ellipsis)
  (type_declaration
    (identifier)
    (relations
      (definition
        relation: (identifier)
        (relation_def
          (direct_relationship
            (identifier)))))))

=====================================
Metavariable as type name
=====================================

model
schema 1.1

type $TYPE
  relations
    define reader: [user]

---

(source_file
  (model
    (schema (version)))
  (type_declaration
    (semgrep_metavariable)
    (relations
      (definition
        relation: (identifier)
        (relation_def
          (direct_relationship
            (identifier)))))))

=====================================
Metavariable as relation name
=====================================

model
schema 1.1

type document
  relations
    define $RELATION: [user]

---

(source_file
  (model
    (schema (version)))
  (type_declaration
    (identifier)
    (relations
      (definition
        relation: (semgrep_metavariable)
        (relation_def
          (direct_relationship
            (identifier)))))))

=====================================
Ellipsis in direct relationship list
=====================================

model
schema 1.1

type document
  relations
    define reader: [...]

---

(source_file
  (model
    (schema (version)))
  (type_declaration
    (identifier)
    (relations
      (definition
        relation: (identifier)
        (relation_def
          (direct_relationship
            (semgrep_ellipsis)))))))

=====================================
Ellipsis in condition expression
=====================================

model
schema 1.1

condition is_valid(x: int) {
  ...
}

---

(source_file
  (model
    (schema (version)))
  (condition_declaration
    name: (identifier)
    (param (identifier) (type_identifier))
    body: (condition_body
      (semgrep_ellipsis))))

=====================================
Metavariable in expression
=====================================

model
schema 1.1

condition check(x: int) {
  x > $VALUE
}

---

(source_file
  (model
    (schema (version)))
  (condition_declaration
    name: (identifier)
    (param
      (identifier)
      (type_identifier))
    body: (condition_body
      (binary_expression
        left: (identifier)
        right: (semgrep_metavariable)))))

=====================================
Metavariable in condition parameters
=====================================

model
schema 1.1

condition check($VAR: $TYPE) {
  $VAR > some_value
}

---

(source_file
  (model
    (schema (version)))
  (condition_declaration
    name: (identifier)
    (param
      (semgrep_metavariable)
      (semgrep_metavariable))
    body: (condition_body
      (binary_expression
        left: (semgrep_metavariable)
        right: (identifier)))))