>#if false and true {}
#^ source.typst keyword.control.hash.typst
# ^^ source.typst meta.expr.if.typst keyword.control.conditional.typst
#   ^ source.typst meta.expr.if.typst
#    ^^^^^ source.typst meta.expr.if.typst constant.language.boolean.typst
#         ^ source.typst meta.expr.if.typst
#          ^^^ source.typst meta.expr.if.typst keyword.other.logical.typst
#             ^ source.typst meta.expr.if.typst
#              ^^^^ source.typst meta.expr.if.typst constant.language.boolean.typst
#                  ^ source.typst meta.expr.if.typst
#                   ^ source.typst meta.expr.if.typst meta.brace.curly.typst
#                    ^ source.typst meta.expr.if.typst meta.brace.curly.typst
>#if not false {}
#^ source.typst keyword.control.hash.typst
# ^^ source.typst meta.expr.if.typst keyword.control.conditional.typst
#   ^ source.typst meta.expr.if.typst
#    ^^^ source.typst meta.expr.if.typst keyword.other.logical.typst
#       ^ source.typst meta.expr.if.typst
#        ^^^^^ source.typst meta.expr.if.typst constant.language.boolean.typst
#             ^ source.typst meta.expr.if.typst
#              ^ source.typst meta.expr.if.typst meta.brace.curly.typst
#               ^ source.typst meta.expr.if.typst meta.brace.curly.typst
>#if 1 + 2 != 1 {}
#^ source.typst keyword.control.hash.typst
# ^^ source.typst meta.expr.if.typst keyword.control.conditional.typst
#   ^ source.typst meta.expr.if.typst
#    ^ source.typst meta.expr.if.typst constant.numeric.integer.typst
#     ^ source.typst meta.expr.if.typst
#      ^ source.typst meta.expr.if.typst keyword.operator.arithmetic.typst
#       ^ source.typst meta.expr.if.typst
#        ^ source.typst meta.expr.if.typst constant.numeric.integer.typst
#         ^ source.typst meta.expr.if.typst
#          ^^ source.typst meta.expr.if.typst keyword.operator.relational.typst
#            ^ source.typst meta.expr.if.typst
#             ^ source.typst meta.expr.if.typst constant.numeric.integer.typst
#              ^ source.typst meta.expr.if.typst
#               ^ source.typst meta.expr.if.typst meta.brace.curly.typst
#                ^ source.typst meta.expr.if.typst meta.brace.curly.typst
>#if false and true {} else if false and true {}
#^ source.typst keyword.control.hash.typst
# ^^ source.typst meta.expr.if.typst keyword.control.conditional.typst
#   ^ source.typst meta.expr.if.typst
#    ^^^^^ source.typst meta.expr.if.typst constant.language.boolean.typst
#         ^ source.typst meta.expr.if.typst
#          ^^^ source.typst meta.expr.if.typst keyword.other.logical.typst
#             ^ source.typst meta.expr.if.typst
#              ^^^^ source.typst meta.expr.if.typst constant.language.boolean.typst
#                  ^ source.typst meta.expr.if.typst
#                   ^ source.typst meta.expr.if.typst meta.brace.curly.typst
#                    ^ source.typst meta.expr.if.typst meta.brace.curly.typst
#                     ^ source.typst meta.expr.if.typst
#                      ^^^^ source.typst meta.expr.if.typst keyword.control.conditional.typst
#                          ^ source.typst meta.expr.if.typst
#                           ^^ source.typst meta.expr.if.typst keyword.control.conditional.typst
#                             ^ source.typst meta.expr.if.typst
#                              ^^^^^ source.typst meta.expr.if.typst constant.language.boolean.typst
#                                   ^ source.typst meta.expr.if.typst
#                                    ^^^ source.typst meta.expr.if.typst keyword.other.logical.typst
#                                       ^ source.typst meta.expr.if.typst
#                                        ^^^^ source.typst meta.expr.if.typst constant.language.boolean.typst
#                                            ^ source.typst meta.expr.if.typst
#                                             ^ source.typst meta.expr.if.typst meta.brace.curly.typst
#                                              ^ source.typst meta.expr.if.typst meta.brace.curly.typst
>#if not false {} else if not true {}
#^ source.typst keyword.control.hash.typst
# ^^ source.typst meta.expr.if.typst keyword.control.conditional.typst
#   ^ source.typst meta.expr.if.typst
#    ^^^ source.typst meta.expr.if.typst keyword.other.logical.typst
#       ^ source.typst meta.expr.if.typst
#        ^^^^^ source.typst meta.expr.if.typst constant.language.boolean.typst
#             ^ source.typst meta.expr.if.typst
#              ^ source.typst meta.expr.if.typst meta.brace.curly.typst
#               ^ source.typst meta.expr.if.typst meta.brace.curly.typst
#                ^ source.typst meta.expr.if.typst
#                 ^^^^ source.typst meta.expr.if.typst keyword.control.conditional.typst
#                     ^ source.typst meta.expr.if.typst
#                      ^^ source.typst meta.expr.if.typst keyword.control.conditional.typst
#                        ^ source.typst meta.expr.if.typst
#                         ^^^ source.typst meta.expr.if.typst keyword.other.logical.typst
#                            ^ source.typst meta.expr.if.typst
#                             ^^^^ source.typst meta.expr.if.typst constant.language.boolean.typst
#                                 ^ source.typst meta.expr.if.typst
#                                  ^ source.typst meta.expr.if.typst meta.brace.curly.typst
#                                   ^ source.typst meta.expr.if.typst meta.brace.curly.typst
>#if 1 + 2 != 1 {} else if 1 + 2 == 1 {}
#^ source.typst keyword.control.hash.typst
# ^^ source.typst meta.expr.if.typst keyword.control.conditional.typst
#   ^ source.typst meta.expr.if.typst
#    ^ source.typst meta.expr.if.typst constant.numeric.integer.typst
#     ^ source.typst meta.expr.if.typst
#      ^ source.typst meta.expr.if.typst keyword.operator.arithmetic.typst
#       ^ source.typst meta.expr.if.typst
#        ^ source.typst meta.expr.if.typst constant.numeric.integer.typst
#         ^ source.typst meta.expr.if.typst
#          ^^ source.typst meta.expr.if.typst keyword.operator.relational.typst
#            ^ source.typst meta.expr.if.typst
#             ^ source.typst meta.expr.if.typst constant.numeric.integer.typst
#              ^ source.typst meta.expr.if.typst
#               ^ source.typst meta.expr.if.typst meta.brace.curly.typst
#                ^ source.typst meta.expr.if.typst meta.brace.curly.typst
#                 ^ source.typst meta.expr.if.typst
#                  ^^^^ source.typst meta.expr.if.typst keyword.control.conditional.typst
#                      ^ source.typst meta.expr.if.typst
#                       ^^ source.typst meta.expr.if.typst keyword.control.conditional.typst
#                         ^ source.typst meta.expr.if.typst
#                          ^ source.typst meta.expr.if.typst constant.numeric.integer.typst
#                           ^ source.typst meta.expr.if.typst
#                            ^ source.typst meta.expr.if.typst keyword.operator.arithmetic.typst
#                             ^ source.typst meta.expr.if.typst
#                              ^ source.typst meta.expr.if.typst constant.numeric.integer.typst
#                               ^ source.typst meta.expr.if.typst
#                                ^^ source.typst meta.expr.if.typst keyword.operator.relational.typst
#                                  ^ source.typst meta.expr.if.typst
#                                   ^ source.typst meta.expr.if.typst constant.numeric.integer.typst
#                                    ^ source.typst meta.expr.if.typst
#                                     ^ source.typst meta.expr.if.typst meta.brace.curly.typst
#                                      ^ source.typst meta.expr.if.typst meta.brace.curly.typst
>#while false and true {}
#^ source.typst keyword.control.hash.typst
# ^^^^^ source.typst meta.expr.while.typst keyword.control.loop.typst
#      ^ source.typst meta.expr.while.typst
#       ^^^^^ source.typst meta.expr.while.typst constant.language.boolean.typst
#            ^ source.typst meta.expr.while.typst
#             ^^^ source.typst meta.expr.while.typst keyword.other.logical.typst
#                ^ source.typst meta.expr.while.typst
#                 ^^^^ source.typst meta.expr.while.typst constant.language.boolean.typst
#                     ^ source.typst meta.expr.while.typst
#                      ^ source.typst meta.expr.while.typst meta.brace.curly.typst
#                       ^ source.typst meta.expr.while.typst meta.brace.curly.typst
>#for i in (1, 2) {}
#^ source.typst keyword.control.hash.typst
# ^^^ source.typst meta.expr.for.typst keyword.control.loop.typst
#    ^ source.typst meta.expr.for.typst
#     ^ source.typst meta.expr.for.typst variable.other.readwrite.typst
#      ^ source.typst meta.expr.for.typst
#       ^^ source.typst meta.expr.for.typst keyword.other.range.typst
#         ^ source.typst meta.expr.for.typst
#          ^ source.typst meta.expr.for.typst meta.brace.round.typst
#           ^ source.typst meta.expr.for.typst constant.numeric.integer.typst
#            ^ source.typst meta.expr.for.typst punctuation.separator.comma.typst
#             ^ source.typst meta.expr.for.typst
#              ^ source.typst meta.expr.for.typst constant.numeric.integer.typst
#               ^ source.typst meta.expr.for.typst meta.brace.round.typst
#                ^ source.typst meta.expr.for.typst
#                 ^ source.typst meta.expr.for.typst meta.brace.curly.typst
#                  ^ source.typst meta.expr.for.typst meta.brace.curly.typst
>#set text(red) if false   and    true
#^ source.typst keyword.control.hash.typst
# ^^^ source.typst meta.expr.set.typst keyword.control.other.typst
#    ^ source.typst meta.expr.set.typst
#     ^^^^ source.typst meta.expr.set.typst meta.expr.call.typst entity.name.function.typst
#         ^ source.typst meta.expr.set.typst meta.expr.call.typst meta.brace.round.typst
#          ^^^ source.typst meta.expr.set.typst meta.expr.call.typst variable.other.constant.builtin.typst
#             ^ source.typst meta.expr.set.typst meta.expr.call.typst meta.brace.round.typst
#              ^ source.typst meta.expr.set.typst
#               ^^ source.typst meta.expr.set.typst keyword.control.conditional.typst
#                 ^ source.typst meta.expr.set.typst
#                  ^^^^^ source.typst meta.expr.set.typst constant.language.boolean.typst
#                       ^^^ source.typst meta.expr.set.typst
#                          ^^^ source.typst meta.expr.set.typst keyword.other.logical.typst
#                             ^^^^ source.typst meta.expr.set.typst
#                                 ^^^^ source.typst meta.expr.set.typst constant.language.boolean.typst
>#set text(red) if   not          true
#^ source.typst keyword.control.hash.typst
# ^^^ source.typst meta.expr.set.typst keyword.control.other.typst
#    ^ source.typst meta.expr.set.typst
#     ^^^^ source.typst meta.expr.set.typst meta.expr.call.typst entity.name.function.typst
#         ^ source.typst meta.expr.set.typst meta.expr.call.typst meta.brace.round.typst
#          ^^^ source.typst meta.expr.set.typst meta.expr.call.typst variable.other.constant.builtin.typst
#             ^ source.typst meta.expr.set.typst meta.expr.call.typst meta.brace.round.typst
#              ^ source.typst meta.expr.set.typst
#               ^^ source.typst meta.expr.set.typst keyword.control.conditional.typst
#                 ^^^ source.typst meta.expr.set.typst
#                    ^^^ source.typst meta.expr.set.typst keyword.other.logical.typst
#                       ^^^^^^^^^^ source.typst meta.expr.set.typst
#                                 ^^^^ source.typst meta.expr.set.typst constant.language.boolean.typst
>