コード例 #1
0
ファイル: piglatin.c プロジェクト: guoyu07/TCPL
static void TranslateLine(string line)
{
    string token;

    InitScanner(line);
    while (!AtEndOfLine()) {
        token = GetNextToken();
        if (IsLegalWord(token)) token = TranslateWord(token);
        printf("%s", token);
    }
    printf("\n");
}
コード例 #2
0
ファイル: apptrans.c プロジェクト: plucena/talkagent
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);
}