• Stars
    star
    236
  • Rank 170,480 (Top 4 %)
  • Language
    C#
  • License
    MIT License
  • Created over 10 years ago
  • Updated over 10 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

much language, so programming, very .NET

D# (DogeSharp)

Build status

D# is a programming language for Doge fans.

Huge disclaimer: I have no idea what I'm doing, and definitely shouldn't write languages.

You can shout ideas at me on Twitter: @returnString

People have asked for a Dogecoin donation address, so I set this up: DAvLTZVRz9zg3wWjU5BbkjRR5ojnLJsunG

many System

much MyClass
	very MyClass many int x much public
		data so x;

	such data so int much readonly

much Program
	very Main so void much static
		such rand gimme Random;
		such x plz rand.Next;
		wow x;
		
		such instance gimme MyClass many 1;
		wow instance.data;

Language

Constructs

  • many <namespace> - using statement for namespace
  • much <typename> ... - declare a type
  • very <methodname> so <returntype> [many <argtype> <argname>] [much <modifier>] - declare a method
  • very <typename> [much <modifier>] - declare a constructor
  • such <variablename> <expression>; - declare and assign a local variable
  • plz <method> [many <arg>] - call a method
  • so maths <expression> <operator> <expression> - use mathematical operators
  • wow <expression>; - print to console
  • amaze <expression>; - return a value

Usage

Compiling .ds files

Files with a ds extension are considered D# files. We use the dsc command-line tool (D# compiler) to convert these to either a .NET executable or DLL.

dsc.exe /target:exe /out:MyProgram.exe MyProgram.ds

dsc currently uses a translation step to generate .NET code, by converting .ds files into .cs files for the C# compiler behind the scenes. To see the generated files, use the /PreserveTranslated command-line option.

Building

Dependencies

  • ANTLR v4 (Nuget)
  • Java v1.6+

From source

git clone https://github.com/returnString/DogeSharp.git

Windows: Open the solution in VS and build, or use MSBuild from cmd. Unix: Use build_grammar.sh to generate the necessary ANTLR files from the grammar, then build the project inside Xamarin Studio or use xbuild from a terminal.

The build process first takes DogeSharp.csproj and outputs the dsc tool. Then, we invoke dsc for the sample projects as specified in build.bat/sh. This way, we can test the entire process from inside VS.