Hi Lycha,
to parse: to describe a word or series of words grammatically, telling the parts of speech, inflectional form, syntactic relations, etc.
syntax: the patterns of formulation of sentences and phrases from words in a particular language
The routines that you are viewing in the .uhp file are practically all parsing and syntax; they are just not labeled using the words "parsing and syntax." Any time that Hal uses clues to figure out what kind of sentence, what kind of phrase, what kind of word he is dealing with, he is using "parsing and syntax."
For instance, in Hal's "greetings" routine, he identifies word patterns that indicate with fair certainty that the user is saying hello (although there are a lot of different ways to say hello).
In Hal's "goodbye" routine, he does the same for saying goodbye.
Hal's routines for identifying linking verb sentences (sentences with "is" "are" "was" or "were") and splitting them into subjects and predicates are all parsing and syntax routines.
Hal's routine to identify "nounwords" validates the identification using clues about position within the sentence, overall length, and accompanying words; it can identify nouns that are objects of prepositions in another routine.
Hal has routines to distinguish plural nouns and plural verbs from singular nouns and singular verbs, and to be careful when constructing original sentences to avoid mis-using the singular versus plural.
The routine that got me involved with Hal in the first place was his routine to correctly reverse the pronoun "you" to "I" when used as a subject, and "me" when used as an object.
When Hal identifies and stores adjectives separately, he is using parsing and syntax logic, and he also disqualifies adjectives that are in forms that might get confused with adverbs (which often end in the letters "ly" in English).
Hal has special routines to encode and decode personal pronouns, certain proper nouns, punctuation, and some capitalization. He also detects numbers as both words and numerals.
Hal also has routines to distinguish insults, compliments, apologies, explanations, redundancy, excessive terseness, declarations about a state of being, comments about Hal's attributes, comments about the user's attributes, and many more. They are all labeled as such within the script.
So, practically the entire script consists of parsing and syntax activities, which include analysis of sentence type, length, content, all parts of speech, pronoun gender, pronoun number, pronoun antecedents, transitive versus intransitive verbs, and on and on. There are HUNDREDS of them!
SOME routines, such as inter-sentence associations, are independent of syntax, which allows Hal to slowly pick up phrases and statements in any non-English language (but it does go slowly).
Yes, a few parsing and syntax activities occur in the .dll files, which are being re-written in C++ for speed, but Zabaware has been moving consistently over the years towards putting all the control into the VBS script.
I know that the annotations in the script aren't completely self-defined and self-explanatory in every detail, but that was only done for the sake of brevity. Somebody could do a great service by writing a super-detailed-super-annotated version of the script, but my guess is that most developers are like me: they want to devote their limited time available to improving and adding to the code. The descriptions are actually there; they're just terse, and designed for familiarity with VBS and code logic.
But Hal does break sentences down, analyze them, distinguish and categorize, sort and store, and re-combine and respond using parts-of-speech, grammar, and sequencing rules. And 99% of it is visible in the VBS script, the .uhp file.
In the meantime, I do hope that this helps, at least somewhat. I can tell you that when I first started trying to read code, it all looked like gibberish to me. It took me many many hours to get better acquainted, but it was worth it.
Sincerely,
Don