|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T p
Length: 5592 (0x15d8)
Types: TextFile
Names: »pfd-2.y«
└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12
└─⟦af5ba6c8e⟧ »unix3.0/DVIWARE.tar.Z«
└─⟦ca79c7339⟧
└─⟦this⟧ »DVIware/laser-setters/dvi-to-ps/TeXPS/pfd2tfm/src/pfd-2.y«
/* Copyright information can be found in file "Copyright" */
/************************************************************************/
/* pfd-2.y */
/************************************************************************/
%type <d> Number
%% /* Rules Section */
program: Start Rules End
;
Start: K_StartPfd T_SEMICOLON
;
Rules: |
Rules Rule
;
Rule:
BaseFont |
CharWidth |
Comment |
DesignSize |
EmulateFont |
EncodingClass |
ExcludeChars |
ExecPsCode |
ExtraSpace |
FontDimen |
HRatio |
InvisibleSlitexFont |
KPX |
Ligature |
MapChars |
MaxCharCode |
MonoCase |
NoAfmKernings |
NoAfmLigatures |
OutlineFactor |
Quad |
Shrink |
Slant |
Space |
Stretch |
TeXMacroDefs |
TiltAngle |
WidthDelta |
XHeight
;
BaseFont: K_BaseFontName T_STRING T_SEMICOLON
{ BaseFontName = $2;
fprintf (stderr, "Basefont: %s\n", BaseFontName);
}
;
CharWidth: K_CharWidth T_ID T_INT T_SEMICOLON
{ ChangeWidthPfd($2, $3);
}
;
Comment: K_Comment T_STRING T_SEMICOLON
;
DesignSize: K_DesignSize Number T_ID T_SEMICOLON
{
CompareStringError ($3, "pt",
"DesignSize: unit must be \"pt\"");
DesignSize = $2;
}
;
EmulateFont: K_EmulateFont T_STRING T_SEMICOLON
{ EmulateFont ($2);
}
;
EncodingClass: K_EncodingClass T_INT T_SEMICOLON
{ if ($2 < -1 || $2 >= NEVS)
Fatal2 ("pfd-2.y:(): Encoding class out of range [0..%d] or -1",
NEVS - 1);
EncodingClass = $2;
}
End: K_EndPfd T_SEMICOLON
;
ExcludeChars: K_ExcludeChar ExcludeCharList T_SEMICOLON
;
ExcludeCharList: ExcludeChar
| ExcludeCharList T_COMMA ExcludeChar
;
ExcludeChar: T_ID
{
InsertKeyIntoHashTable (ExcludeCharHashTable, $1);
}
|
;
ExecPsCode: K_ExecPsCode T_INT /* type */
T_INT /* character code */
T_INT T_INT T_INT /* height, depth, width */
T_STRING T_SEMICOLON
{
CharExecPs($2, $3, $4, $5, $6, $7);
}
ExtraSpace: K_ExtraSpace T_INT T_SEMICOLON
{ ExtraSpace = $2;
}
;
FontDimen: K_FontDimen T_INT T_INT T_SEMICOLON
{ if ($2<=7 || $2 >22)
Fatal ("PfdYacc(): Fontdimen: index wrong");
FontDimenArray[$2] = $3;
}
;
HRatio: K_HRatio Number T_SEMICOLON
{ HRatio = $2;
if (HRatio < 0.1 || HRatio > 10.0)
Fatal ("PfdYacc(): HRatio outside range [0.1...10]");
}
;
InvisibleSlitexFont: K_InvisibleSlitexFont T_SEMICOLON
{
SlitexInvisible = TRUE;
}
;
/*
* A KPX command can be used to change the kerning as it
* is defined in the .afm file, or it can simply add a new kerning
*/
KPX: K_KPX T_ID T_ID T_INT T_SEMICOLON
{ SaveKerningInfo ($2, $3, $4); }
;
Ligature: K_Ligature T_ID T_ID T_ID T_SEMICOLON
{ SaveLigatureInfo ($2, $3, $4); }
;
MapChars: K_MapChar MapCharList T_SEMICOLON
;
MapCharList: MapChar
|
MapCharList T_COMMA MapChar
;
MapChar: T_ID T_INT
{
MapChar($1, $2);
}
;
MaxCharCode: K_MaxCharCode T_INT T_SEMICOLON
{
MaxCharCode = $2;
if (MaxCharCode != 127 && MaxCharCode != 255)
Fatal ("MaxCharCode(): must be either 127 or 255");
}
/* Not working yet: mono case PS fonts */
MonoCase: K_MonoCase Number T_SEMICOLON
{ MonoCase = $2 ;
}
;
NoAfmKernings: K_NoAfmKernings T_SEMICOLON
{ UseAfmKernings = FALSE;
}
;
NoAfmLigatures: K_NoAfmLigatures T_SEMICOLON
{ UseAfmLigatures = FALSE;
}
;
/* Not working yet: outline Postscript fonts. */
OutlineFactor: K_OutlineFactor Number T_SEMICOLON
{ OutlineFactor = $2 ;
}
;
Quad: K_Quad T_INT T_SEMICOLON
{ Quad = $2;
}
;
Shrink: K_Shrink T_INT T_SEMICOLON
{
Shrink = $2;
}
;
Slant: K_Slant T_INT T_SEMICOLON
{
Slant = $2;
}
;
Space: K_Space T_INT T_SEMICOLON
{
Space = $2;
}
;
Stretch: K_Stretch T_INT T_SEMICOLON
{
Stretch = $2;
}
;
TeXMacroDefs: K_TeXMacroDefs T_INT T_STRING T_SEMICOLON
{
TeXMacroDefsControl = $2;
TeXMacroDefs = $3;
if (TeXMacroDefsControl < 0 || TeXMacroDefsControl > 1)
Fatal ("TeXMacroDefs command: 1st parameter out of range");
}
;
TiltAngle: K_TiltAngle Number T_SEMICOLON
{
TiltAngle = $2 ;
}
;
WidthDelta: K_WidthDelta Number T_SEMICOLON
{
WidthDelta = $2 ;
}
;
XHeight: K_XHeight T_INT T_SEMICOLON
{
XHeight = $2;
}
;
/* Number: read in a floating point number or an integer, return
floating pointer number (always) */
Number: T_INT { $$ = (double) $1; }
|
T_FLOAT { $$ = $1; }
;