1:
2: In the begining of a quizz file, the lexxer places itself in
3: <S_TEXT> state. This is the default state that collects all question
4: text problem by problem.
5:
6:
7:
8: In <S_TEXT> state, where question text are collected in this state,
9: the question text can continued to the next line by combining the two
10: symbols '\' followed by a '\n'.
11: Variables can be displayed within "/DIS()" function.
12:
13: Within the <S_TEXT> state, begin of a line '/' commands
14: include "//", "/LET", "/BEG", "/HIN", "/EXP", "/IMP",
15: "/END", "/END()", "/ANS", "/MAP".
16: The "/DIS()" command can be placed within anyplace of the problem text,
17: therefore, the pattern is not limited to match the begin of a line symbol '^'.
18: A single "\n" indicates the end of a paragraph of question text,
19: therefore, lexxer returns this symbol to parser so that it signals the
20: end of q_text. The "\n" will showup in the final question text.
21: The pattern "\"{Space}*"\n" represents the continuation of question text
22: to the next line. In the lexxer, it simply does nothing.
23:
24: The token "//" appears at the beginning of a line indicates the whole
25: line as a comment. This is treated only by lexxer, it did not
26: report any token to parser().
27: The token "/LET" will
28:
29:
30:
31:
32:
33: When encountered a ^/ANS token, it switched to <S_ANSWER> state.
34: In <S_ANSWER> state, {Spaces}+ are ignored within the lexxer
35: without returning anything to parser,
36: and
37: a single '(' will cause Pcount++ and return token '(' to parser.
38:
39: <S_VARIABLE,S_LET,S_ANSWER,S_MAP>
40: is a combined state that does the following thing.
41: It ignores spaces.
42: When encountered a '(', it executes Pcount++ and return this symbol
43: to parser.
44: When there is a integer constant could be collected, it
45: returns a I_CONSTANT to parser and convert the string to integer.
46: When a real number encountered, it converts it into a real number and
47: returns R_CONSTANT to parser.
48: When it encountered an identifier, it calls
49: find_identifier() and returns IDENTIFIER to parser().
50: When it encountered a identifier followed by a
51: '(', then it simply collects the identifier to
52: a string and places it on top of the FuncStack[].
53: It then returns FUNCTION_ID to parser().
54:
55:
56: /IMP "/absolute/path/to/file" and
57: /IMP VariableName have to be in one line,
58: it cannot be broken down into several lines
59:
60:
61:
62: TO DO:
63: Internal variable names such as SUBJECTIVE[123][ABC]
64:
65: Add supports for loops like
66:
67: /LET var2 = random(1,9,1)
68: /WHILE ( var2 <= 10 )
69:
70: /LET problem_name = "file" + var2
71: /IMP problem_name
72: /LET var2 = var2 + 1
73: /ENDWHILE
74:
75: /ANS() /AND
76: /ANS() /AND
77: /ANS()
78:
79: /ANS() /OR
80: /ANS() /OR
81: /ANS()
82:
83: /IF (var1 == 0)
84:
85: /ELSE
86:
87: /ENDIF
88:
89: /MACRO macro_name(#1,#2,#3) /ENDM
90:
91:
92:
93: FILE FORMATS under CLASS/records/ directory
94: active.log
95: wabash002 , 0 , 11242 , /dev/ttyp6 ,(06/11/97 15:13:40)
96: ^^^^^^^^^
97: 9 chars student id
98: a space char, a comma, a space char, a comma, process id, a comma, term, date time.
99:
100: One student has only one entry in this file.
101:
102: duration.log
103:
104: meisels01 /dev/ttyp3 Tue May 20 14:05:59 1997 Tue May 20 14:06:11 1997
105: 173336318 /dev/ttyp1 Fri May 30 18:35:22 1997 Fri May 30 18:39:28 1997
106: 173336318 /dev/ttyp1 Fri May 30 18:39:53 1997 Fri May 30 18:42:41 1997
107:
108: student id, tty, start from , logout time.
109: One session has one entry.
110:
111: setX.db
112: 20,01/01/97 08:00,05/15/99 08:00,05/15/99 09:00
113: 11111111212113311222
114: 00000000000000000000
115: calcutta3 --------------------, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
116: calcutta2 --------------------, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
117:
118: the first item is the number of problems in this set for the purpose of parsing.
119: The second line is the problem weight and the third line is whether the corresponding
120: problem is of type partial credit or not.
121:
122:
123: logX.db
124: a73336319 Fri Feb 27 18:03:15 1998 --------------Y-----
125: a73336319 Fri Feb 27 18:04:08 1998 -----------------N--
126: a73336319 Fri Feb 27 18:04:18 1998 -----------------Y--
127: a87654444 Sat Feb 28 18:48:46 1998 ---u----------------
128: a43986495 Wed Mar 4 09:48:33 1998 Y-------------------
129:
130: weblogX.db
131:
132: a87654322 Fri Feb 27 18:57:51 1998 ---u----------------
133: a87654322 Fri Feb 27 19:35:57 1998 N-------------------
134: a87654322 Fri Feb 27 19:36:06 1998 N-------------------
135: a87654322 Fri Feb 27 19:36:16 1998 Y-------------------
136: a87654444 Sat Feb 28 18:46:37 1998 N-------------------
137: a73336318 Sun Mar 1 20:21:42 1998 -u------------------
138: a73336318 Sun Mar 1 20:21:54 1998 -N------------------
139: a73336318 Sun Mar 1 20:22:35 1998 -Y------------------
140: a73336318 Sun Mar 1 20:23:49 1998 --U-----------------
141:
142:
143:
144: submissionsX.db
145:
146: A12345678 24/02 09:55:24 6 safsdf
147: a73336318 26/02 13:26:17 2 46.6
148: a73336318 26/02 13:28:24 2 46.4
149: a73336318 26/02 13:28:40 2 46.6 cm
150: a73336318 26/02 13:31:35 2 46.6
151: a73336318 26/02 13:31:47 1 aedf
152: a73336318 26/02 13:32:30 3 40.6 m
153: guesta007 25/02 21:43:32 1 xcb
154: a73336319 27/02 17:38:53 1 cdef
155: a73336319 27/02 17:39:13 2 39.8
156: a73336319 27/02 17:39:22 2 39.8 m
157: a73336319 27/02 17:39:47 2 .398 J/N
158:
159:
160: websubmissionsX.db
161:
162: a73336318 26/02 13:28:40 2 46.6 cm
163: a73336318 26/02 13:31:35 2 46.6
164: a73336318 26/02 13:31:47 1 aedf
165: a73336318 26/02 13:32:30 3 40.6 m
166: a73336318 26/02 13:32:44 3 40.6 kg
167: a73336318 26/02 13:33:05 3 406 mm
168: a73336318 26/02 13:33:32 4 .332 J/N
169: a73336318 26/02 13:33:52 5 53.0 cm
170: a73336318 26/02 13:34:13 5 53.01 cm
171: a73336318 26/02 13:34:37 5 52.99 cm
172: a73336318 26/02 13:34:49 5 52,995 cm
173: a73336318 26/02 13:35:12 5 52.995 cm
174: a73336318 26/02 13:38:06 5 53.00 cm
175: a73336318 26/02 13:38:34 6 6.060
176: a73336318 26/02 13:38:55 6 60.6
177: a73336318 26/02 13:39:17 7 .97 m^2
178: a73336318 26/02 13:39:33 7 .0097 m^2
179: a73336318 26/02 13:42:51 8 1.99E3 cm^3
180:
181:
182:
183:
184: subjective answers
185: records/subj/ansX.db
186:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>