Browse Source

DecompilePhoneme does nothing (returns before doing anything), so remove it (it was used to debug/trace CompilePhoneme).

master
Reece H. Dunn 9 years ago
parent
commit
c1f0529747
1 changed files with 0 additions and 187 deletions
  1. 0
    187
      src/libespeak-ng/compiledata.c

+ 0
- 187
src/libespeak-ng/compiledata.c View File

@@ -441,191 +441,6 @@ static const char *KeyToMnem(keywtab_t *ktab, int type, int value)
return NULL;
}

static void DecompilePhoneme(FILE *f_out, PHONEME_TAB *ph, int compile_phoneme)
{
USHORT *pc;
int instn;
int instn_category;
int address, address2;
int data1;
int type2;
int ix;
int any;
const char *name;
char buf[120];

static const char *instn_category_string[16] = {
"", "", "IF", "IF OR",
"", "", "", "",
"", "", "", "FMT",
"WAV", "NextVowelStart", "PrevVowelEnd", "+wav"
};

static const char *nextPh_string[6] = {
"prevPh", "thisPh", "nextPh", "next2Ph", "nextPhW", "**",
};

static const char *instn0_string[] = {
"invalid", "RETURN", "Continue", "DeleteNextPhoneme",
};

static const char *instn10_string[] = {
"", "VowelIn", "VowelOut", "Tone", "",
};

static const char *instn_jumps[] = {
"JMP", "Invalid", "Invalid", "Invalid",
"JMP false", "SwitchNextVowelType", "SwitchPrevVowelType", "Invalid"
};

static char instn1_paramtype[] = {
0, 3, 3, 3, 3, 3, 3, 1,
1, 1, 1, 1, 1, 0, 0, 0,
3, 3, 3, 3, 3, 3, 3, 3,
0, 0, 0, 0, 0, 0, 0, 0
};

return;

if (compile_phoneme)
fprintf(f_out, "\nPhoneme %s (%d)\n", WordToString(ph->mnemonic), ph->code);
else
fprintf(f_out, "\nProcedure %s\n", proc_names[n_procs]);

pc = prog_buf;
while (pc < prog_out) {
instn = *pc++;
instn_category = (instn >> 12) & 0xf;
data1 = instn & 0xff;
type2 = (instn >> 8) & 0xf;
fprintf(f_out, " %.3x: %.4x %s", (unsigned int)(pc-prog_buf), instn, instn_category_string[instn_category]);

switch (instn_category)
{
case 0:
case 1:
type2 = instn >> 8;

if (instn < 0x100) {
if (data1 > 2)
data1 = 0;
fprintf(f_out, "%s", instn0_string[data1]);
} else if (type2 == i_IPA_NAME) {
for (ix = 0; ix < data1; ix += 2) {
instn = *pc++;
buf[ix] = instn >> 8;
buf[ix+1] = instn & 0xff;
}
buf[ix] = 0;
fprintf(f_out, "ipa %s", buf);
} else {
fprintf(f_out, "%s(", KeyToMnem(keywords, tINSTRN1, type2));
switch (instn1_paramtype[type2])
{
case 0:
fprintf(f_out, "%.4x", instn);
break;
case 1:
fprintf(f_out, "%d", data1);
break;
case 3:
fprintf(f_out, "%s", WordToString(phoneme_tab2[data1].mnemonic));
break;
}
fprintf(f_out, ")");
}
break;
case 2:
case 3:
if (type2 < 12) {
fprintf(f_out, " %s(", nextPh_string[type2 % 6]);
if (type2 >= 6) {
switch (data1 >> 5)
{
case 0:
name = KeyToMnem(keywords, tPHONEME_TYPE, (data1 & 0x1f));
if (name != NULL)
fprintf(f_out, "is%s", name);
else
fprintf(f_out, "%d %d", (data1 >> 5), (data1 & 0x1f));
break;
case 1:
fprintf(f_out, "%d %d", (data1 >> 5), (data1 & 0x1f));
break;
case 2:
fprintf(f_out, "%d %d", (data1 >> 5), (data1 & 0x1f));
break;
case 4:
name = KeyToMnem(k_properties, -1, 0x80+(data1 & 0x1f));
if (name != NULL)
fprintf(f_out, "%s", name);
else
fprintf(f_out, "%d %d", (data1 >> 5), (data1 & 0x1f));
break;
default:
fprintf(f_out, "%d %d", (data1 >> 5), (data1 & 0x1f));
break;
}
} else {
fprintf(f_out, "%s", WordToString(phoneme_tab2[data1].mnemonic));
}
} else if (type2 == 8) {
// list of numbers
fprintf(f_out, " StressLevel(");
any = 0;
for (ix = 0; ix < 8; ix++) {
if (data1 & (1 << ix)) {
if (any)
fputc(',', f_out);
any = 1;
fprintf(f_out, "%d", ix);
}
}
} else {
name = KeyToMnem(k_conditions, tTEST, instn & 0xfff);
fprintf(f_out, "%s(", name);
}
fprintf(f_out, ")");
break;
case 6:
fprintf(f_out, "%s", instn_jumps[(instn >> 9) & 7]);
fprintf(f_out, " %d", instn & 0x1ff);
break;
case 9:
address = ((data1 & 0xf) << 4) + *pc++;
fprintf(f_out, "CALL %.5x", address);
break;
case 10:
fprintf(f_out, "%s", instn10_string[type2]);
switch (type2)
{
case 1:
case 2:
address = (data1 << 16) + pc[0];
address2 = (pc[1] << 16) + pc[2];
pc += 3;
fprintf(f_out, " %.6x %.8x", address, address2);
break;
case 3:
address = ((instn & 0xf) << 16) + *pc++;
address2 = ((instn & 0xf0) << 12) + *pc++;
fprintf(f_out, " %.5x %.5x", address, address2);
break;
}
break;
case 11:
case 12:
case 13:
case 14:
case 15:
address = ((instn & 0xf) << 16) + *pc++;
fprintf(f_out, " %d %.5x", (instn >> 4) & 0xff, address*4);
break;
}
fprintf(f_out, "\n");
}
}

static int n_phoneme_tabs;
static int n_phcodes;

@@ -2500,8 +2315,6 @@ int CompilePhoneme(int compile_phoneme)
phoneme_out->mnemonic = 0x01; // will not be recognised
}

DecompilePhoneme(f_errors, phoneme_out, compile_phoneme);

if (prog_out > prog_buf) {
// write out the program for this phoneme
fflush(f_phindex);

Loading…
Cancel
Save