You could always make your own...
There a few simple things that need to be considered for a language parser I guess..
GET, GOT and EVAL functions to start with..
GET is to read text letter by letter skipping over dead space accept where there is a case of being within a quoted set.
The GOT function will simply return the current CHAR while the GET function returns the next one etc.
Normally what I do is if there is a token separator upon entry of the GET Function I'll keep looping until I hit the next valid character then return that one, otherwise return nothing #0..
The GOT function is handy because It does not auto advance to the next character but simply returns the current one..
Then you have the EVAL... Evaluation function, this will take the token resolved and determine its state in the mix. For example it could be a function or it could simply be constant value. The resolved value will get placed somewhere on the stack where by the next read you need to get the operator, that could be +-/* etc.
and the list goes on
Of course there are always function parameters (..) to process and etc etc..
Are you up to it ?