One of the first things I noticed when reading about Python, is the use of indentation for defining code blocks. For example:
def foo(x):
while x < 20:
if x > 10:
print "argument is greater than 10"
print "value: " + x
else:
print "the argument is less than or equal to 10"
print "its value is : " + x
If you're only familiar to C-based language this seems a bit strange. Not using characters like '{}' or words like BEGIN/END seems fragile at first. For example one could expect something like:
def foo(x) {
while x < 20 {
if x > 10 {
print "argument is greater than 10"
print "value: " + x
} else {
print "the argument is less than or equal to 10"
print "its value is : " + x
}
}
I've always wondered how do you create a parser for this kind of a language. In the following series of posts I'm going to record my experiences writing a parser for a simple little language. This language will use a style similar to Python. I'm going to write the code using F# .