Skip to content
/ vee Public

The vee Script Programming Language written in vlang

Notifications You must be signed in to change notification settings

yjlo123/vee

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vee Script

A programming language written in vlang

What does vee look like:

fn hello(names) {
    for name in names {
        println('Hello ' + name)
    }
}

names = ['Wrold', 'yjlo']
hello(names)

Features:

  • easy to learn
  • dynamic typing

AST

=== format ===
AST {
 (tag) val
 [AST...]
}

=== tags ===
name
number
string
operator
call
param_list
func
return
stmt_list
if

=== examples ===
6
{
  (number) 6
  []
}


'hello'
{
  (string) hello
  []
}


1+2
{
  (operator) +
  [
    {
      (number) 1
      []
    },
    {
      (number) 2
      []
    }
  ]
}


a = b + 3
{
  (operator) =
  [
    {
      (name) a
      []
    },
    {
      (operator) +
      [
        {
          (name) b
          []
        },
        {
          (number) 3
          []
        }
      ]
    }
  ]
}


print(1+2, 8)
{
  (call) print
  [
    {
      (param_list)
      [
        {
          (operator) +
          [
            {
              (number) 1
              []
            },
            {
              (number) 2
              []
            }
          ]
        },
        {
          (number) 8
          []
        }
      ]
    }
  ]
}


fn add(a, b) {
  return a + b
}
{
  (func) add
  [
    {
      (param_list)
      [
        {
          (name) a
          []
        },
        {
          (name) b
          []
        }
      ]
    },
    {
      (stmt_list)
      [
        {
          (return)
          [
            {
              (operator) +
              [
                {
                  (name) a
                  []
                },
                {
                  (name) b
                  []
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}


if a > b {
  max = a
} else {
  max = b
}
{
  (if)
  [
    {
      (operator) >
      [
        {
          (name) a
          []
        },
        {
          (name) b
          []
        }
      ]
    },
    {
      (stmt_list)
      [
        {
          (operator) =
          [
            {
              (name) max
              []
            },
            {
              (name) a
              []
            }
          ]
        }
      ]
    },
    {
      (stmt_list)
      [
        {
          (operator) =
          [
            {
              (name) max
              []
            },
            {
              (name) b
              []
            }
          ]
        }
      ]
    }
  ]
}

About

The vee Script Programming Language written in vlang

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published