Source Control Clients
Project Name: ometasharp
TFS Server URL: https://tfs02.codeplex.com
Subversion URL: https://ometasharp.svn.codeplex.com/svn

Recent Check-Ins

Change Set Download / Browse Date Comment By Downloads
17706 Sep 23 2008 at
12:57 AM
Added "Markup" project based off discussion question by nblumhardt on Codeplex. See http://www.codeplex.com/ometasharp/Thread/View.aspx?ThreadId=36146 jeffmoser 27
17578 Sep 16 2008 at
4:03 AM
Moved CalculatorParser to be siblings with the Calculator example. jeffmoser 3
17577 Sep 16 2008 at
3:57 AM
Removed excess directories jeffmoser 1
17576 Sep 16 2008 at
3:54 AM
Very initial check-in of some noticable restructuring of the entire project. Based off some good comments by Nicholas Blumhardt, I decided to do some re-arranging of the folders to improve the distinction between the core runtime, host languages, examples, and then unit tests. In addition, I created a console based interpreter playground where you can experiment with each grammar that you create. For example, if you set "Calculator" as your startup project and then run it, you can see a very primitive calculator in action :)

In addition, I put some work into the Prolog interpreter to make it handle basic queries via the console.

Each project has sample input and responses that are shown right when you start the project so you get a feel for what's expected.

Finally, the "README" project basically does what the previous unit test runner did (e.g. compile all grammars and run most tests).

I'd love to hear feedback if you download the code. My contact info is on my blog at http://www.moserware.com/

(NOTE: Since I did some heavy moving in the source code, there might be some problems synchronizing everything in TFS. It might take another changeset to remove extra files)
jeffmoser 1
17196 Sep 8 2008 at
3:00 AM
Added first glimpse of ideas for syntax sugar in the host semantic actions. I started with a simple list cons. This allows you to say { "add", x, y } instead of "Sugar.Cons("add", x, y)". This notably simplified CalculatorParser and NullOptimization grammars.

The eventual goal is that "Sugar" wouldn't have to be explicitly referenced in an action but would rather rely on the CSharpRecgonizer to convert the nicer syntax to a Sugar usage. The nicer syntax should play nice with the overal goals of C#.
jeffmoser 7
16907 Sep 1 2008 at
10:15 PM
Small update to Meta-FizzBuzz grammar by using C#'s type aliasing ability (e.g. "using E = System.Func<object>") to make the code less verbose. I'm not sure if this is best long term for readability/comprehension, but I do like how it makes things more compact. jeffmoser 1
16784 Aug 29 2008 at
3:52 AM
Implemented support for automatic casting of a type in the semantic action and host expression part of a grammar (e.g. the C# part) based on a grammar default ("ometa Factorial<int, ***int***>") or by specifying the type by the variable capture. The former allows you to get a notably simpler Calculator, Factorial, LittleTypeChecker, and NumberParser (take a peek at their new version in this changesteThe latter allows "Super(Digit):d<int>".

The focus on this release is therefore less typing. Hopefully with a few more iterations will bring us closer to the compactness similar to what can occur in a dynamic language like JavaScript but being strongly typed.
jeffmoser 7
16572 Aug 25 2008 at
11:41 AM
Added a Meta-FizzBuzz implementation and two versions of FizzBuzz written in it. jeffmoser 2
16467 Aug 22 2008 at
3:27 AM
Added support for defining overrides in a grammar via the ^ character.

For example, the Calculator grammar now has

Digit ^= Super(Digit):d -> { d.ToDigit() },

since it is overriding the "Digit" rule in its base grammar. This now generates an "override" in the C# code. With this extension, I can now emit enough information to get rid of the warning about unverifiable code from using a base class reference in an anonymous method. I do this by storing the reference to a local variable "__baseRule__".

For the first time, the entire OMeta project compiles without any warnings.
jeffmoser 3
16203 Aug 15 2008 at
4:45 AM
More syntax updates. I now make inheritance look more C++/C#-ish of "MyClass : BaseClass" instead of "MyClass <: BaseClass".

This was driven by another change that I made where I add types to the grammar definition to specify what goes in (e.g. "ometa OMetaTranslator<HostExpression> : Parser<HostExpression>").

This annotation used to be done in the tests themselves. Now it's right in the grammar itself (by default I assume a char input).

You can also define the "default" type as in "ometa Calculator<char, int> : Parser<char> {". My thought is that in an upcoming change I can dramatically simplify the calculator grammar (among others) by making it unnecessary to do all those .As<int>() and have that be automatic if you define a default.
jeffmoser 3
1-10 of 37Change Sets < Previous 1 2 3 4 Next >
Updating...
© 2006-2009 Microsoft | About CodePlex | Privacy Statement | Terms of Use | Code of Conduct | CodePlex Blog | Version 2008.12.9.14291