

#include <stdio.h›
#define fiasko (-1)
typedef struct{int sxlosilo; char *valoro;} ano;
int duonigaSercxo(ano V[], int n, int sx) /*funkciĉapo*/
{ int sube = 0, supre = n - 1, meze, sx_m; /*lokaj variabloj*/
while(sube <= supre){ /*ĉapo de komenckondiĉa iteracio*/
meze = (sube + supre) / 2;
if((sx_m = V[meze].sxlosilo) == sx) return meze; /*elirejo*/
if(sx < sx_m) supre = meze - 1;
else sube = meze + 1;
} /*finiĝis la komenckondiĉa iteracio*/
return fiasko;
} /*finiĝis la korpo de la funkcio*/
int cxen_al_ent(char *cx) /* faras el signoĉeno cx entjeron */
{ int i, n, minuso = 0; /* lokaj variabloj */
for(i = 0; ' ' == cx[i] || '\n' == cx[i] || '\t' == cx[i]; i++);
// i := 0;
// DUM (cx[i]=' ') AŬ (cx[i]=nl) AŬ (cx[i]=tab) FARU STARTO
// STARTO {la vakua iteracikorpo} FINO;
// i := i + 1 {la nombrilkremento el la iteraciĉapo}
// FINO;
switch(cx[i]) { case '-': minuso = 1; case '+': i++; }
// alfo := cx[i];
// SE alfo = '-' TIAM AL 1;
// SE alfo = '+' TIAM AL 2 ALIE AL 3;
// 1: minuso := 1;
// 2: i := i + 1;
// 3: {daŭrigo...};
for(n=0; cx[i]›='0'&&cx[i]<='9';) n = 10*n+cx[i++]-'0';
// n := 0;
// DUM (cx[i] ≥ '0') KAJ (cx[i] <= '9') FARU STARTO
// n := 10*n + nro(cx[i]) - nro('0');
// i := i + 1; {postalkremento}
// FINO;
return (minuso ? -n : n); /* kondiĉa esprimo en revenordono */
} #define AVXTO auto #define ELIRU break #define OKAZO case #define SIGNA char #define SIGNAJ char #define KOMPLEKSA complex #define KOMPLEKSAJ complex #define KONST const #define PLU continue #define CETERE default #define FARU do #define DUOBLA double #define DUOBLAJ double #define ALIE else #define ENUM enum #define EKSTERA extern #define EKSTERAJ extern #define REELA float #define REELAJ float #define POR for #define AL goto #define SE if #define IMAGINARA imaginary #define MALFERMITA inline #define ENTJERA int #define ENTJERAJ int #define LONGA long #define LONGAJ long #define REGXISTRO register #define REGXISTROJ register #define EKSKLUZIVA restrict #define EKSKLUZIVAJ restrict #define REEN return #define KURTA short #define KURTAJ short #define SIGNUMA signed #define SIGNUMAJ signed #define DABAJTOJ sizeof #define STATIKA static #define STATIKAJ static #define RIKORDO struct #define STRUKTURO struct #define ELEKTU switch #define TIPDIFINO typedef #define UNIO union #define NATURA unsigned #define NATURAJ unsigned #define VAKA void #define VARIEMA volatile #define VARIEMAJ volatile #define DUM while
La programoj uzantaj tiun dosieron devas ĝin importi, ekz-e kiel en la sekva adaptaĵo de la funkcio atoi (Paralelaj tekstoj en C kaj Paskalo):
#include <stdio.h›
#include "eoc.h"
ENTJERA cxen_al_ent(SIGNA *cx)
{
ENTJERAJ i, n, minuso = 0; /* lokaj variabloj */
POR(i = 0; cx[i] == ' ' || cx[i] == '\n' || cx[i] == '\t'; i++) ;
ELEKTU(cx[i]) {
OKAZO '-': minuso = 1;
OKAZO '+': i++;
}
POR(n = 0; cx[i] ≥ '0' && cx[i] ≤ '9';)
n = 10 * n + cx[i++] - '0';
REEN minuso ? -n : n ;
}