‼️Read before Proceeding

What you need to know about Gauntlet

  • Gauntlet is in it's alpha phase. Please expect (and report!) bugs.

  • Non-parser error messages are do not contain line numbers. This will be implemented in a future update.

  • There is little typechecking. Better typechecking will be implemented in the future.

  • All Gauntlet type names are the CamelCase version of it's corresponding Go type name. For instance:

    • String type in Gauntlet -> string type in Golang

    • Float64 type in Gauntlet -> float64 type in Golang

    • Int type in Guantlet -> int type in Golang

  • The only two exceptions to the above rule are:

    • Unit, which is equivalent to ()

    • Null, which is equivalent to nil

  • You can import and use any library from the Golang ecosystem without writing a binding. Though at this point in time, Gauntlet does not perform type-checking on them.

    • When referring to a function from a module, use camelCase to refer to it. Use PascalCase for everything else.

What you need to know about this documentation

  • Anything wrapped in <> signifies a required placeholder

  • Anything wrapped in [] signifies an optional placeholder

  • The type of casing that should be used is reflected in placeholder names. For instance, if something LooksLikeThis , it means PascalCase should be used.

  • Join the Discord server here

  • Take a look at the GitHub repository here

  • Check out the Visual Studio Code extension here

Common placeholders throughout documentation

  • Generics

    • Syntax: [TypeConstraint ParamName, ...]

    • Example: [T : String, U: Any]

  • GenericsInstantiation

    • Syntax: [Type1, Type2, ...]

    • Example: [String, Int]

  • Parameters

    • Syntax: ParamName : ParamType, ...

    • Example: num1 : Int, num2 : Int

  • varPattern

    • Syntax: varName1, varName2, etc

    • Example: firstName, lastName

Last updated