EgoScript
From Hobby'dev
on a series of +, one of them is enough to trigger
on a series of <, all of them are necessary to trigger
on + patterns, parser doesn't care about ()
on < patterns, () must be balanced in capture
line starter + input speech - output speech > output thought < input thought € emotion modifier {} javascript $ store fact ^ remove fact ? if true fact ! if false fact inline [] variable substitution line modifier /emo /weight
speech
+ how are you - I'm great, how are you? - I'm good, you? + * told me to say * - Why would #1 tell you to say "#2"? - Did you say "#2" after #1 told you to? + i am (really/very/super) tired - I'm sorry to hear that you are #1 tired. + greetings - Hi there! /weight 20 - Hello! /weight 25 - Yos kyoco duckeb!
thoughts
+ tyler is my idol > the guy is a moron /mem 10 < I need to know his name - What's your name?
emotions
+ how are you - Well I'm sad today /emo sadness 0.5 - I feel dark /emo sadness 0.4 - I'm ok - I'm fine, how are you? - I'm feeling good! /emo happy 0.8 - I'm so excited /emo excited 0.2 + My father died € sadness +50 > User needs to be taken care of
discussions
+ knock knock - who is there + * - #1 who? + * - LOL! #1! That's funny!
fact store
$ Rivescript is a scripting language $ Rivescript is text-based $ Rivescript is meant to aid in the development of interactive chatbots + Do you know a nice *? ? * is a #1 - Yes, #2 is a cool #1 ! * is a #1 - No I don't, sorry "Do you know a nice scripting language?" "Yes, Rivescript is a cool scripting language" + Did you know that *? ? #1 - Yes I knew it already ! #1 - Really? Interesting... $ #1