| version 1.1, 2001/01/04 12:29:32 |
version 1.2, 2001/01/08 05:26:50 |
|
|
| /* $OpenXM$ */ |
/* $OpenXM: OpenXM/src/k097/Doc/genhelp.k,v 1.1 2001/01/04 12:29:32 takayama Exp $ */ |
| |
|
| /* Todo |
/* Todo |
| |
|
| * Helplist should be sorted. |
* Example should be rewrited to Ex. |
| * Ex. should be removed. |
|
| * Args and references should be given in the Helplist. |
* Args and references should be given in the Helplist. |
| |
See slib.k for the format of Helplist. |
| |
[ , , null, null,"short description"] No arg and no ( ), no reference. |
| |
[ , , ["a","b"],["Load_sm1"],"short description"] |
| |
[ , , [ ], null,"short description"] No arg, no reference. |
| |
|
| */ |
*/ |
| |
|
| |
/* It is for category == null */ |
| def foo() { |
def foo() { |
| local n,i,key,s,aaa,ref; |
local n,i,j,key,s,aaa,ref,keys,shortDesc,category; |
| |
|
| Println("DO NOT EDIT THIS FILE. "); |
Println("DO NOT EDIT THIS FILE. "); |
| Println("It is AUTHOMATICALLY GENERATED."); |
Println("It is AUTHOMATICALLY GENERATED."); |
| sm1(" (cat standard-0.texi) system "); |
sm1(" (cat standard-0.texi) system "); |
| n = Length(Helplist); |
n = Length(Helplist); |
| |
keys = [" "]; /* This is a gate keeper for shell. */ |
| |
for (i=0; i< n; i++ ) { |
| |
category = Helplist[i,0]; |
| |
if (Tag(category) == 0) { |
| |
keys = Append(keys,Helplist[i,1,0]); |
| |
} |
| |
} |
| |
keys = sm1(keys," shell "); |
| |
n = Length(keys); |
| |
|
| Println("/*&C "); |
Println("/*&C "); |
| Println("@menu "); |
Println("@menu "); |
| for (i=0; i<n; i++) { |
for (i=1; i<n; i++) { |
| Print("* "); Print(Helplist[i,0]); Println("::"); |
Print("* "); Print(keys[i]); Println("::"); |
| } |
} |
| Println("@end menu"); Ln(); |
Println("@end menu"); Ln(); |
| Println(" */"); Ln(); |
Println(" */"); Ln(); |
| |
|
| n = Length(Helplist); |
for (j=1; j<n; j++) { |
| for (i=0; i<n; i++) { |
Print("//&C @c "); Print(j); Print("/"); Println(n-1); |
| Print("//&C @c "); Println(i); |
Stderr.Print(j/(n-1)); Stderr.Print(" "); |
| key = Helplist[i,0]; |
Stderr.Flush(); |
| s = Helplist[i,1]; |
i = 0; |
| if (Length(Helplist[i]) > 2) { |
while (i < n-1) { |
| aaa = Helplist[i,2]; |
if (keys[j] == Helplist[i,1,0]) { |
| ref = Helplist[i,3]; |
key = Helplist[i,1,0]; |
| }else{ |
s = Helplist[i,1,1]; |
| aaa = " (?) "; |
if (Length(Helplist[i,1]) > 2) { |
| ref = "Not yet written."; |
if (Length(Helplist[i,1]) != 5) { |
| |
Stderr.Print(Helplist[i,1]); |
| |
Stderr.Println(" has a bad format. "); |
| |
Error("Stop by an error."); |
| |
} |
| |
aaa = Helplist[i,1,2]; |
| |
ref = Helplist[i,1,3]; |
| |
shortDesc = Helplist[i,1,4]; |
| |
}else{ |
| |
aaa = " (?) "; |
| |
ref = "Not yet written."; |
| |
shortDesc = " "; |
| |
} |
| |
break; |
| |
} |
| |
i++; |
| } |
} |
| printItem(key,s,aaa,ref); |
printItem(key,s,aaa,ref,shortDesc); |
| } |
} |
| |
|
| sm1(" (cat standard-1.texi) system "); |
sm1(" (cat standard-1.texi) system "); |
| |
|
| } |
} |
| |
|
| def printItem(key,s,aaa,ref) { |
def printItem(key,s,aaa,ref,shortDesc) { |
| local desc,example; |
local desc,example,i,shortDesc; |
| desc = splitExample(s); |
desc = splitExample(s); |
| |
|
| Println("/*&en "); |
Println("/*&en "); |
| Line 56 def printItem(key,s,aaa,ref) { |
|
| Line 85 def printItem(key,s,aaa,ref) { |
|
| Print("@subsection @code{"); Print(key); Println("}"); |
Print("@subsection @code{"); Print(key); Println("}"); |
| Print("@findex "); Println(key); |
Print("@findex "); Println(key); |
| Println("@table @t"); |
Println("@table @t"); |
| Print("@item "); Print(key); Println(aaa); |
Print("@item "); Print(key); |
| Print(":: "); Println(desc[0]); |
if (Tag(aaa) != 0) { |
| |
if (IsArray(aaa)) { |
| |
Print(AsciiToString(LeftBracket)); /* ( */ |
| |
if (Length(aaa) >0) { |
| |
for (i=0; i<Length(aaa)-1; i++) { |
| |
Print("@var{"); Print(aaa[i]); |
| |
Print("},"); |
| |
} |
| |
Print("@var{"); Print(aaa[Length(aaa)-1]); |
| |
Print("}"); |
| |
} |
| |
Print(AsciiToString(RightBracket)); /* ) */ |
| |
}else{ |
| |
Println(aaa); |
| |
} |
| |
}else{ |
| |
Ln(); |
| |
} |
| |
Print(":: "); Println(shortDesc); |
| Println("@end table"); |
Println("@end table"); |
| Ln(); |
Ln(); |
| Println(" */"); |
Println(" */"); |
| Line 76 def printItem(key,s,aaa,ref) { |
|
| Line 123 def printItem(key,s,aaa,ref) { |
|
| Ln(); |
Ln(); |
| Println(" */ "); |
Println(" */ "); |
| } |
} |
| Println("/*&C "); |
if (Tag(ref) != 0) { |
| Println("@table @t"); |
Println("/*&C "); |
| Println("@item Reference"); |
Println("@table @t"); |
| Println(ref); |
Println("@item See also"); |
| Println("@end table"); |
if (IsArray(ref)) { |
| Ln(); |
if (Length(ref) > 0) { |
| Println(" */ "); |
for (i=0; i<Length(ref)-1; i++) { |
| |
Print("@code{"); |
| |
Print(ref[i]); Print("}"); Print(", "); |
| |
} |
| |
Print("@code{"); |
| |
Print(ref[Length(ref)-1]); Println("} "); |
| |
} |
| |
}else{ |
| |
Println(ref); |
| |
} |
| |
Println("@end table"); |
| |
Ln(); |
| |
Println(" */ "); |
| |
} |
| } |
} |
| |
|
| def findKey(keys,s) { |
def findKey(keys,s) { |
| Line 162 def splitExample(s) { |
|
| Line 222 def splitExample(s) { |
|
| } |
} |
| |
|
| def addEscape(s) { |
def addEscape(s) { |
| local i,n,ans,leftCurryBrace,rightCurryBrace,at; |
local i,n,ans,leftCurryBrace,rightCurryBrace,at,leftIneq,rightIneq, |
| |
ex0; |
| leftCurryBrace = 123; |
leftCurryBrace = 123; |
| rightCurryBrace = 125; |
rightCurryBrace = 125; |
| at = 64; |
leftIneq = 60; /* < */ |
| |
rightIneq = 62; /* > */ |
| |
at = 64; /* @ */ |
| |
ex0 = StringToAsciiArray("Ex."); |
| s = StringToAsciiArray(s); |
s = StringToAsciiArray(s); |
| n = Length(s); |
n = Length(s); |
| |
s = Join(s,[0,0,0,0]); |
| ans = [ ]; |
ans = [ ]; |
| for (i=0; i<n; i++) { |
i = 0; |
| |
while (i < n) { |
| if (s[i] == leftCurryBrace) { |
if (s[i] == leftCurryBrace) { |
| ans = Join(ans,[64,leftCurryBrace]); |
ans = Join(ans,[64,leftCurryBrace]); |
| }else if (s[i] == rightCurryBrace) { |
}else if (s[i] == rightCurryBrace) { |
| ans = Join(ans,[64,rightCurryBrace]); |
ans = Join(ans,[64,rightCurryBrace]); |
| }else{ |
}else if (s[i] == leftIneq && s[i+1] == leftIneq) { |
| |
ans = Join(ans,Append(StringToAsciiArray("@var"),leftCurryBrace)); |
| |
i++; |
| |
}else if (s[i] == rightIneq && s[i+1] == rightIneq) { |
| |
ans = Join(ans,[rightCurryBrace]); |
| |
i++; |
| |
}else if ([s[i],s[i+1],s[i+2]] == ex0) { |
| |
i = i+2; |
| |
}else { |
| ans = Append(ans,s[i]); |
ans = Append(ans,s[i]); |
| } |
} |
| |
i++; |
| } |
} |
| return(AddString(Map(ans,"AsciiToString"))); |
return(AddString(Map(ans,"AsciiToString"))); |
| } |
} |