Skip to content

Latest commit

 

History

164 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lynxer

Lynxer logo

A statically-flavoured, C-style scripting language that runs on Python. Files use the .lynx extension.

Linux only: Lynxer is currently supported for Linux users and Linux distributions. The native C++ extension, standalone bundler, and Linux system-level os calls require Linux. Only x86-64 Linux hosts are supported; other operating systems or architectures are not supported.

global setup(){
    str name = input("What's your name? ");
}

global main(){
    print("Hello, ");
    print(name);
    print("!\n");
}

Installation | Language reference | Standard library


Quick start

lynxer syntax.lynx           # run a source file
lynxer --compile syntax.lynx # compile to bytecode (syntax.lynxc)
lynxer syntax.lynxc          # run compiled bytecode directly
lynxer --version             # print version
lynxer --help                # print help

Language at a glance

global setup(){
    import("math");
    const str LANG = "Lynxer";
}

global greet(str name){
    print("Hello, "); print(name); print("!\n");
}

global main(){
    int x = 10;
    float pi = 3.14;
    bool ok = true;

    x += 5;

    if(x > 10){
        global.greet(LANG);
    }

    for(int i = 0; i < 3; i = i + 1){
        print(i); print("\n");
    }

    // inline Python
    int result = 0;
    rawPy(){
        result = sum(range(1, 11))
    }
    print(result); print("\n");

    // stdlib
    print(global.math.sqrt(144)); print("\n");
}

Documentation

Page Contents
Installation How to install and run Lynxer
CLI reference Complete command-line usage
Language reference Types, variables, operators, control flow, functions
Type reference Primitive, fixed-width integer, and fixed-width float types
Built-ins print, input, strOf, returnType, seqFromTo, …
Tuples tuple type, built-in tuple functions
importAs importAs("module", "alias") — import under a custom name
Standard library All stdlib modules — overview and function tables
stdlib/ reference Per-module documentation pages
Built-ins Core language functions, including unmanaged memory operations
Filesystem API Safe handle-based file and directory operations
Networking API Managed TCP, UDP, and Unix-domain sockets
rawPy / rawPyx Embedding Python and Cython
Module system import(), importAs(), namespaces, writing your own modules
Bytecode (.lynxc) Compiling to bytecode, running .lynxc files
Vargroups Named typed records (struct-like)
Structs Data-only named types with positional constructors
Classes Instances, constructors, fields, and methods
Async Async functions
Lists List operations

Project layout

lynxer/
  lynxer.py         Lexer + parser + interpreter + bytecode compiler
  builtins.py       Language builtin implementations and registry
  shell.py          CLI entry point
  stdlib/           Standard library modules (.lynx files; native memory is built in)
  cpp.cpp           C++ implementation of core memory built-ins
  setup.py          C++ extension build script
docs/               Documentation
syntax.lynx         Full syntax showcase
main.py             Launcher (delegates to shell.py)
Makefile
README.md

License

MIT — see LICENSE.

About

This is a custom programming language made using python.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages