0.0.2-devpr • Published 3 years ago

xoclang v0.0.2-devpr

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
3 years ago

The Xoc Programming Language

Xoc is our vision for a consistent language that can handle basic tasks while implementing a human-readable interface and syntax. While creating projects, we had a problem: some languages had an inconsistent and hard to understand syntax. That's why we created Xoc, a programming language that haves a clean syntax and surfaces a consistent design.

We can assure than Xoc is extremely powerful, and soon it will be capable to create the things you love.

Installation

Xoc compiler is included in an NPM module, as languages like TypeScript. You can install Xoc by executing:

$ npm install -g xoclang

Compiling Xoc files

Xoc now compiles by a CLI, so you have to execute the xoc command to let your code work. For example, if you have a main.xoc file in your root directory, you should run:

$ xoc main.xoc

Xoc will return you errors on-board, so you can know what is happening with your code.

Learning Xoc

Here we will explain some Xoc basics and how to make them.

My first hello world

NOTE: As Xoc is a strict-typed language, you should specify the type of your content.

cout('Hello World!') String

Variables and constants

Defining a variable:

var String hi: 'Hi'
let String bye: 'Bye'

Defining a constant:

const String goodMorning: 'Good morning!'

Assigning to variables:

let String response: 'Yes'
const String anotherResponse: 'Maybe'
assignto response: 'No' // works
assignto anotherResponse: 'No' // don't works, assignment to a constant

Conditionals

Supported operators and their equivalents:

  • equals: ==
  • sameType: ===
  • moreThan: >
  • lessThan: <
  • moreEqual: >=
  • lessEqual: <=
  • and: &&
  • or: ||

Conditional syntax:

var String yes: 'Yes'
var String anotherYes: 'Yes'
var String oneMoreYes: 'Yes'

if yes equals anotherYes (testCond):
    cout('It matches :D') String
end conditional (testCond)

// with more options
if yes equals anotherYes or yes equals oneMoreYes (secondCond):
    cout('It matches x2 :D')
end conditional (secondCond)

Functions

All functions need to be declared with pub, prot or priv at the first line, and to be closed at the end.

pub fn sayHelloWorld():
    cout('Hello World!') String
end fn (sayHelloWorld)

And you can call the function anywhere:

sayHelloWorld()