From c9458897ebbb739d8db83c80e06512d8a612f743 Mon Sep 17 00:00:00 2001 From: danglassey Date: Wed, 14 Aug 2002 09:57:17 +0000 Subject: *** empty log message *** --- src/modules/texts/rawgbf/Gbf.c | 485 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 485 insertions(+) create mode 100644 src/modules/texts/rawgbf/Gbf.c (limited to 'src/modules/texts/rawgbf/Gbf.c') diff --git a/src/modules/texts/rawgbf/Gbf.c b/src/modules/texts/rawgbf/Gbf.c new file mode 100644 index 0000000..2b7f786 --- /dev/null +++ b/src/modules/texts/rawgbf/Gbf.c @@ -0,0 +1,485 @@ +/* Output from p2c, the Pascal-to-C translator */ +/* From input file "Gbf.pas" */ + + +#include + + +typedef enum { + tokNull, tokEOF, tokHeader, tokContent, tokTail, tokStyle, tokWord, + tokSpace, tokSync, tokControl, tokChar, tokFont +} TToken; +typedef enum { + caBold, caSmallCaps, caItalic, caOTQuote, caRed, caSuperscript, caUnderline, + caSubscript +} TCharacterAttribute; +typedef long TCharAttribs; + + + +typedef struct TBookNameRec { + Char Name[256], Abbr[256]; + uchar Num; +} TBookNameRec; + +typedef TBookNameRec TBookAbbr[116]; + + +typedef struct TReadGBF { + /* private*/ + FILE *F; + Char FName[256], TokenLine[256]; + long TokenPos; + boolean fFileIsOpen, fParagraphEnd, fInTitle, fInPsalmBookTitle, + fInHebrewTitle, fInSectionTitle; + + /* public*/ + Char sBook[256], sChapter[256], sVerse[256], sMode[256]; + Char sContext[256]; /*// Last text type (header, body, or tail)*/ + Char sTitle[256]; /*// Title of this book of the Bible*/ + Char sPsalmBookTitle[256]; /*// Title of this Psalm book*/ + Char sHebrewTitle[256]; /*// Psalm Hebrew title*/ + Char sSectionTitle[256]; /*// Section headings*/ + Char sDate[256], sFontName[256]; + long iTotalWords; + Char chJustification, chDirection; + boolean fIndent, fPoetry; + TCharAttribs CharAttribs; + uchar bBk, bChap, bVs, bWd; + /* + function Init({const*/ + /*sFileName: string): boolean; + procedure Done; + function GetToken(var TokenKind: TToken): string; + */ +} TReadGBF; + +typedef struct TWriteGBF { + /* private*/ + FILE *F; + Char FName[256], LineOut[256]; + boolean fFileIsOpen; + uchar bBk, bChap, bVs, bWd; + + /* public*/ + /* + function Init({const*/ + /*sFileName: string): boolean; + function Done: boolean; + procedure Out({const*/ + /*s: string); +*/ +} TWriteGBF; + +/*implementation */ + + +/*//0*/ +/*//1*/ +/*//2*/ +/*//3*/ +/*//4*/ +/*//5*/ +/*//6*/ +/*//7*/ +/*//8*/ +/*//9*/ +/*//10*/ +/*//11*/ +/*//12*/ +/*//13*/ +/*//14*/ +/*//15*/ +/*//16*/ +/*//17*/ +/*//18*/ +/*//19*/ +/*//20*/ +/*//21*/ +/*//22*/ +/*//0*/ +/*//1*/ +/*//2*/ +/*//3*/ +/*//4*/ +/*//5*/ +/*//6*/ +/*//7*/ +/*//8*/ +/*//9*/ +/*//10*/ +/*//11*/ +/*//12*/ +/*//13*/ +/*//14*/ +/*//15*/ +/*//16*/ +/*//17*/ +/*//18*/ +/*//19*/ +/*//20*/ +/*//21*/ +/*//22*/ +/*//23*/ +/*//24*/ +/*//26*/ +/*//27*/ +/*//28*/ +/*//29*/ +/*//30*/ +/*//31*/ +/*//32*/ +/*//33*/ +/*//34*/ +/*//35*/ +/*//36*/ +/*//37*/ +/*//38*/ +/*//39*/ +/*//40*/ +/*//41*/ +/*//42*/ +/*//43*/ +/*//44*/ +/*//45*/ +/*//46*/ +/*//47*/ +/*//48*/ +/*//49*/ +/*//50*/ +/*//51*/ +/*//52*/ +/*//53*/ +/*//54*/ +/*//55*/ +/*//56*/ +/*//57*/ +/*//58*/ +/*//59*/ +/*//60*/ +/*//61*/ +/*//62*/ +/*//63*/ +/*//64*/ +/*//65*/ +/*//66*/ +/*//67*/ +/*//68*/ +/*//69*/ +/*//70*/ +/*//71*/ +/*//72*/ +/*//73*/ +/*//74*/ +/*//75*/ +/*//76*/ +/*//77*/ +/*//78*/ +/*//79*/ +/*//80*/ +/*//81*/ +/*//82*/ +/*//83*/ +/*//84*/ +/*//85*/ +/*//86*/ +/*//87*/ +/*//88*/ +/*//89*/ +/*//90*/ +/*//91*/ +/*//92*/ + +Static TBookAbbr BookAbbr = { + { "1 Chronicles", "1CH", 13 }, + { "1 Corinthians", "1CO", 70 }, + { "1 Esdras", "1E", 52 }, + { "1 John", "1J", 86 }, + { "1 Kings", "1K", 11 }, + { "1 Maccabees", "1M", 50 }, + { "1 Peter", "1P", 84 }, + { "1 Samuel", "1S", 9 }, + { "1 Thessalonians", "1TH", 76 }, + { "1 Timothy", "1TI", 78 }, + { "2 Chronicles", "2CH", 14 }, + { "2 Corinthians", "2CO", 71 }, + { "2 Esdras", "2E", 56 }, + { "2 John", "2J", 87 }, + { "2 Kings", "2K", 12 }, + { "2 Maccabees", "2M", 51 }, + { "2 Peter", "2P", 85 }, + { "2 Samuel", "2S", 10 }, + { "2 Thessalonians", "2TH", 77 }, + { "2 Timothy", "2TI", 79 }, + { "3 John", "3J", 88 }, + { "3 Maccabees", "3M", 55 }, + { "4 Maccabees", "4M", 57 }, + { "1 Chronicles", "1 CH", 13 }, + { "1 Corinthians", "1 CO", 70 }, + { "1 Esdras", "1 E", 52 }, + { "1 John", "1 J", 86 }, + { "1 Kings", "1 K", 11 }, + { "1 Maccabees", "1 M", 50 }, + { "1 Peter", "1 P", 84 }, + { "1 Samuel", "1 S", 9 }, + { "1 Thessalonians", "1 TH", 76 }, + { "1 Timothy", "1 TI", 78 }, + { "2 Chronicles", "2 CH", 14 }, + { "2 Corinthians", "2 CO", 71 }, + { "2 Esdras", "2 E", 56 }, + { "2 John", "2 J", 87 }, + { "2 Kings", "2 K", 12 }, + { "2 Maccabees", "2 M", 51 }, + { "2 Peter", "2 P", 85 }, + { "2 Samuel", "2 S", 10 }, + { "2 Thessalonians", "2 TH", 77 }, + { "2 Timothy", "2 TI", 79 }, + { "3 John", "3 J", 88 }, + { "3 Maccabees", "3 M", 55 }, + { "4 Maccabees", "4 M", 57 }, + { "Acts", "AC", 68 }, + { "Amos", "AM", 30 }, + { "Prayer of Asariah and the Song of the Three Jews", "AZ", 47 }, + { "Baruch", "BA", 45 }, + { "Bel and the Dragon", "BE", 49 }, + { "Colossians", "CO", 75 }, + { "Daniel", "DA", 27 }, + { "Deuteronomy", "DE", 5 }, + { "Deuteronomy", "DT", 5 }, + { "Ecclesiasties", "EC", 21 }, + { "Esther", "ES", 17 }, + { "Exodus", "EX", 2 }, + { "Ezekiel", "EZE", 26 }, + { "Ezra", "EZR", 15 }, + { "Galatians", "GA", 72 }, + { "Genesis", "GE", 1 }, + { "Genesis", "GN", 1 }, + { "Ephesians", "EP", 73 }, + { "Esther (Greek)", "GR", 42 }, + { "Habakkuk", "HAB", 35 }, + { "Haggai", "HAG", 37 }, + { "Hebrews", "HE", 82 }, + { "Hosea", "HO", 28 }, + { "Isaiah", "IS", 23 }, + { "James", "JA", 83 }, + { "Jeremiah", "JE", 24 }, + { "Job", "JOB", 18 }, + { "Joel", "JOE", 29 }, + { "John", "JOH", 67 }, + { "Jonah", "JON", 32 }, + { "Joshua", "JOS", 6 }, + { "Jude", "JUDE", 89 }, + { "Judges", "JUDG", 7 }, + { "Judith", "JUDI", 41 }, + { "Lamentations", "LA", 25 }, + { "Letter of Jeremiah", "LET", 46 }, + { "Leviticus", "LEV", 3 }, + { "Luke", "LK", 66 }, + { "Leviticus", "LV", 3 }, + { "Luke", "LU", 66 }, + { "Malachi", "MAL", 39 }, + { "Prayer of Manasseh", "MAN", 53 }, + { "Mark", "MAR", 65 }, + { "Matthew", "MAT", 64 }, + { "Micah", "MI", 33 }, + { "Nahum", "NA", 34 }, + { "Nehemiah", "NE", 16 }, + { "Numbers", "NU", 4 }, + { "Obadiah", "OB", 31 }, + { "Psalm 151", "P1", 54 }, + { "Philemon", "PHILE", 81 }, + { "Philippians", "PHILI", 74 }, + { "Philemon", "PHM", 81 }, + { "Philippians", "PHP", 74 }, + { "Proverbs", "PR", 20 }, + { "Psalms", "PS", 19 }, + { "Revelation", "RE", 90 }, + { "Romans", "RM", 69 }, + { "Romans", "RO", 69 }, + { "Ruth", "RU", 8 }, + { "Sirach", "SI", 44 }, + { "Song of Solomon", "SOL", 22 }, + { "Song of Solomon", "SON", 22 }, + { "Song of Solomon", "SS", 22 }, + { "Susanna", "SU", 48 }, + { "Titus", "TI", 80 }, + { "Tobit", "TO", 40 }, + { "Wisdom", "WI", 43 }, + { "Zechariah", "ZEC", 38 }, + { "Zephaniah", "ZEP", 36 } +}; + +/*// 0 - 7*/ +/*// 8 - 14*/ +/*// 15-20*/ +/*// 21-26*/ +/*// 27-33*/ +/*// 34-39*/ +/*// 40-45*/ +/*// 46-52*/ +/*// 53-63*/ +/*// 64-70*/ +/*// 71-78*/ +/*// 79-84*/ + +Static Char BookFileName[91][256] = { + "", "Genesis", "Exodus", "Lev", "Num", "Deut", "Joshua", "Judges", "Ruth", + "1Sam", "2Sam", "1Kings", "2Kings", "1Chron", "2Chron", "Ezra", "Nehemiah", + "Esther", "Job", "Psalms", "Proverbs", "Eccl", "Song", "Isaiah", "Jeremiah", + "Lament", "Ezekiel", "Daniel", "Hosea", "Joel", "Amos", "Obadiah", "Jonah", + "Micah", "Nahum", "Habakkuk", "Zeph", "Haggai", "Zech", "Malachi", "Tobit", + "Judith", "Esther", "Wisdom", "Sirach", "Baruch", "Let", "Azar", "Susanna", + "Bel", "1Mac", "2Mac", "1Esdras", "Man", "P1", "3Mac", "2Esdras", "4Mac", + "", "", "", "", "", "", "Matthew", "Mark", "Luke", "John", "Acts", "Romans", + "1Cor", "2Cor", "Gal", "Eph", "Philip", "Col", "1Thes", "2Thes", "1Tim", + "2Tim", "Titus", "Philemon", "Hebrews", "James", "1Peter", "2Peter", + "1John", "2John", "3John", "Jude", "Rev" +/* p2c: Gbf.pas, line 200: + * Note: Line breaker spent 0.0 seconds, 5000 tries on line 336 [251] */ +}; /*// 85-90*/ + + +Static boolean isletter(ch) +Char ch; +{ + /*const*/ + boolean Result; + + if (isupper(ch)) { + Result = true; + return Result; + } + if (islower(ch)) + Result = true; + else + Result = false; + return Result; +} + + +Static boolean isinword(ch) +Char ch; +{ + /*const*/ + boolean Result; + + switch (ch) { + + case '-': + Result = true; + break; + + default: + if (isupper(ch)) + Result = true; + else if (islower(ch)) + Result = true; + else + Result = false; + break; + } + return Result; +} + + +Static boolean IsUpper(ch) +Char ch; +{ + /*const*/ + boolean Result; + + if (isupper(ch)) + Result = true; + else + Result = false; + return Result; +} + + +Static boolean IsDigit(ch) +Char ch; +{ + /*const*/ + boolean Result; + + if (isdigit(ch)) + Result = true; + else + Result = false; + return Result; +} + + +Static boolean MatchAbbrev(sName, sAbbrev) +Char *sName, *sAbbrev; +{ + /*const*/ + long i; + boolean Result; + + if (strlen(sName) < strlen(sAbbrev)) { + Result = false; +/* p2c: Gbf.pas, line 245: Warning: Symbol 'RESULT' is not defined [221] */ + } else + Result = true; + i = 1; + while (i <= strlen(sAbbrev) && Result) { + if (toupper(sName[i - 1]) != sAbbrev[i - 1]) + Result = false; + i++; + } +} + + +Static uchar BookNameToNumber(sBookName) +Char *sBookName; +{ + /*const*/ + long Result; + + Result = 0; +/* p2c: Gbf.pas, line 259: Warning: Symbol 'RESULT' is not defined [221] */ + TRY(try1); + if (IsDigit(sBookName[strlen(sBookName) - 1]) & IsDigit(sBookName[0])) { + Result = StrToInt(sBookName); +/* p2c: Gbf.pas, line 262: + * Warning: Symbol 'STRTOINT' is not defined [221] */ + } + except(); +/* p2c: Gbf.pas, line 264: Warning: Symbol 'EXCEPT' is not defined [221] */ +/* p2c: Gbf.pas, line 264: + * Warning: Expected RECOVER, found 'Result' [227] */ + RECOVER(try1); + ; + ENDTRY(try1); +} + + +main(argc, argv) +int argc; +Char *argv[]; +{ /*// Yuk! Linear search.*/ + Char STR1[256]; + uchar Result; + +/* p2c: Gbf.pas, line 266: Warning: Expected BEGIN, found 'i' [227] */ + PASCAL_MAIN(argc, argv); + if (MatchAbbrev(sBookName, BookAbbr[i].Abbr)) { +/* p2c: Gbf.pas, line 269: + * Warning: Symbol 'SBOOKNAME' is not defined [221] */ +/* p2c: Gbf.pas, line 269: Warning: Mixing non-strings with strings [170] */ +/* p2c: Gbf.pas, line 269: Warning: Symbol 'I' is not defined [221] */ + Result = BookAbbr[i].Num; +/* p2c: Gbf.pas, line 271: Warning: Symbol 'I' is not defined [221] */ +/* p2c: Gbf.pas, line 271: Warning: Symbol 'RESULT' is not defined [221] */ + } +/* p2c: Gbf.pas, line 273: Warning: Symbol 'I' is not defined [221] */ + i++; + exit(EXIT_SUCCESS); +} +/* p2c: Gbf.pas, line 275: + * Warning: Junk at end of input file ignored [277] */ + + + +/* End. */ -- cgit