~habibalamin/rumland

Change focus of project from Ruby interop to general scripting
Port Miranda codebase to Haskell
Read from stdin if no filename provided
Print error w/ usage message if not enough or too many arguments
Allow parsing end of string

This is to ensure only the full codebase is returned as a valid parse in
certain scenarios. For example:

```
some_value = 123
```

Under the existing model, the parser would parse a definition as a name,
followed by an equals sign and an int or float. In this case, all of the
following would be returned as possible parses:

```
[ (RumlandValueDefinition "some_value" (RumlandInt 1),"23")
, (RumlandValueDefinition "some_value" (RumlandInt 12),"3")
, (RumlandValueDefinition "some_value" (RumlandInt 123),"")
]
```

However, we always want the last one, really. Now, only the following is
returned:

```
[(RumlandValueDefinition "some_value" (RumlandInt 123),"")]
```
Add basic parsers for `rumlandAST`
Add basic parser primitives and combinators
Add gitignore

This ignores compiled Miranda bytecode files (`*.x`) and the mirapack
artefacts directory (`.mirapack`).

mirapack is a tool I wrote myself which is only a simple shell script
right now that bundles multi-file Miranda projects into a single-file
executable script. It has no stable release.

https://git.sr.ht/~habibalamin/mirapack
[INITIAL] Introduce Rumland