The Adventuron parser is not just verb noun. It's just the gamejam that is verb noun.
You can use this for example :
: if (preposition_is "in" && noun2_is "lamp") { }
: match "put lamp" {
: if (preposition_is "on" && noun2_is "table" && is_carried "lamp" && is_present "table") { // Do something }
}
Yes, I know this is currently sub-optimal, but if you need it it's there and it does the job.
As far as disambiguation goes, it's not fully there yet. A whole new structure of match patterns that are subject and subject context centric is planned.
For now, disambiguation works for gets, drops, examine, wear and remove commands.
I don't want to harp on this, because it isn't relevant to the jam, but I am curious and raise it because it may have an influence on your future match statement format.
It looks like there is only provision for one preposition, but this doesn't account for where the preposition is located within the command. For example TURN ON LAMP and TURN LAMP ON mean the same thing, but JUMP ACROSS CHASM and JUMP CHASM ACROSS are definitiely not the same thing. The latter is rubbish. There are also situations where the presence or absence of the preposition changes the order of the direct and indirect object. The classic example is GIVE SWORD TO TROLL vs GIVE TROLL SWORD. The former is the more common syntax. You might like to say that the latter format is not supported, the direct object must precede the indirect object and they must be separated by a preposition.
This still doesn't account for the situation where you need two prepositions. I can't think of a good example off hand, but something like CHOP UP CARROT WITH KNIFE or TURN OFF MACHINE WITH LONG POLE or REACH INTO HOLE WITH STICK or WRAP UP PARCEL WITH BROWN PAPER.