Basic Parsing in Scala Using Parsing Combinators

Basic Parsing In Scala

In my quest to become a compiler developer I have been learning about parsing and lexical analysis. Recently I have discovered the power of Scala’s parser combinator library, which has been a joy to use. When you partner that with their case classes, it becomes incredibly easy to create a small parser. In this tutorial, we will create a basic arithmetic parser.

Learning CIL Series – Part 3 – Branching

In Part 1 of the series we dove into the very basics of getting an application up and running in CIL. Part 2 covered methods in CIL and how to call and create our own methods. This part of the series is going to cover branching our CIL code. Branching is a very important concept in CIL because it is what allows us to have loops and control over our program flow

Reading Excel Column Names In C# using Excel.Interop

The other day I came across an interesting question on StackOverflow asking how to get column names using Excel Interop in .NET and I set out to find the answer. It is a unique question because many people don’t care what column (as in letter, so “A”,”B”, “ZZ”, etc) their data is in and may dedicate the first row to friendly column headers (as you can’t change the defaults in Excel). This is what I came up with:

One Liner Removing Non-Numerics From String – No Regex Required

I was inspired by Replacing strings using regex in .NET question on StackOverflow today and got to thinking if I would be able to do this without Regex. Then I was even more inspired by the comment by djdanlib:

Sounds like you want a one-liner, but the problem is such that you need two lines. This doesn’t seem like it would be too bad if you could first use a regex.replace to remove non-numeric characters, then run a match on an ‘all numeric characters?’ expression. You could probably switch your UI to use a masked text box and save a lot of trouble, though

Could I do this in one line?

Learning CIL Series – Part 1

This begins part 1 of a many part series on the Common Intermediate Language (formely known as MSIL) which I will refer to as CIL from now on. CIL is the assembly language of the .NET platform and is what all .NET languages ultimately get boiled down to. My reason for doing these tutorials is simple, I want to learn more about CIL and the .NET internals and what better way to do that than blogging and teaching others. Why do I want to learn about .NET internals as well as CIL? I’m creating a programming language that I want to target the .NET framework and I don’t want to be constrained by C#.