/* Copyright (c) 1982 Regents of the University of California */
static char sccsid
[] = "@(#)languages.c 1.2 %G%";
typedef struct Language
*Language
;
L_PRINTDECL
, L_PRINTVAL
, L_TYPEMATCH
typedef LanguageOperation();
LanguageOperation
*op
[10];
* Initialize language information.
* The last language initialized will be the default one
* for otherwise indistinguised symbols.
public Language
findlanguage(suffix
)
while (lang
!= nil
and not streq(lang
->suffix
, suffix
)) {
public String
language_name(lang
)
return (lang
== nil
) ? "(nil)" : lang
->name
;
public Language
language_define(name
, suffix
)
public language_setop(lang
, op
, operation
)
LanguageOperation
*operation
;
assert(ord(op
) <= ord(L_TYPEMATCH
));
lang
->op
[ord(op
)] = operation
;
public LanguageOperation
*language_op(lang
, op
)