plum

#treesitter#compiler#wasm

git clone https://git.pyrossh.dev/plum

A statically typed, imperative programming language inspired by rust, python


plum-tooling/tree-sitter-plum/test/corpus/const.txt
================================================================================
const
================================================================================

PI = 3.14
MSG = "Hello World"
SUM = 1 + {{2 * 3} / 4}
ENABLED = !False
OPEN = {count > 10} && {enabled == True} || {debug == False}
COUNTRIES_LIST = listOf("US", "INDIA", "CANADA")

--------------------------------------------------------------------------------

(source
  (const
    (const_identifier)
    (expression
      (primary_expression
        (float))))
  (const
    (const_identifier)
    (expression
      (primary_expression
        (string
          (string_start)
          (string_content)
          (string_end)))))
  (const
    (const_identifier)
    (expression
      (primary_expression
        (binary_operator
          (primary_expression
            (integer))
          (primary_expression
            (parenthesized_expression
              (expression
                (primary_expression
                  (binary_operator
                    (primary_expression
                      (parenthesized_expression
                        (expression
                          (primary_expression
                            (binary_operator
                              (primary_expression
                                (integer))
                              (primary_expression
                                (integer)))))))
                    (primary_expression
                      (integer)))))))))))
  (const
    (const_identifier)
    (expression
      (not_operator
        (expression
          (primary_expression
            (type_identifier))))))
  (const
    (const_identifier)
    (expression
      (boolean_operator
        (expression
          (boolean_operator
            (expression
              (primary_expression
                (parenthesized_expression
                  (expression
                    (comparison_operator
                      (primary_expression
                        (var_identifier))
                      (primary_expression
                        (integer)))))))
            (expression
              (primary_expression
                (parenthesized_expression
                  (expression
                    (comparison_operator
                      (primary_expression
                        (var_identifier))
                      (primary_expression
                        (type_identifier)))))))))
        (expression
          (primary_expression
            (parenthesized_expression
              (expression
                (comparison_operator
                  (primary_expression
                    (var_identifier))
                  (primary_expression
                    (type_identifier))))))))))
  (const
    (const_identifier)
    (expression
      (primary_expression
        (fn_call
          (var_identifier)
          (fn_argument_list
            (expression
              (primary_expression
                (string
                  (string_start)
                  (string_content)
                  (string_end))))
            (expression
              (primary_expression
                (string
                  (string_start)
                  (string_content)
                  (string_end))))
            (expression
              (primary_expression
                (string
                  (string_start)
                  (string_content)
                  (string_end))))))))))