static void TranslateLine(string line) { string token; InitScanner(line); while (!AtEndOfLine()) { token = GetNextToken(); if (IsLegalWord(token)) token = TranslateWord(token); printf("%s", token); } printf("\n"); }
PNode *Translate1(PNode *pn, PNode *pnp, Obj *max, PNode *agree_np, int srclang, int tgtlang, Discourse *dc) { PNode *r; if (pn == NULL) return(NULL); if (DbgOn(DBGSEMPAR, DBGDETAIL)) { IndentUp(); IndentPrint(Log); PNodePrint(Log, DiscourseGetInputChannel(dc), pn); } switch (pn->type) { case PNTYPE_LEXITEM: r = TranslateWord(pn, pnp, max, agree_np, srclang, tgtlang, dc); break; case PNTYPE_CONSTITUENT: r = TranslateConstituent(pn, pnp, max, agree_np, srclang, tgtlang, dc); break; case PNTYPE_POLITY: r = TranslateObjList(pn->u.polities, dc); break; case PNTYPE_MEDIA_OBJ: r = TranslateObjList(pn->u.media_obj, dc); break; case PNTYPE_PRODUCT: r = TranslateObjList(pn->u.product, dc); break; case PNTYPE_NUMBER: r = pn; /* todo */ break; /* todo: Add other types. */ default: r = pn; } if (DbgOn(DBGSEMPAR, DBGDETAIL)) { IndentPrint(Log); PNodePrint(Log, DiscourseGetInputChannel(dc), r); IndentDown(); } return(r); }