- printf("Preserve: type1 = %u, id1 = %ld, type2 = %u, id2 = %ld\n",
- preserve.word[0].type, preserve.word[0].id, preserve.word[1].type, preserve.word[1].id);
- printf("Command: type1 = %u, id1 = %ld, type2 = %u, id2 = %ld\n",
- command.word[0].type, command.word[0].id, command.word[1].type, command.word[1].id);
-#endif
-
- /* Handle of objectless action followed by actionless object */
- if (preserve.word[0].type == ACTION && preserve.word[1].type == NO_WORD_TYPE && command.word[1].id == 0)
- command.verb = preserve.verb;
-
-#ifdef BROKEN
- /* Handling of actionless object followed by objectless action */
- if (preserve.type1 == OBJECT && preserve.type2 == NO_WORD_TYPE && command.id2 == 0)
- command.obj = preserve.obj;
+ /* Needs to stay synced with enum word_type_t */
+ const char *types[] = {"NO_WORD_TYPE", "MOTION", "OBJECT", "ACTION", "NUMERIC"};
+ /* needs to stay synced with enum speechpart */
+ const char *roles[] = {"unknown", "intransitive", "transitive"};
+ printf("Command: role = %s type1 = %s, id1 = %ld, type2 = %s, id2 = %ld\n",
+ roles[command.part],
+ types[command.word[0].type],
+ command.word[0].id,
+ types[command.word[1].type],
+ command.word[1].id);