mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
.mod file extension for AMPL, Linux Kernel Module, Modula-2 and XML
This commit is contained in:
@@ -49,6 +49,7 @@ AMPL:
|
|||||||
color: "#E6EFBB"
|
color: "#E6EFBB"
|
||||||
extensions:
|
extensions:
|
||||||
- .ampl
|
- .ampl
|
||||||
|
- .mod
|
||||||
tm_scope: source.ampl
|
tm_scope: source.ampl
|
||||||
ace_mode: text
|
ace_mode: text
|
||||||
|
|
||||||
@@ -1703,6 +1704,13 @@ Limbo:
|
|||||||
tm_scope: none
|
tm_scope: none
|
||||||
ace_mode: text
|
ace_mode: text
|
||||||
|
|
||||||
|
Linux Kernel Module:
|
||||||
|
type: data
|
||||||
|
extensions:
|
||||||
|
- .mod
|
||||||
|
tm_scope: none
|
||||||
|
ace_mode: text
|
||||||
|
|
||||||
Liquid:
|
Liquid:
|
||||||
type: markup
|
type: markup
|
||||||
extensions:
|
extensions:
|
||||||
@@ -1968,6 +1976,13 @@ Modelica:
|
|||||||
tm_scope: source.modelica
|
tm_scope: source.modelica
|
||||||
ace_mode: text
|
ace_mode: text
|
||||||
|
|
||||||
|
Modula-2:
|
||||||
|
type: programming
|
||||||
|
extensions:
|
||||||
|
- .mod
|
||||||
|
tm_scope: none
|
||||||
|
ace_mode: text
|
||||||
|
|
||||||
Module Management System:
|
Module Management System:
|
||||||
type: programming
|
type: programming
|
||||||
extensions:
|
extensions:
|
||||||
@@ -3405,6 +3420,7 @@ XML:
|
|||||||
- .kml
|
- .kml
|
||||||
- .launch
|
- .launch
|
||||||
- .mm
|
- .mm
|
||||||
|
- .mod
|
||||||
- .mxml
|
- .mxml
|
||||||
- .nproj
|
- .nproj
|
||||||
- .nuspec
|
- .nuspec
|
||||||
|
|||||||
58
samples/AMPL/CT2.mod
Normal file
58
samples/AMPL/CT2.mod
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
param num_beams; # number of beams
|
||||||
|
|
||||||
|
param num_rows >= 1, integer; # number of rows
|
||||||
|
param num_cols >= 1, integer; # number of columns
|
||||||
|
|
||||||
|
set BEAMS := 1 .. num_beams; # set of beams
|
||||||
|
|
||||||
|
set ROWS := 1 .. num_rows; # set of rows
|
||||||
|
set COLUMNS := 1 .. num_cols; # set of columns
|
||||||
|
|
||||||
|
# values for entries of each beam
|
||||||
|
param beam_values {BEAMS, ROWS, COLUMNS} >= 0;
|
||||||
|
|
||||||
|
# values of tumor
|
||||||
|
param tumor_values {ROWS, COLUMNS} >= 0;
|
||||||
|
|
||||||
|
# values of critical area
|
||||||
|
param critical_values {ROWS, COLUMNS} >= 0;
|
||||||
|
|
||||||
|
# critical maximum dosage requirement
|
||||||
|
param critical_max;
|
||||||
|
|
||||||
|
# tumor minimum dosage requirement
|
||||||
|
param tumor_min;
|
||||||
|
|
||||||
|
# dosage scalar of each beam
|
||||||
|
var X {i in BEAMS} >= 0;
|
||||||
|
|
||||||
|
|
||||||
|
# define the tumor area which includes the locations where tumor exists
|
||||||
|
set tumor_area := {k in ROWS, h in COLUMNS: tumor_values[k,h] > 0};
|
||||||
|
|
||||||
|
# define critical area
|
||||||
|
set critical_area := {k in ROWS, h in COLUMNS: critical_values[k,h] > 0};
|
||||||
|
|
||||||
|
var S {(k,h) in tumor_area} >= 0;
|
||||||
|
var T {(k,h) in critical_area} >= 0;
|
||||||
|
|
||||||
|
# maximize total dosage in tumor area
|
||||||
|
maximize total_tumor_dosage: sum {i in BEAMS} sum {(k,h) in tumor_area} X[i] * beam_values[i,k,h];
|
||||||
|
|
||||||
|
# minimize total dosage in critical area
|
||||||
|
minimize total_critical_dosage: sum {i in BEAMS} sum {(k,h) in critical_area} X[i] * beam_values[i,k,h];
|
||||||
|
|
||||||
|
# minimize total tumor slack
|
||||||
|
minimize total_tumor_slack: sum {(k,h) in tumor_area} S[k,h];
|
||||||
|
|
||||||
|
# minimize total critical area slack
|
||||||
|
minimize total_critical_slack: sum {(k,h) in critical_area} T[k,h];
|
||||||
|
|
||||||
|
# total dosage at each tumor location [k,h] should be >= min tumor dosage with slack variable
|
||||||
|
subject to tumor_limit {(k,h) in tumor_area} : sum {i in BEAMS} X[i] * beam_values[i,k,h] == tumor_min - S[k,h];
|
||||||
|
|
||||||
|
# total dosage at each critical location [k,h] should be = max critical dosage with slack variable
|
||||||
|
subject to critical_limit {(k,h) in critical_area} : sum {i in BEAMS} X[i] * beam_values[i,k,h] == critical_max + T[k,h];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
2
samples/Linux Kernel Module/bcm4334x.mod
Normal file
2
samples/Linux Kernel Module/bcm4334x.mod
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
/data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcm4334x.ko
|
||||||
|
/data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_pno.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_common.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_ip.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_custom_gpio.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_linux.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_linux_sched.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_cfg80211.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_linux_wq.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/aiutils.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmevent.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmutils.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmwifi_channels.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/hndpmu.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/linux_osl.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/sbutils.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/siutils.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_android.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_cfg80211.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_cfgp2p.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_cfg_btcoex.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wldev_common.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/wl_linux_mon.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_linux_platdev.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmsdh.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmsdh_linux.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmsdh_sdmmc.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/bcmsdh_sdmmc_linux.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_cdc.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_wlfc.o /data/israel/edison/poky/meta-edison/recipes-kernel/bcm43340/driver_bcm43x/dhd_sdio.o
|
||||||
2
samples/Linux Kernel Module/mbcache.mod
Normal file
2
samples/Linux Kernel Module/mbcache.mod
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fs/mbcache.ko
|
||||||
|
fs/mbcache.o
|
||||||
2
samples/Linux Kernel Module/md5.mod
Normal file
2
samples/Linux Kernel Module/md5.mod
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
crypto/md5.ko
|
||||||
|
crypto/md5.o
|
||||||
329
samples/Modula-2/HuffChan.mod
Normal file
329
samples/Modula-2/HuffChan.mod
Normal file
@@ -0,0 +1,329 @@
|
|||||||
|
IMPLEMENTATION MODULE HuffChan;
|
||||||
|
|
||||||
|
(*
|
||||||
|
This module shows how to redefine standard IO file functions. It provides
|
||||||
|
functions for reading and writing packed files opened in Raw mode.
|
||||||
|
*)
|
||||||
|
|
||||||
|
IMPORT IOChan, IOLink, ChanConsts, IOConsts, SYSTEM, Strings;
|
||||||
|
FROM Storage IMPORT ALLOCATE, DEALLOCATE;
|
||||||
|
|
||||||
|
CONST
|
||||||
|
rbldFrq = 512; (* means: every 512 bytes rebuild table *)
|
||||||
|
|
||||||
|
TYPE
|
||||||
|
charTap = POINTER TO ARRAY [0..MAX(INTEGER)-1] OF CHAR;
|
||||||
|
smbTp = POINTER TO smbT;
|
||||||
|
|
||||||
|
smbT = RECORD (* Huffman's tree *)
|
||||||
|
ch : CHAR;
|
||||||
|
n : CARDINAL; (* frequncy of char ch *)
|
||||||
|
left,right,next : smbTp;
|
||||||
|
END;
|
||||||
|
|
||||||
|
tblT = RECORD (* bit sequence for code *)
|
||||||
|
vl : CARDINAL; (* bit sequence *)
|
||||||
|
cnt : INTEGER; (* it length *)
|
||||||
|
END;
|
||||||
|
|
||||||
|
lclDataT = RECORD (* channel's local data *)
|
||||||
|
tRoot : smbTp;
|
||||||
|
htbl : ARRAY [0..255] OF tblT; (* code -> bit sequence table *)
|
||||||
|
ftbl : ARRAY [0..255] OF CARDINAL; (* frequncey table *)
|
||||||
|
wBf,rb1,rb2 : CARDINAL;
|
||||||
|
wbc,rbc,smc : INTEGER;
|
||||||
|
chid : IOChan.ChanId;
|
||||||
|
END;
|
||||||
|
lclDataTp = POINTER TO lclDataT;
|
||||||
|
charp = POINTER TO CHAR;
|
||||||
|
|
||||||
|
VAR
|
||||||
|
did : IOLink.DeviceId;
|
||||||
|
ldt : lclDataTp;
|
||||||
|
|
||||||
|
|
||||||
|
PROCEDURE Shf(a:CARDINAL; b : INTEGER) : CARDINAL; (* shl a,b (or shr) *)
|
||||||
|
BEGIN
|
||||||
|
RETURN SYSTEM.CAST(CARDINAL,SYSTEM.SHIFT(SYSTEM.CAST(BITSET,a),b));
|
||||||
|
END Shf;
|
||||||
|
|
||||||
|
PROCEDURE wrDword(a:CARDINAL); (* write 4 bytes to file *)
|
||||||
|
BEGIN
|
||||||
|
IOChan.RawWrite(ldt^.chid,SYSTEM.ADR(a),4);
|
||||||
|
END wrDword;
|
||||||
|
|
||||||
|
PROCEDURE rdDword() : CARDINAL; (* read 4 bytes from file *)
|
||||||
|
VAR
|
||||||
|
a,z : CARDINAL;
|
||||||
|
BEGIN
|
||||||
|
a:=0;
|
||||||
|
IOChan.RawRead(ldt^.chid,SYSTEM.ADR(a),4,z);
|
||||||
|
RETURN a;
|
||||||
|
END rdDword;
|
||||||
|
|
||||||
|
PROCEDURE wrSmb(ch : CHAR); (* write bit sequence for code ch *)
|
||||||
|
VAR
|
||||||
|
v,h : CARDINAL;
|
||||||
|
b,c : INTEGER;
|
||||||
|
BEGIN
|
||||||
|
WITH ldt^ DO
|
||||||
|
v:=htbl[ORD(ch)].vl;
|
||||||
|
c:=htbl[ORD(ch)].cnt;
|
||||||
|
IF c+wbc<=32 THEN
|
||||||
|
wBf:=Shf(wBf,c);
|
||||||
|
wBf:=wBf+v;
|
||||||
|
wbc:=wbc+c;
|
||||||
|
IF wbc=32 THEN
|
||||||
|
wrDword(wBf);
|
||||||
|
wBf:=0; wbc:=0;
|
||||||
|
END;
|
||||||
|
RETURN;
|
||||||
|
END;
|
||||||
|
b:=c+wbc-32;
|
||||||
|
h:=Shf(v,-b);
|
||||||
|
wBf:=Shf(wBf,32-wbc)+h;
|
||||||
|
wrDword(wBf);
|
||||||
|
wBf:=v-Shf(h,b);
|
||||||
|
wbc:=b;
|
||||||
|
END;
|
||||||
|
END wrSmb;
|
||||||
|
|
||||||
|
PROCEDURE flush(); (* write data in buffer *)
|
||||||
|
BEGIN
|
||||||
|
WITH ldt^ DO
|
||||||
|
wBf:=Shf(wBf,32-wbc);
|
||||||
|
wrDword(wBf);
|
||||||
|
END;
|
||||||
|
END flush;
|
||||||
|
|
||||||
|
PROCEDURE getSym() : CHAR; (* find code for first bit sequence in buffer *)
|
||||||
|
VAR
|
||||||
|
t,i : CARDINAL;
|
||||||
|
b : INTEGER;
|
||||||
|
BEGIN
|
||||||
|
WITH ldt^ DO
|
||||||
|
IF rbc<=32 THEN
|
||||||
|
rb2:=rdDword();
|
||||||
|
t:=Shf(rb2,-rbc);
|
||||||
|
IF rbc=32 THEN t:=0; END;
|
||||||
|
rb1:=rb1+t;
|
||||||
|
rb2:=Shf(rb2,32-rbc);
|
||||||
|
IF rbc=0 THEN rb2:=0; END;
|
||||||
|
rbc:=rbc+32;
|
||||||
|
END;
|
||||||
|
FOR i:=0 TO 255 DO
|
||||||
|
t:=Shf(rb1,htbl[i].cnt-32);
|
||||||
|
IF t=htbl[i].vl THEN
|
||||||
|
rb1:=Shf(rb1,htbl[i].cnt);
|
||||||
|
b:=32-htbl[i].cnt;
|
||||||
|
t:=Shf(rb2,-b);
|
||||||
|
rb1:=rb1+t;
|
||||||
|
rb2:=Shf(rb2,32-b);
|
||||||
|
rbc:=rbc+b-32;
|
||||||
|
RETURN CHR(i);
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
END getSym;
|
||||||
|
|
||||||
|
PROCEDURE Insert(s : smbTp); (* insert new character in Huffman's tree *)
|
||||||
|
VAR
|
||||||
|
cr : smbTp;
|
||||||
|
BEGIN
|
||||||
|
WITH ldt^ DO
|
||||||
|
IF tRoot=NIL THEN
|
||||||
|
cr:=tRoot;
|
||||||
|
tRoot:=s;
|
||||||
|
s^.next:=cr;
|
||||||
|
RETURN;
|
||||||
|
ELSIF tRoot^.n<=s^.n THEN
|
||||||
|
cr:=tRoot;
|
||||||
|
tRoot:=s;
|
||||||
|
s^.next:=cr;
|
||||||
|
RETURN;
|
||||||
|
END;
|
||||||
|
cr:=tRoot;
|
||||||
|
WHILE (cr^.next<>NIL) & (cr^.next^.n>s^.n) DO
|
||||||
|
cr:=cr^.next;
|
||||||
|
END;
|
||||||
|
s^.next:=cr^.next;
|
||||||
|
cr^.next:=s;
|
||||||
|
END;
|
||||||
|
END Insert;
|
||||||
|
|
||||||
|
PROCEDURE BuildTree(); (* build Huffman's tree *)
|
||||||
|
VAR
|
||||||
|
cr,ocr,ncr : smbTp;
|
||||||
|
BEGIN
|
||||||
|
WITH ldt^ DO
|
||||||
|
LOOP
|
||||||
|
ocr:=NIL; cr:=tRoot;
|
||||||
|
WHILE cr^.next^.next<>NIL DO
|
||||||
|
ocr:=cr; cr:=cr^.next;
|
||||||
|
END;
|
||||||
|
NEW(ncr);
|
||||||
|
ncr^.n:=cr^.n+cr^.next^.n;
|
||||||
|
ncr^.left:=cr;
|
||||||
|
ncr^.right:=cr^.next;
|
||||||
|
IF ocr<>NIL THEN
|
||||||
|
ocr^.next:=NIL;
|
||||||
|
Insert(ncr);
|
||||||
|
ELSE
|
||||||
|
tRoot:=NIL;
|
||||||
|
Insert(ncr);
|
||||||
|
EXIT;
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
END BuildTree;
|
||||||
|
|
||||||
|
PROCEDURE BuildTable(cr: smbTp; vl,n: CARDINAL); (* build table: code -> bit sequence *)
|
||||||
|
BEGIN
|
||||||
|
WITH ldt^ DO
|
||||||
|
IF cr^.left=NIL THEN
|
||||||
|
htbl[ORD(cr^.ch)].vl:=vl;
|
||||||
|
htbl[ORD(cr^.ch)].cnt:=n;
|
||||||
|
DISPOSE(cr);
|
||||||
|
RETURN;
|
||||||
|
END;
|
||||||
|
vl:=vl*2;
|
||||||
|
BuildTable(cr^.left,vl,n+1);
|
||||||
|
BuildTable(cr^.right,vl+1,n+1);
|
||||||
|
DISPOSE(cr);
|
||||||
|
END;
|
||||||
|
END BuildTable;
|
||||||
|
|
||||||
|
PROCEDURE clcTab(); (* build code/bitseq. table from frequency table *)
|
||||||
|
VAR
|
||||||
|
i : CARDINAL;
|
||||||
|
s : smbTp;
|
||||||
|
BEGIN
|
||||||
|
WITH ldt^ DO
|
||||||
|
tRoot:=NIL;
|
||||||
|
FOR i:=0 TO 255 DO
|
||||||
|
NEW(s);
|
||||||
|
s^.ch:=CHR(i);
|
||||||
|
s^.n:=ftbl[i];
|
||||||
|
s^.left:=NIL; s^.right:=NIL; s^.next:=NIL;
|
||||||
|
Insert(s);
|
||||||
|
END;
|
||||||
|
BuildTree();
|
||||||
|
BuildTable(tRoot,0,0);
|
||||||
|
END;
|
||||||
|
END clcTab;
|
||||||
|
|
||||||
|
PROCEDURE iniHuf();
|
||||||
|
VAR
|
||||||
|
i : CARDINAL;
|
||||||
|
BEGIN
|
||||||
|
WITH ldt^ DO
|
||||||
|
FOR i:=0 TO 255 DO
|
||||||
|
ftbl[i]:=1;
|
||||||
|
END;
|
||||||
|
wBf:=0; wbc:=0; rb1:=0; rb2:=0; rbc:=0;
|
||||||
|
smc:=0;
|
||||||
|
clcTab();
|
||||||
|
END;
|
||||||
|
END iniHuf;
|
||||||
|
|
||||||
|
|
||||||
|
PROCEDURE RawWrite(x: IOLink.DeviceTablePtr; buf: SYSTEM.ADDRESS;
|
||||||
|
len: CARDINAL);
|
||||||
|
VAR
|
||||||
|
i : CARDINAL;
|
||||||
|
ch : CHAR;
|
||||||
|
cht : charTap;
|
||||||
|
BEGIN
|
||||||
|
IF len = 0 THEN RETURN; END;
|
||||||
|
ldt:=SYSTEM.CAST(lclDataTp,x^.cd);
|
||||||
|
cht:=SYSTEM.CAST(charTap,buf);
|
||||||
|
WITH ldt^ DO
|
||||||
|
FOR i:=0 TO len-1 DO
|
||||||
|
ch:=cht^[i];
|
||||||
|
wrSmb(ch);
|
||||||
|
IF ch = 377C THEN wrSmb(ch); END;
|
||||||
|
ftbl[ORD(ch)]:=ftbl[ORD(ch)]+1; smc:=smc+1;
|
||||||
|
IF smc=rbldFrq THEN
|
||||||
|
clcTab();
|
||||||
|
smc:=0;
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
x^.result:=IOChan.ReadResult(ldt^.chid);
|
||||||
|
END RawWrite;
|
||||||
|
|
||||||
|
PROCEDURE RawRead(x: IOLink.DeviceTablePtr; buf: SYSTEM.ADDRESS;
|
||||||
|
blen: CARDINAL; VAR len: CARDINAL);
|
||||||
|
VAR
|
||||||
|
i : CARDINAL;
|
||||||
|
cht : charTap;
|
||||||
|
ch : CHAR;
|
||||||
|
BEGIN
|
||||||
|
ldt:=SYSTEM.CAST(lclDataTp,x^.cd);
|
||||||
|
cht:=SYSTEM.CAST(charTap,buf);
|
||||||
|
IF (blen=0) OR (x^.result<>IOConsts.allRight) THEN len:=0; RETURN; END;
|
||||||
|
WITH ldt^ DO
|
||||||
|
FOR i:=0 TO blen-1 DO
|
||||||
|
ch:=getSym();
|
||||||
|
IF ch = 377C THEN
|
||||||
|
ch:=getSym();
|
||||||
|
IF ch = 0C THEN
|
||||||
|
x^.result:=IOConsts.endOfInput;
|
||||||
|
len:=i; cht^[i]:=0C;
|
||||||
|
RETURN;
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
cht^[i]:=ch;
|
||||||
|
ftbl[ORD(ch)]:=ftbl[ORD(ch)]+1; smc:=smc+1;
|
||||||
|
IF smc=rbldFrq THEN
|
||||||
|
clcTab();
|
||||||
|
smc:=0;
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
len:=blen;
|
||||||
|
END;
|
||||||
|
END RawRead;
|
||||||
|
|
||||||
|
PROCEDURE CreateAlias(VAR cid: ChanId; io: ChanId; VAR res: OpenResults);
|
||||||
|
VAR
|
||||||
|
x : IOLink.DeviceTablePtr;
|
||||||
|
BEGIN
|
||||||
|
IOLink.MakeChan(did,cid);
|
||||||
|
IF cid = IOChan.InvalidChan() THEN
|
||||||
|
res:=ChanConsts.outOfChans
|
||||||
|
ELSE
|
||||||
|
NEW(ldt);
|
||||||
|
IF ldt=NIL THEN
|
||||||
|
IOLink.UnMakeChan(did,cid);
|
||||||
|
res:=ChanConsts.outOfChans;
|
||||||
|
RETURN;
|
||||||
|
END;
|
||||||
|
x:=IOLink.DeviceTablePtrValue(cid,did,IOChan.notAvailable,"");
|
||||||
|
ldt^.chid:=io;
|
||||||
|
x^.cd:=ldt;
|
||||||
|
x^.doRawWrite:=RawWrite;
|
||||||
|
x^.doRawRead:=RawRead;
|
||||||
|
res:=ChanConsts.opened;
|
||||||
|
iniHuf();
|
||||||
|
x^.result:=IOConsts.allRight;
|
||||||
|
END;
|
||||||
|
END CreateAlias;
|
||||||
|
|
||||||
|
PROCEDURE DeleteAlias(VAR cid: ChanId);
|
||||||
|
VAR
|
||||||
|
x : IOLink.DeviceTablePtr;
|
||||||
|
BEGIN
|
||||||
|
x:=IOLink.DeviceTablePtrValue(cid,did,IOChan.notAvailable,"");
|
||||||
|
ldt:=x^.cd;
|
||||||
|
IF ldt^.rbc=0 THEN
|
||||||
|
wrSmb(377C);
|
||||||
|
wrSmb(0C);
|
||||||
|
flush();
|
||||||
|
END;
|
||||||
|
DISPOSE(ldt);
|
||||||
|
IOLink.UnMakeChan(did,cid);
|
||||||
|
END DeleteAlias;
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
IOLink.AllocateDeviceId(did);
|
||||||
|
END HuffChan.
|
||||||
125
samples/XML/xhtml-struct-1.mod
Normal file
125
samples/XML/xhtml-struct-1.mod
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
<!-- ...................................................................... -->
|
||||||
|
<!-- XHTML Structure Module .............................................. -->
|
||||||
|
<!-- file: xhtml-struct-1.mod
|
||||||
|
|
||||||
|
This is XHTML, a reformulation of HTML as a modular XML application.
|
||||||
|
Copyright 1998-2000 W3C (MIT, INRIA, Keio), All Rights Reserved.
|
||||||
|
Revision: $Id: xhtml-struct-1.mod,v 1.1.1.1 2006/01/09 19:23:30 rcrews Exp $ SMI
|
||||||
|
|
||||||
|
This DTD module is identified by the PUBLIC and SYSTEM identifiers:
|
||||||
|
|
||||||
|
PUBLIC "-//W3C//ELEMENTS XHTML Document Structure 1.0//EN"
|
||||||
|
SYSTEM "http://www.w3.org/TR/xhtml-modulatization/DTD/xhtml-struct-1.mod"
|
||||||
|
|
||||||
|
Revisions:
|
||||||
|
(none)
|
||||||
|
....................................................................... -->
|
||||||
|
|
||||||
|
<!-- Document Structure
|
||||||
|
|
||||||
|
title, head, body, html
|
||||||
|
|
||||||
|
The Structure Module defines the major structural elements and
|
||||||
|
their attributes.
|
||||||
|
|
||||||
|
Note that the content model of the head element type is redeclared
|
||||||
|
when the Base Module is included in the DTD.
|
||||||
|
|
||||||
|
The parameter entity containing the XML namespace URI value used
|
||||||
|
for XHTML is '%XHTML.xmlns;', defined in the Qualified Names module.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- title: Document Title ............................. -->
|
||||||
|
|
||||||
|
<!-- The title element is not considered part of the flow of text.
|
||||||
|
It should be displayed, for example as the page header or
|
||||||
|
window title. Exactly one title is required per document.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!ENTITY % title.element "INCLUDE" >
|
||||||
|
<![%title.element;[
|
||||||
|
<!ENTITY % title.content "( #PCDATA )" >
|
||||||
|
<!ENTITY % title.qname "title" >
|
||||||
|
<!ELEMENT %title.qname; %title.content; >
|
||||||
|
<!-- end of title.element -->]]>
|
||||||
|
|
||||||
|
<!ENTITY % title.attlist "INCLUDE" >
|
||||||
|
<![%title.attlist;[
|
||||||
|
<!ATTLIST %title.qname;
|
||||||
|
%XHTML.xmlns.attrib;
|
||||||
|
%I18n.attrib;
|
||||||
|
>
|
||||||
|
<!-- end of title.attlist -->]]>
|
||||||
|
|
||||||
|
<!-- head: Document Head ............................... -->
|
||||||
|
|
||||||
|
<!ENTITY % head.element "INCLUDE" >
|
||||||
|
<![%head.element;[
|
||||||
|
<!ENTITY % head.content
|
||||||
|
"( %HeadOpts.mix;, %title.qname;, %HeadOpts.mix; )"
|
||||||
|
>
|
||||||
|
<!ENTITY % head.qname "head" >
|
||||||
|
<!ELEMENT %head.qname; %head.content; >
|
||||||
|
<!-- end of head.element -->]]>
|
||||||
|
|
||||||
|
<!ENTITY % head.attlist "INCLUDE" >
|
||||||
|
<![%head.attlist;[
|
||||||
|
<!-- reserved for future use with document profiles
|
||||||
|
-->
|
||||||
|
<!ENTITY % profile.attrib
|
||||||
|
"profile %URI.datatype; '%XHTML.profile;'"
|
||||||
|
>
|
||||||
|
|
||||||
|
<!ATTLIST %head.qname;
|
||||||
|
%XHTML.xmlns.attrib;
|
||||||
|
%I18n.attrib;
|
||||||
|
%profile.attrib;
|
||||||
|
>
|
||||||
|
<!-- end of head.attlist -->]]>
|
||||||
|
|
||||||
|
<!-- body: Document Body ............................... -->
|
||||||
|
|
||||||
|
<!ENTITY % body.element "INCLUDE" >
|
||||||
|
<![%body.element;[
|
||||||
|
<!ENTITY % body.content
|
||||||
|
"( %Block.mix; )+"
|
||||||
|
>
|
||||||
|
<!ENTITY % body.qname "body" >
|
||||||
|
<!ELEMENT %body.qname; %body.content; >
|
||||||
|
<!-- end of body.element -->]]>
|
||||||
|
|
||||||
|
<!ENTITY % body.attlist "INCLUDE" >
|
||||||
|
<![%body.attlist;[
|
||||||
|
<!ATTLIST %body.qname;
|
||||||
|
%Common.attrib;
|
||||||
|
>
|
||||||
|
<!-- end of body.attlist -->]]>
|
||||||
|
|
||||||
|
<!-- html: XHTML Document Element ...................... -->
|
||||||
|
|
||||||
|
<!ENTITY % html.element "INCLUDE" >
|
||||||
|
<![%html.element;[
|
||||||
|
<!ENTITY % html.content "( %head.qname;, %body.qname; )" >
|
||||||
|
<!ENTITY % html.qname "html" >
|
||||||
|
<!ELEMENT %html.qname; %html.content; >
|
||||||
|
<!-- end of html.element -->]]>
|
||||||
|
|
||||||
|
<!ENTITY % html.attlist "INCLUDE" >
|
||||||
|
<![%html.attlist;[
|
||||||
|
<!-- version attribute value defined in driver
|
||||||
|
-->
|
||||||
|
<!ENTITY % XHTML.version.attrib
|
||||||
|
"version %FPI.datatype; #FIXED '%XHTML.version;'"
|
||||||
|
>
|
||||||
|
|
||||||
|
<!-- see the Qualified Names module for information
|
||||||
|
on how to extend XHTML using XML namespaces
|
||||||
|
-->
|
||||||
|
<!ATTLIST %html.qname;
|
||||||
|
%XHTML.xmlns.attrib;
|
||||||
|
%XHTML.version.attrib;
|
||||||
|
%I18n.attrib;
|
||||||
|
>
|
||||||
|
<!-- end of html.attlist -->]]>
|
||||||
|
|
||||||
|
<!-- end of xhtml-struct-1.mod -->
|
||||||
Reference in New Issue
Block a user