It uses Smarter Parser, but the bit that handles reparsing in Smarter Parser is fairly simple. I think Chris was already removing the dependency.
Here’s something you might like. I was finding the inform code way to verbose to be conductive to good writing, and the conversation builder too annoyingly thurough, so I threw together a compiler that takes this
[code]
supplies Gus
{
//The stolen hat conversation arc
@ where did you put my hat?
#comment “Gus, my hat is gone. I know you stuck it somewhere.”
#response Gus won’t look you in the eyes. “I didn’t touch it, swear to God.” You don’t believe him. You have it on good authority that he is, in fact, an athiest.
follows
{
@ I saw you with it.
#comment "I saw you with my hat!" you shout. No point in hiding your anger from a thief.
#response "Whoa whoa!" Gus says, holding his hands up before him. He's actually wearing your hat right now.
follows
{
@ snatch the hat!
#comment You grab your hat from off Gus' ugly head.[perform now the hat is held by the player.]
#response "Uh," Gus says. "You might want to check that for lice."
}
}
}[/code]
And compiles it into this Inform7 code
[spoiler][Quips compiled by Conversation Compiler]
Quip0000 is a privately-named questioning quip.
The printed name is “where did you put my hat”.
Understand “where”, “did”, “you”, “put”, “my”, “hat” as Quip0000.
The comment is “‘Gus, my hat is gone. I know you stuck it somewhere.’”.
The response is “Gus won’t look you in the eyes. ‘I didn’t touch it, swear to God.’ You don’t believe him. You have it on good authority that he is, in fact, an athiest.”.
It quip-supplies Gus.
Quip0001 is an privately-named informative quip.
The printed name is “I saw you with it”.
Understand “I”, “saw”, “you”, “with”, “it” as Quip0001.
The comment is “‘I saw you with my hat!’ you shout. No point in hiding your anger from a thief.”.
The response is “‘Whoa whoa!’ Gus says, holding his hands up before him. He’s actually wearing your hat right now.”.
It quip-supplies Gus.
It indirectly-follows Quip0000.
Quip0002 is a privately-named performative quip.
The printed name is “snatch the hat”.
Understand “snatch”, “the”, “hat” as Quip0002.
The comment is “You grab your hat from off Gus’ ugly head.[perform now the hat is held by the player.]”.
The response is “‘Uh,’ Gus says. ‘You might want to check that for lice.’”.
It quip-supplies Gus.
It indirectly-follows Quip0001.[/spoiler]
It doesn’t seem like much, but compare this much larger conversation
[spoiler][code]supplies Gus
{
@ATTACK what happened to Sam?
# “What happened to Sam?” you ask. “Do you know where he is?’”.
# “Sorry Doc,” Gus says, through the crackle of radio interference. “You’re the first one who’se gotten on the radio since we were attacked.”
@ what happened to Ashley?
# "Have you seen Ashley? Is she alright?" you ask. You try not to let your worry show in your voice.
# "You're the first one I've gotten on the radio since the attack, Doc," Gus replies. "I haven't seen anyone."
follows
{
@ I don't remember much of the attack.
# "I don't remember much of what happened, Gus," you say. "I remember seeing some ships, and then.. I think I hit my head hard enough to forget some things."
# "I'll fill you in then. We came out of the jump, right? There was already a firefight in front of us. A bunch of big Click ships and an Alliance cruiser. I think the cruiser clipped us. Anyway, it couldn't have known with all that chaos."
#follows ATTACK
}
@ where are you now?
# "Where are you now, Gus?" you ask. "Is your air holding out?"
# "Got no air. Got a suit, though. I'm fine for now," Gus says. "I'm in the cockpit. Captain's up here too. Got a great view."
follows
{
@ what can you see from the cockpit?
# [if immediately]"Yeah?[otherwise]You have a great view, huh?[end if] What can you see from there?"
# "Nothing, mostly," Gus says. "We're in some kind of hanger. I think it's the Antioch, but stuff's not quite right. For example, none of the lights are on. It must have taken us on board."
follows
{
@ I've never heard of the Antioch.
# "Antioch? I've never heard of it."
# "Oh," Gus says, "She's that big cruiser we almost ran into when we entered the system. Big Alliance ship. Jupiter class."
follows
{
@ what do you know about the Antioch?
# "Can you tell me anything else about the Antioch?" you ask.
# "Not much, no." Gus is momentarily lost in static. "She's Jupiter class, which means big. It's a military ship, of course. It's not like they give tours. I haven't heard anything specific about the Antioch, but Jupiter class ships are supposed to be fast. Well. For their size."
follows
{
@ what makes a Jupiter class ship so fast?
# "Jupiter-class ships are fast?" you ask. "What's unigue about their engines to make them so fast?"
# "Oh, nothing," Gus says. "They're just too big. Take this bucket, for example. She has tiny engines for her size, so she's slow as hells balls. The Jupiter's have huge engines. Of course, they have that top-secret power plant to run them. All we've got is an ordinary fusion box."
}
@ Didn't the Antioch fire on the colony?
# "I'm sure I saw the cruiser firing on the colony. Why would an Alliance ship do that?"
# "Beats me, Doc," Gus says. "Maybe she's not an Alliance ship anymore? I thought I saw her fire on the Clicks too."
}
}
@ can I speak to the Captain?
# [if immediately]"Alright Gus, can I talk to him?"[otherwise]"Do you mind if I talk to the Captain for a bit, Gus?"[end if] you ask.
# "Oh, Captain's dead," gus says. "Probably should have mentioned that."
follows
{
@ can anyone else fly this ship?
# "Can anyone besides the Captain fly this ship?[if immediately] Not trying to be calous, but this is important.[end if]"
# "I reckon I can. Sal has flown her before. Flying isn't hard, you know. You really just tell the computer where you want to go."
@ how did the captain die?
# [if immediately]"Oh, damn. How did he die?" you ask.[otherwise]"How did the Captain die, Gus?" you ask.[end if]
# "Lost air pressure. I got into my suit in time. Captain wasn't so lucky."
}
}
}[/code][/spoiler]
with the generated code
[spoiler][Quips compiled by Conversation Compiler]
Quip0000 is a privately-named questioning quip.
The printed name is “what happened to Sam”.
Understand “what”, “happened”, “to”, “Sam” as Quip0000.
The comment is “‘What happened to Sam?’ you ask. ‘Do you know where he is?’’.”.
The response is “‘Sorry Doc,’ Gus says, through the crackle of radio interference. ‘You’re the first one who’se gotten on the radio since we were attacked.’”.
It quip-supplies Gus.
Quip0001 is a privately-named questioning quip.
The printed name is “what happened to Ashley”.
Understand “what”, “happened”, “to”, “Ashley” as Quip0001.
The comment is “‘Have you seen Ashley? Is she alright?’ you ask. You try not to let your worry show in your voice.”.
The response is “‘You’re the first one I’ve gotten on the radio since the attack, Doc,’ Gus replies. ‘I haven’t seen anyone.’”.
It quip-supplies Gus.
Quip0002 is an privately-named informative quip.
The printed name is “I don’t remember much of the attack”.
Understand “I”, “don’t”, “remember”, “much”, “of”, “the”, “attack” as Quip0002.
The comment is “‘I don’t remember much of what happened, Gus,’ you say. ‘I remember seeing some ships, and then… I think I hit my head hard enough to forget some things.’”.
The response is “‘I’ll fill you in then. We came out of the jump, right? There was already a firefight in front of us. A bunch of big Click ships and an Alliance cruiser. I think the cruiser clipped us. Anyway, it couldn’t have known with all that chaos.’”.
It quip-supplies Gus.
It indirectly-follows Quip0001, Quip0000.
Quip0003 is a privately-named questioning quip.
The printed name is “where are you now”.
Understand “where”, “are”, “you”, “now” as Quip0003.
The comment is “‘Where are you now, Gus?’ you ask. ‘Is your air holding out?’”.
The response is “‘Got no air. Got a suit, though. I’m fine for now,’ Gus says. ‘I’m in the cockpit. Captain’s up here too. Got a great view.’”.
It quip-supplies Gus.
Quip0004 is a privately-named questioning quip.
The printed name is “what can you see from the cockpit”.
Understand “what”, “can”, “you”, “see”, “from”, “the”, “cockpit” as Quip0004.
The comment is “[if immediately]‘Yeah?[otherwise]You have a great view, huh?[end if] What can you see from there?’”.
The response is “‘Nothing, mostly,’ Gus says. ‘We’re in some kind of hanger. I think it’s the Antioch, but stuff’s not quite right. For example, none of the lights are on. It must have taken us on board.’”.
It quip-supplies Gus.
It indirectly-follows Quip0003.
Quip0005 is an privately-named informative quip.
The printed name is “I’ve never heard of the Antioch”.
Understand “I’ve”, “never”, “heard”, “of”, “the”, “Antioch” as Quip0005.
The comment is “‘Antioch? I’ve never heard of it.’”.
The response is “‘Oh,’ Gus says, ‘She’s that big cruiser we almost ran into when we entered the system. Big Alliance ship. Jupiter class.’”.
It quip-supplies Gus.
It indirectly-follows Quip0004.
Quip0006 is a privately-named questioning quip.
The printed name is “what do you know about the Antioch”.
Understand “what”, “do”, “you”, “know”, “about”, “the”, “Antioch” as Quip0006.
The comment is “‘Can you tell me anything else about the Antioch?’ you ask.”.
The response is “‘Not much, no.’ Gus is momentarily lost in static. ‘She’s Jupiter class, which means big. It’s a military ship, of course. It’s not like they give tours. I haven’t heard anything specific about the Antioch, but Jupiter class ships are supposed to be fast. Well. For their size.’”.
It quip-supplies Gus.
It indirectly-follows Quip0005.
Quip0007 is a privately-named questioning quip.
The printed name is “what makes a Jupiter class ship so fast”.
Understand “what”, “makes”, “a”, “Jupiter”, “class”, “ship”, “so”, “fast” as Quip0007.
The comment is “‘Jupiter-class ships are fast?’ you ask. ‘What’s unigue about their engines to make them so fast?’”.
The response is “‘Oh, nothing,’ Gus says. ‘They’re just too big. Take this bucket, for example. She has tiny engines for her size, so she’s slow as hells balls. The Jupiter’s have huge engines. Of course, they have that top-secret power plant to run them. All we’ve got is an ordinary fusion box.’”.
It quip-supplies Gus.
It indirectly-follows Quip0006.
Quip0008 is a privately-named questioning quip.
The printed name is “Didn’t the Antioch fire on the colony”.
Understand “Didn’t”, “the”, “Antioch”, “fire”, “on”, “the”, “colony” as Quip0008.
The comment is “‘I’m sure I saw the cruiser firing on the colony. Why would an Alliance ship do that?’”.
The response is “‘Beats me, Doc,’ Gus says. ‘Maybe she’s not an Alliance ship anymore? I thought I saw her fire on the Clicks too.’”.
It quip-supplies Gus.
It indirectly-follows Quip0005.
Quip0009 is a privately-named questioning quip.
The printed name is “can I speak to the Captain”.
Understand “can”, “I”, “speak”, “to”, “the”, “Captain” as Quip0009.
The comment is “[if immediately]‘Alright Gus, can I talk to him?’[otherwise]‘Do you mind if I talk to the Captain for a bit, Gus?’[end if] you ask.”.
The response is “‘Oh, Captain’s dead,’ gus says. ‘Probably should have mentioned that.’”.
It quip-supplies Gus.
It indirectly-follows Quip0003.
Quip0010 is a privately-named questioning quip.
The printed name is “can anyone else fly this ship”.
Understand “can”, “anyone”, “else”, “fly”, “this”, “ship” as Quip0010.
The comment is “‘Can anyone besides the Captain fly this ship?[if immediately] Not trying to be calous, but this is important.[end if]’”.
The response is “‘I reckon I can. Sal has flown her before. Flying isn’t hard, you know. You really just tell the computer where you want to go.’”.
It quip-supplies Gus.
It indirectly-follows Quip0009.
Quip0011 is a privately-named questioning quip.
The printed name is “how did the captain die”.
Understand “how”, “did”, “the”, “captain”, “die” as Quip0011.
The comment is “[if immediately]‘Oh, damn. How did he die?’ you ask.[otherwise]‘How did the Captain die, Gus?’ you ask.[end if]”.
The response is “‘Lost air pressure. I got into my suit in time. Captain wasn’t so lucky.’”.
It quip-supplies Gus.
It indirectly-follows Quip0009.[/spoiler]