RCaron.Shell 0.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global RCaron.Shell --version 0.1.0                
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local RCaron.Shell --version 0.1.0                
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=RCaron.Shell&version=0.1.0                
nuke :add-package RCaron.Shell --version 0.1.0                

RCaron

A .NET shell and scripting language. It is currently unusable as a shell, a little usable as a scripting language. You can also call it ř or Ř.

Documentation for the language is available at rcaron.jan0660.dev.

A simple number guessing game currently looks like this:

// we "open" a .NET namespace with open
open 'System'
// to use a .NET type we start it's name with a '#' and then access it's members with ':'
// from there we access the members of a variable, property or whatever with '.'
// variables don't have to be declared
$number = #Random:Shared.Next(1, 10000)
print 'Guess a number between 1 and 10000'
// 'loop' is a loop that can be exited with 'break'
loop {
    #Console:Write('Your guess: ')
    $guess = #Int32:Parse(#Console:ReadLine())
    // 'print' is a built-in function that prints arguments to the console with a space between them
    print 'You guessed:' $guess
    // operators look normal
    if ($guess < $number) {
        print 'Too low'
    }
    else if ($guess > $number) {
        print 'Too high'
    }
    else {
        print 'You guessed it!'
        break
    }
}
print 'congrats'

Getting started

See the documentation site.

Getting help

Try to find if anything on rcaron.jan0660.dev helps you.

You can start a new GitHub discussion.

Structure of this repository

This repository contains the following projects:

  • RCaron: The language itself
  • RCaron.Shell: The RCaron shell
  • RCaron.LibrarySourceGenerator: A source generator for creating libraries
  • RCaron.LibrarySourceGenerator.Attributes: Attributes for the source generator
  • RCaron.AutoCompletion: Auto completion that powers the language server and the shell
  • RCaron.LanguageServer: A Language Server Protocol implementation
  • RCaron.Tests: Unit tests
  • RCaron.FunLibrary: Experimental stuff
  • RCaron.Benchmarks: Just a basic benchmark for checking between language versions
  • RCaron.Jit: An expression tree compiler for the language, allowing for faster execution at the cost of a slower "dry" run
  • RCaron.Jit.Tests: Unit tests for the JIT (uses RCaron.Tests)
  • RCaron.Testing: Just some testing stuff
  • Rcaron.Cli: A basic command line interface, this is not the main RCaron experience
Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
0.1.1 119 8/12/2024
0.1.0 211 4/28/2023
0.1.0-preview1 220 4/24/2023
0.0.1 227 3/19/2023