Skip to content

andgate/hawk-cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hawk

Hawk is a languaged designed to function very similar to C++, but borrowing elements from Haskell's type system and clean syntax style. Hawk is intended to strike a balance between clarity and control. Check out the prototype code for examples of how a Hawk program should look. Currently the compiler needs to be built, which you can find in hawkc. As time goes on, this will eventually contain the base toolchain for development with Hawk

Building

Requires Flex, Bison, Boost, LLVM, and GTest. To build hawk, run the following command in the root directory.

mkdir build && cd build && cmake ..

Symbol Cheatsheet

Hawk syntax mostly avoids the use of reserved keywords. Instead, hawk makes use of operator symbols to declare variables, functions, and data types.

Module System

Symbol Meaning
:: Module
-> Import module
=> Import module as Qualified

Expression System

Symbol Meaning
$ Declare Variable
# Declare Value
= Assignment
:= Define function
^ Return

Type System

Symbol Meaning
:- Record Datatype (Object) or Algebraic Datatype (enum)
:~ Typeclass
:+ Implementation
<: Subtype of
! Immutable
* Pointer
& Reference

Toolchain

Compiler: hkc

  • Helpful compiler errors, that follow a standard for an ide to manage.

Debugger: hdb

Project Manager: nest

Project Package: egg

Documentation Generator: owl

Linter: eagle

Standard Libary: Core

Main repository: flock.io

X-Plat GUI library: peacock

IDE: Sky

About

Hawk programming language

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages