Record work
This commit is contained in:
parent
a4ab7a1990
commit
74156a71c0
|
@ -4089,3 +4089,7 @@
|
||||||
Upgrade option.
|
Upgrade option.
|
||||||
|
|
||||||
+ Added CARDINAL (Unsigned 32-bit Integer) type to MPL
|
+ Added CARDINAL (Unsigned 32-bit Integer) type to MPL
|
||||||
|
|
||||||
|
+ MPLC and MIDE now calculate the error position in the file (line and
|
||||||
|
column) after the error has occured. This takes a little bit of time
|
||||||
|
but it ensures that the column/line error position is accurate.
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
# Note: the DF MCI code can also be used to display files in place of
|
# Note: the DF MCI code can also be used to display files in place of
|
||||||
# prompts.
|
# prompts.
|
||||||
|
|
||||||
000 |DFpreuser |CR|01[|10þ|01] |09Enter your user name:
|
000 |DFpreuser |CR|01[|10þ|01] |09Enter your user name: |XX
|
||||||
; Log in as new user prompt
|
; Log in as new user prompt
|
||||||
001 |CR|12Create an account with this BBS? |11
|
001 |CR|12Create an account with this BBS? |11
|
||||||
; User's password
|
; User's password
|
||||||
|
@ -22,17 +22,17 @@
|
||||||
; User login: Invalid PW
|
; User login: Invalid PW
|
||||||
003 |CR|12Invalid password.
|
003 |CR|12Invalid password.
|
||||||
; Displayed IMMEDATELY when a user connects if the password is set
|
; Displayed IMMEDATELY when a user connects if the password is set
|
||||||
004 |CRSystem Password:
|
004 |CRSystem Password: |XX
|
||||||
; New user password prompt
|
; New user password prompt
|
||||||
005 |CRNew User Password:
|
005 |CRNew User Password: |XX
|
||||||
; New user login: first and last name prompt
|
; New user login: first and last name prompt
|
||||||
006 |01[|10þ|01] |09Enter your full REAL name ->
|
006 |01[|10þ|01] |09Enter your full REAL name -> |XX
|
||||||
; Displayed if user doesn't enter a two word name.
|
; Displayed if user doesn't enter a two word name.
|
||||||
007 |CR|12Please enter your first AND last name!|CR
|
007 |CR|12Please enter your first AND last name!|CR
|
||||||
; Displayed if user enters a new user name that already exists.
|
; Displayed if user enters a new user name that already exists.
|
||||||
008 |CR|12User already exists.|CR
|
008 |CR|12User already exists.|CR
|
||||||
; New user login: Enter your handle/alias prompt
|
; New user login: Enter your handle/alias prompt
|
||||||
009 |01[|10þ|01] |09Enter your alias/handle ->
|
009 |01[|10þ|01] |09Enter your alias/handle -> |XX
|
||||||
; New user login: Enter your address prompt
|
; New user login: Enter your address prompt
|
||||||
010 |CR|03Enter your street address.|CR|09:
|
010 |CR|03Enter your street address.|CR|09:
|
||||||
; New user login: Enter your city/state
|
; New user login: Enter your city/state
|
||||||
|
@ -44,21 +44,21 @@
|
||||||
; New user login: Enter your data phone number
|
; New user login: Enter your data phone number
|
||||||
014 |CR|03Enter your data phone number:|CR|09:
|
014 |CR|03Enter your data phone number:|CR|09:
|
||||||
; New user login: Enter your birthdate.
|
; New user login: Enter your birthdate.
|
||||||
015 |01[|10þ|01] |09Enter your birthdate |01[|10|UF|01]|09 ->
|
015 |01[|10þ|01] |09Enter your birthdate |01[|10|UF|01]|09 -> |XX
|
||||||
; New user login: Gender (M)ale, (F)emale
|
; New user login: Gender (M)ale, (F)emale
|
||||||
016 |01[|10þ|01] |09Are you |01[|10M|01]|09ale or |01[|10F|01]|09emale ->
|
016 |01[|10þ|01] |09Are you |01[|10M|01]|09ale or |01[|10F|01]|09emale -> |XX
|
||||||
; New user login: Password prompt
|
; New user login: Password prompt
|
||||||
017 |DFprepass |CR|01[|10þ|01] |09Password ->
|
017 |DFprepass |CR|01[|10þ|01] |09Password -> |XX
|
||||||
; Displayed if user enters a password shorter than 4 chars.
|
; Displayed if user enters a password shorter than 4 chars.
|
||||||
018 |CR|12Password must be at least 4 characters long!|DE|DE|DE
|
018 |CR|12Password must be at least 4 characters long!|DE|DE|DE
|
||||||
; New user login: PW verification prompt
|
; New user login: PW verification prompt
|
||||||
019 |01[|10þ|01] |09Again ->
|
019 |01[|10þ|01] |09Again -> |XX
|
||||||
; New user login: Passwords do not match
|
; New user login: Passwords do not match
|
||||||
020 |CR|12Passwords do not match!|DE|DE|DE
|
020 |CR|12Passwords do not match!|DE|DE|DE
|
||||||
; New user login: Saving/creating new user account
|
; New user login: Saving/creating new user account
|
||||||
021 |CR|01[|10þ|01] |09Saving new account information|01...
|
021 |CR|01[|10þ|01] |09Saving new account information|01...
|
||||||
; System pause prompt
|
; System pause prompt
|
||||||
022 !go-pawz
|
022 |15þ|07þ|08þ|09|17Ý|15 Pause |09Þ|16|08þ|07þ|15þ
|
||||||
; Chat call - reason for chat
|
; Chat call - reason for chat
|
||||||
023 |CR|14Why do you wish to chat with the Sysop?|CR|09:
|
023 |CR|14Why do you wish to chat with the Sysop?|CR|09:
|
||||||
; Paging Sysop text
|
; Paging Sysop text
|
||||||
|
@ -80,7 +80,7 @@
|
||||||
; User list footer &1 = Total # of users listed
|
; User list footer &1 = Total # of users listed
|
||||||
031 |09|$D73Ä|CR |01[|10þ|01] |09Users: |07|$R46|&1 |PA
|
031 |09|$D73Ä|CR |01[|10þ|01] |09Users: |07|$R46|&1 |PA
|
||||||
; User list search string
|
; User list search string
|
||||||
032 |CR|01[|10þ|01] |09Enter Search String |01(|07Enter|01/|07All|01)|09:
|
032 |CR|01[|10þ|01] |09Enter Search String |01(|07Enter|01/|07All|01)|09: |XX
|
||||||
; File base list header
|
; File base list header
|
||||||
033 |CL|09Ú|$D77Ä|01¿|CR|09³|17 ± |15File Base Listing|$L56|FG |01|16³|CR|09À|01|$D77ÄÙ|CR |10A|02rea |10F|02ile |10B|02ase |10N|02ame |10A|02rea |10F|02ile |10B|02ase |10N|02ame|CR |09|$D77Ä
|
033 |CL|09Ú|$D77Ä|01¿|CR|09³|17 ± |15File Base Listing|$L56|FG |01|16³|CR|09À|01|$D77ÄÙ|CR |10A|02rea |10F|02ile |10B|02ase |10N|02ame |10A|02rea |10F|02ile |10B|02ase |10N|02ame|CR |09|$D77Ä
|
||||||
; File base listing format:
|
; File base listing format:
|
||||||
|
@ -89,7 +89,7 @@
|
||||||
; File upload testing FAILED text
|
; File upload testing FAILED text
|
||||||
035 Failed
|
035 Failed
|
||||||
; File base listing prompt.
|
; File base listing prompt.
|
||||||
036 |09|$D77Ä|CR |01[|10þ|01] |09Select file base |01[|10?|01/|10List|01]|09:
|
036 |09|$D77Ä|CR |01[|10þ|01] |09Select file base |01[|10?|01/|10List|01]|09: |XX
|
||||||
; Displayed if there are no available file bases
|
; Displayed if there are no available file bases
|
||||||
037 |CR|12There are no available file bases
|
037 |CR|12There are no available file bases
|
||||||
; Displayed if user hasn't selected a file base
|
; Displayed if user hasn't selected a file base
|
||||||
|
@ -126,7 +126,7 @@
|
||||||
; Displayed if batch queue is empty
|
; Displayed if batch queue is empty
|
||||||
052 |CL |15There are no files in your batch queue
|
052 |CL |15There are no files in your batch queue
|
||||||
; &1 = number of files in batch queue
|
; &1 = number of files in batch queue
|
||||||
053 |CR |09Delete which |01(|071|01-|07|&1|01)|09:
|
053 |CR |09Delete which |01(|071|01-|07|&1|01)|09: |XX
|
||||||
; Batch removed from queue &1 = Filename &2 = Size
|
; Batch removed from queue &1 = Filename &2 = Size
|
||||||
054 |CR|15|&1 |08(|07|&2 bytes|15|08) |07removed from queue.
|
054 |CR|15|&1 |08(|07|&2 bytes|15|08) |07removed from queue.
|
||||||
; File upload PASSED text
|
; File upload PASSED text
|
||||||
|
@ -149,8 +149,8 @@
|
||||||
063 |CR|12Cannot download files in local mode!|DE|DE|DE
|
063 |CR|12Cannot download files in local mode!|DE|DE|DE
|
||||||
064 |01[|10þ|01] |09Search all file groups? |11
|
064 |01[|10þ|01] |09Search all file groups? |11
|
||||||
065 |CR|12Start your transfer now.
|
065 |CR|12Start your transfer now.
|
||||||
066 UNUSED
|
066 |CR|14File area "|FB" is password protected.|CR|09Password: |XX
|
||||||
067 UNUSED
|
067 |CR|12Access denied.
|
||||||
068 |CR|12You do not have access to upload here!
|
068 |CR|12You do not have access to upload here!
|
||||||
069 |CR|12Illegal filename.|DE|DE|DE
|
069 |CR|12Illegal filename.|DE|DE|DE
|
||||||
070 |CR|14Searching for duplicate files ...
|
070 |CR|14Searching for duplicate files ...
|
||||||
|
@ -192,7 +192,7 @@
|
||||||
; &1 = base number &2 = base name &3 = scan base? (Yes or No)
|
; &1 = base number &2 = base name &3 = scan base? (Yes or No)
|
||||||
093 |07|$R04|&1|15|$R03|&3 |07|$R29|&2
|
093 |07|$R04|&1|15|$R03|&3 |07|$R29|&2
|
||||||
094 |CR|12There are no available message bases!
|
094 |CR|12There are no available message bases!
|
||||||
095 |09|$D77Ä|CR |09Selection |01[|10##|01]|09, |01[|10##|01-|10##|01]|09, |01[|10?|01/|10List|01]|09, or |01[|10Q|01]|09uit:
|
095 |09|$D77Ä|CR |09Selection |01[|10##|01]|09, |01[|10##|01-|10##|01]|09, |01[|10?|01/|10List|01]|09, or |01[|10Q|01]|09uit: |XX
|
||||||
; For strings 096 - 099: &1 = message base name
|
; For strings 096 - 099: &1 = message base name
|
||||||
096 |CR |11|&1 will NOT be scanned in QWK packets!|CR
|
096 |CR |11|&1 will NOT be scanned in QWK packets!|CR
|
||||||
097 |CR |11|&1 will be scanned in QWK packets!|CR
|
097 |CR |11|&1 will be scanned in QWK packets!|CR
|
||||||
|
@ -202,9 +202,9 @@
|
||||||
; Message base format list:
|
; Message base format list:
|
||||||
; &1 = base number &2 = base name &3 = total messages
|
; &1 = base number &2 = base name &3 = total messages
|
||||||
101 |15|$L05|&1 |07|$R32|&2
|
101 |15|$L05|&1 |07|$R32|&2
|
||||||
102 |09|$D77Ä |CR |09Select Message Base |01[|10?|01/|10List|01]|09:
|
102 |09|$D77Ä |CR |09Select Message Base |01[|10?|01/|10List|01]|09: |XX
|
||||||
103 UNUSED
|
103 |CR|14Message area "|MB" is password protected.|CR|09Password: |XX
|
||||||
104 UNUSED
|
104 Access denied.
|
||||||
105 |CR|12You don't have access to post here!
|
105 |CR|12You don't have access to post here!
|
||||||
106 |CR|12Use the full screen editor? |11
|
106 |CR|12Use the full screen editor? |11
|
||||||
107 |01[|10þ|01] |09Saving Message|01...
|
107 |01[|10þ|01] |09Saving Message|01...
|
||||||
|
@ -219,13 +219,13 @@
|
||||||
; E-mail reader prompt
|
; E-mail reader prompt
|
||||||
115 |CR|09(A)gain, (P)revious, (N)ext, (R)eply, (D)elete, (J)ump, (Q)uit?
|
115 |CR|09(A)gain, (P)revious, (N)ext, (R)eply, (D)elete, (J)ump, (Q)uit?
|
||||||
; Message read prompt. &1 = Current Msg # &2 = Total Messages
|
; Message read prompt. &1 = Current Msg # &2 = Total Messages
|
||||||
116 !to-prmpt MESSAGE
|
116 |CR (|&1 of |&2) Reading Messages (?/Help): |XX
|
||||||
117 |CR|12Delete this mail? |11
|
117 |CR|12Delete this mail? |11
|
||||||
118 |CR|15End of messages.
|
118 |CR|15End of messages.
|
||||||
; Post message TO:
|
; Post message TO:
|
||||||
119 |CR|09To:
|
119 |CR|09To: |XX
|
||||||
; post message SUBJ:
|
; post message SUBJ:
|
||||||
120 |CR|09Subject:
|
120 |CR|09Subject: |XX
|
||||||
; Files still in batch. &1 = # of files
|
; Files still in batch. &1 = # of files
|
||||||
121 |CR|BE|14There are |15|&1 |14file(s) in your batch queue.|CR|12Download them now? |11
|
121 |CR|BE|14There are |15|&1 |14file(s) in your batch queue.|CR|12Download them now? |11
|
||||||
122 |09Saved
|
122 |09Saved
|
||||||
|
@ -255,7 +255,7 @@
|
||||||
; Who's online list format:
|
; Who's online list format:
|
||||||
; &1 = node number &2 = user name &3 = action &4 = location
|
; &1 = node number &2 = user name &3 = action &4 = location
|
||||||
; &5 = baud rate &6 = gender &7 = age &8 = available?
|
; &5 = baud rate &6 = gender &7 = age &8 = available?
|
||||||
139 |07|$R02|&1 |15|$R14|&2|$R30|07|&3
|
139 |07|$R05|&1 |15|$R26|&2 |12|&3
|
||||||
; Who's online list footer
|
; Who's online list footer
|
||||||
140 |09|$D77Ä|CR |PA
|
140 |09|$D77Ä|CR |PA
|
||||||
; Last 10 callers list header
|
; Last 10 callers list header
|
||||||
|
@ -265,23 +265,23 @@
|
||||||
; &6 = Baud &8 = Address &9 = Usernote &0 = Email &A-&C = Optional 1-3
|
; &6 = Baud &8 = Address &9 = Usernote &0 = Email &A-&C = Optional 1-3
|
||||||
142 |15|$R27|&1 |07|$R25|&3 |$L04|&2 |&4 |&5
|
142 |15|$R27|&1 |07|$R25|&3 |$L04|&2 |&4 |&5
|
||||||
; Last 10 callers footer
|
; Last 10 callers footer
|
||||||
143 |09|$D77Ä|CR|PA
|
143 |09 |$D77Ä|CR|PA
|
||||||
; Message from another node:
|
; Message from another node:
|
||||||
; &1 = Message from &2 = Node user is logged in to.
|
; &1 = Message from &2 = Node user is logged in to.
|
||||||
144 |CR|14Message from |&1 on node |&2:|10
|
144 |CL|09|17 ° |15Message from |14|&1 |15on node |14|&2|[K|03|16|CR
|
||||||
; Message from another node footer
|
; Message from another node footer
|
||||||
145 |CR|09NodeMsg: (R)eply or (ENTER/Continue): |15
|
145 |CR|09Node Message: |01[|10R|01]|09eply or |01[|10ENTER|01/|10Continue|01]|09: |15
|
||||||
146 |CR|09Send message to which node |01[|10?|01/|10List|01]|09:
|
146 |CR|09Send message to which node |01[|10?|01/|10List|01]|09: |XX
|
||||||
147 |CR|12No one is logged in on that node!
|
147 |CR|12No one is logged in on that node!
|
||||||
; Send message to node prompt:
|
; Send message to node prompt:
|
||||||
; &1 = receiver's name &2 = receiver's node number
|
; &1 = receiver's name &2 = receiver's node number
|
||||||
148 |CR|07Enter messsage for |15|&1 |07on node |15|&2|07:
|
148 |CR|07Enter messsage for |15|&1 |07on node |15|&2|07:
|
||||||
149 |CR|12You don't have access to this menu!|CR|CR|PA
|
149 |CR|12You don't have access to this menu!|CR|CR|PA
|
||||||
150 |CR|09Enter Menu Password:
|
150 |CR|09Enter Menu Password: |XX
|
||||||
151 |CR|09Enter your current password:
|
151 |CR|09Enter your current password: |XX
|
||||||
152 |CR|11(|031|08) |09MM/DD/YY|CR|11(|032|08) |09DD/MM/YY|CR|11(|033|08) |09YY/DD/MM|CR|CRDate Format |08-> |07
|
152 |CR|11(|031|08) |09MM/DD/YY|CR|11(|032|08) |09DD/MM/YY|CR|11(|033|08) |09YY/DD/MM|CR|CRDate Format |08-> |07
|
||||||
; &1 = def. page length
|
; &1 = def. page length
|
||||||
153 |CR|01[|10þ|01] |09Screen Pause Length |01[|10Enter|01/|10|&1|01]:
|
153 |CR|01[|10þ|01] |09Screen Pause Length |01[|10Enter|01/|10|&1|01]: |XX
|
||||||
154 |CR|11(|030|08) |09Ascii (No Color)|CR|11(|031|08) |09Ansi (Color)|CR|CR|09Graphics Mode |08-> |07
|
154 |CR|11(|030|08) |09Ascii (No Color)|CR|11(|031|08) |09Ansi (Color)|CR|CR|09Graphics Mode |08-> |07
|
||||||
; User name search
|
; User name search
|
||||||
; &1 = User's Name
|
; &1 = User's Name
|
||||||
|
@ -289,8 +289,8 @@
|
||||||
156 |CR|15User not found.|DE|DE|DE
|
156 |CR|15User not found.|DE|DE|DE
|
||||||
157 |CR|12You've reached your calls per day limit. Call back tomorrow!|CR|CR|PA
|
157 |CR|12You've reached your calls per day limit. Call back tomorrow!|CR|CR|PA
|
||||||
158 |CR|15No quote data available...
|
158 |CR|15No quote data available...
|
||||||
159 |CR|09Enter first line to quote:
|
159 |CR|09Enter first line to quote: |XX
|
||||||
160 |09Enter last line to quote :
|
160 |09Enter last line to quote : |XX
|
||||||
; Email reply: not valid user. &1=username
|
; Email reply: not valid user. &1=username
|
||||||
161 |CR|11|&1 is not a valid user on this system.
|
161 |CR|11|&1 is not a valid user on this system.
|
||||||
; &1 = maximum length of each line &2 = maximum number of lines
|
; &1 = maximum length of each line &2 = maximum number of lines
|
||||||
|
@ -300,7 +300,7 @@
|
||||||
; Line editor "backing up to line". &1 = new line number
|
; Line editor "backing up to line". &1 = new line number
|
||||||
165 |15Backing up to line |&1.|03
|
165 |15Backing up to line |&1.|03
|
||||||
; Line editor "command" prompt.
|
; Line editor "command" prompt.
|
||||||
166 |CR|09Command |01[|10?|01/|10Help|01]|09:
|
166 |CR|09Command |01[|10?|01/|10Help|01]|09: |XX
|
||||||
; Line editor "command" prompt help
|
; Line editor "command" prompt help
|
||||||
167 |CR|03(|11A|03)bort Message (|11C|03)ontinue Message (|11U|03)pload Message|CR(|11Q|03)uote Message (|11S|03)ave Message (|11H|03)elp|CR(|11T|03)itle Change
|
167 |CR|03(|11A|03)bort Message (|11C|03)ontinue Message (|11U|03)pload Message|CR(|11Q|03)uote Message (|11S|03)ave Message (|11H|03)elp|CR(|11T|03)itle Change
|
||||||
168 |CR|12Abort message? |11
|
168 |CR|12Abort message? |11
|
||||||
|
@ -308,9 +308,9 @@
|
||||||
; Archive list format:
|
; Archive list format:
|
||||||
; &1 = archive number &2 = archive name &3 = archive extension
|
; &1 = archive number &2 = archive name &3 = archive extension
|
||||||
170 |15|$R02|&1 |10|$R22|&2 |11|&3
|
170 |15|$R02|&1 |10|$R22|&2 |11|&3
|
||||||
171 |09|$D30Ä|CR|01[|10þ|01] |09Select Archive #:
|
171 |09|$D30Ä|CR|01[|10þ|01] |09Select Archive #: |XX
|
||||||
172 |CR|09Deposit how many minutes |01[|100|01-|10|TL|01]|09:
|
172 |CR|09Deposit how many minutes |01[|100|01-|10|TL|01]|09: |XX
|
||||||
173 |CR|09Withdraw how many minutes |01[|100|01-|10|TB|01]|09:
|
173 |CR|09Withdraw how many minutes |01[|100|01-|10|TB|01]|09: |XX
|
||||||
; Message group list header
|
; Message group list header
|
||||||
174 |CL|CR|$D13 |09Ú|$D54Ä|01¿|CR|$D13 |09³|17 ± |15Message Groups|$D37 |16|01³|CR|$D13 |09À|01|$D54ÄÙ|CR|$D14 |10#|02# |10M|02essage |10G|02roup |10N|02ame|07|$D24 |02A|10reas|CR|$D14 |09|$D54Ä
|
174 |CL|CR|$D13 |09Ú|$D54Ä|01¿|CR|$D13 |09³|17 ± |15Message Groups|$D37 |16|01³|CR|$D13 |09À|01|$D54ÄÙ|CR|$D14 |10#|02# |10M|02essage |10G|02roup |10N|02ame|07|$D24 |02A|10reas|CR|$D14 |09|$D54Ä
|
||||||
; Message group list format
|
; Message group list format
|
||||||
|
@ -318,7 +318,7 @@
|
||||||
175 |$D14 |07|$R04|&1 |15|$R41|&2 |12|&3
|
175 |$D14 |07|$R04|&1 |15|$R41|&2 |12|&3
|
||||||
176 |CR|12There are no available message groups.
|
176 |CR|12There are no available message groups.
|
||||||
; Message group list prompt
|
; Message group list prompt
|
||||||
177 |$D14 |09|$D54Ä|CR|$D14 |01[|10þ|01] |09Select Message Group |01[|10Enter|01/|101|01]|09:
|
177 |$D14 |09|$D54Ä|CR|$D14 |01[|10þ|01] |09Select Message Group |01[|10Enter|01/|101|01]|09: |XX
|
||||||
178 |CR|12Send E-mail to the Sysop? |11
|
178 |CR|12Send E-mail to the Sysop? |11
|
||||||
; 179-180 are System broadcast messages header/footer
|
; 179-180 are System broadcast messages header/footer
|
||||||
; &1 = User who sent system broadcast
|
; &1 = User who sent system broadcast
|
||||||
|
@ -333,7 +333,7 @@
|
||||||
; &1 = language number &2 = language description
|
; &1 = language number &2 = language description
|
||||||
183 |15|$R03|&1|14|&2
|
183 |15|$R03|&1|14|&2
|
||||||
; Language select footer
|
; Language select footer
|
||||||
184 |CR|09Select language:
|
184 |CR|09Select language: |XX
|
||||||
; Language file does not exist
|
; Language file does not exist
|
||||||
185 |CR|12Language file does not exist.
|
185 |CR|12Language file does not exist.
|
||||||
; Displayed if user's language does not exist.
|
; Displayed if user's language does not exist.
|
||||||
|
@ -368,7 +368,7 @@
|
||||||
; &1 = File base number &2 = File base name &3 = Scan? (Yes or No)
|
; &1 = File base number &2 = File base name &3 = Scan? (Yes or No)
|
||||||
201 |07|$R04|&1|15|$R03|&3 |07|$R29|&2
|
201 |07|$R04|&1|15|$R03|&3 |07|$R29|&2
|
||||||
; Select scanned file bases prompt
|
; Select scanned file bases prompt
|
||||||
202 |09|$D77Ä|CR |09Selection |01[|10##|01]|09, |01[|10##|01-|10##|01]|09, |01[|10?|01/|10List|01]|09, or |01[|10Q|01]|09uit:
|
202 |09|$D77Ä|CR |09Selection |01[|10##|01]|09, |01[|10##|01-|10##|01]|09, |01[|10?|01/|10List|01]|09, or |01[|10Q|01]|09uit: |XX
|
||||||
; &1 = File base name
|
; &1 = File base name
|
||||||
203 |CR |11|&1 will NOT be scanned in new file scan!|CR
|
203 |CR |11|&1 will NOT be scanned in new file scan!|CR
|
||||||
; &1 = File base name
|
; &1 = File base name
|
||||||
|
@ -376,7 +376,7 @@
|
||||||
; Displayed if file already exists when user trys to upload.
|
; Displayed if file already exists when user trys to upload.
|
||||||
205 File already exists.
|
205 File already exists.
|
||||||
; Displayed before running uploads processor
|
; Displayed before running uploads processor
|
||||||
206 |12þ |03Testing file for errors :
|
206 |12þ |03Testing file for errors : |XX
|
||||||
; File description input line. &1 = Line number
|
; File description input line. &1 = Line number
|
||||||
207 |09:
|
207 |09:
|
||||||
; Default file description if none entered/found.
|
; Default file description if none entered/found.
|
||||||
|
@ -391,7 +391,7 @@
|
||||||
; Lightbar file list: Access to file denied.
|
; Lightbar file list: Access to file denied.
|
||||||
212 |12File is not available.|PN
|
212 |12File is not available.|PN
|
||||||
; Read Message personal prompt. &1 = Current Msg # &2 = Total Messages
|
; Read Message personal prompt. &1 = Current Msg # &2 = Total Messages
|
||||||
213 !to-prmpt MESSAGE
|
213 |CR|09[|&1 of |&2] Reading Messages (?/Help): |XX
|
||||||
; File group list header
|
; File group list header
|
||||||
214 |CL|CR|$D13 |09Ú|$D54Ä|01¿|CR|$D13 |09³|17 ± |15File Groups|$D40 |16|01³|CR|$D13 |09À|01|$D54ÄÙ|CR|$D14 |10#|02# |10F|02ile |10G|02roup |10N|02ame|07|$D29 |02A|10reas|CR|$D14 |09|$D54Ä
|
214 |CL|CR|$D13 |09Ú|$D54Ä|01¿|CR|$D13 |09³|17 ± |15File Groups|$D40 |16|01³|CR|$D13 |09À|01|$D54ÄÙ|CR|$D14 |10#|02# |10F|02ile |10G|02roup |10N|02ame|07|$D29 |02A|10reas|CR|$D14 |09|$D54Ä
|
||||||
; File group list format
|
; File group list format
|
||||||
|
@ -400,7 +400,7 @@
|
||||||
; Displayed if there are no available file groups
|
; Displayed if there are no available file groups
|
||||||
216 |CR|12There are no available file groups.
|
216 |CR|12There are no available file groups.
|
||||||
; File group list prompt
|
; File group list prompt
|
||||||
217 |$D14 |09|$D54Ä|CR|$D14 |01[|10þ|01] |09Select File Group |01[|10Enter|01/|101|01]|09:
|
217 |$D14 |09|$D54Ä|CR|$D14 |01[|10þ|01] |09Select File Group |01[|10Enter|01/|101|01]|09: |XX
|
||||||
; nodechat private text: &1 = user name
|
; nodechat private text: &1 = user name
|
||||||
218 |02<|10|&1 |02private|02> |07
|
218 |02<|10|&1 |02private|02> |07
|
||||||
; Displayed when creating a new files list
|
; Displayed when creating a new files list
|
||||||
|
@ -458,14 +458,14 @@
|
||||||
; There are no voting questions.
|
; There are no voting questions.
|
||||||
243 |12Sorry, there are no voting questions.
|
243 |12Sorry, there are no voting questions.
|
||||||
; Voting booth prompt &1 = Total number of questions
|
; Voting booth prompt &1 = Total number of questions
|
||||||
244 |08|$D79Ä|CR|09Vote on which question (1-|&1, or Enter/Quit):
|
244 |08|$D79Ä|CR|09Vote on which question (1-|&1, or Enter/Quit): |XX
|
||||||
; Voting on question header &1 = Question
|
; Voting on question header &1 = Question
|
||||||
245 |CL|08|$D79Ä|CR|14Question: (* = Current Vote)|CR|12|&1|CR|08|$D79Ä
|
245 |CL|08|$D79Ä|CR|14Question: (* = Current Vote)|CR|12|&1|CR|08|$D79Ä
|
||||||
; Voting on question list format
|
; Voting on question list format
|
||||||
; &1 = Answer # &2 = Answer text &3 = Current Answer?
|
; &1 = Answer # &2 = Answer text &3 = Current Answer?
|
||||||
246 |12|&3 |09(|10|$R02|&1|09) |03|&2
|
246 |12|&3 |09(|10|$R02|&1|09) |03|&2
|
||||||
; Voting prompt
|
; Voting prompt
|
||||||
247 |08|$D79Ä|CR|09Vote for which answer (Enter/Quit):
|
247 |08|$D79Ä|CR|09Vote for which answer (Enter/Quit): |XX
|
||||||
; See voting results?
|
; See voting results?
|
||||||
248 |CR|12See results? |11
|
248 |CR|12See results? |11
|
||||||
; Vote Result Header
|
; Vote Result Header
|
||||||
|
@ -480,13 +480,13 @@
|
||||||
; <Pick this to add your own answer> text
|
; <Pick this to add your own answer> text
|
||||||
252 <Pick this to add your own answer>
|
252 <Pick this to add your own answer>
|
||||||
; Enter your answer prompt
|
; Enter your answer prompt
|
||||||
253 |CR|09Enter your response:
|
253 |CR|09Enter your response: |XX
|
||||||
254 |CR|14This is a forced question. You must answer it to continue.|CR|CR|PA
|
254 |CR|14This is a forced question. You must answer it to continue.|CR|CR|PA
|
||||||
255 |CR|09Enter new file scan date |01[|10|UF|01]|09:
|
255 |CR|09Enter new file scan date |01[|10|UF|01]|09: |XX
|
||||||
256 |CR|12Set this date for all file bases? |11
|
256 |CR|12Set this date for all file bases? |11
|
||||||
; &1 = Date of the updated new scan.
|
; &1 = Date of the updated new scan.
|
||||||
257 |CR|07New scan date set to [|15|&1|07].|DE|DE|DE
|
257 |CR|07New scan date set to [|15|&1|07].|DE|DE|DE
|
||||||
258 |CRDetecting terminal emulation:
|
258 |CRDetecting terminal emulation: |XX
|
||||||
259 |TE detected.
|
259 |TE detected.
|
||||||
; Short BBS list header
|
; Short BBS list header
|
||||||
260 |CR|07Õ|08Í[ |15B|07BS |15N|07ame |08]Í|07ÍÍÍÍÍÍÍÍÍÍÍ|08Í[ |15T|07ype |08]|07Í|08Í[ |15A|07ddress |08/ |15P|07hone |08]Í|07ÍÍÍÍÍÍÍ|08Í[ |15S|07oftware |08]Í|07¸
|
260 |CR|07Õ|08Í[ |15B|07BS |15N|07ame |08]Í|07ÍÍÍÍÍÍÍÍÍÍÍ|08Í[ |15T|07ype |08]|07Í|08Í[ |15A|07ddress |08/ |15P|07hone |08]Í|07ÍÍÍÍÍÍÍ|08Í[ |15S|07oftware |08]Í|07¸
|
||||||
|
@ -495,7 +495,7 @@
|
||||||
261 |08³ |14|$R25|&1 |09|$R06|&2 |10|$R30|&3 |12|$R10|&4 |08³
|
261 |08³ |14|$R25|&1 |09|$R06|&2 |10|$R30|&3 |12|$R10|&4 |08³
|
||||||
; Short BBS list footer
|
; Short BBS list footer
|
||||||
262 |07ÔÍ|08ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ|07Í;
|
262 |07ÔÍ|08ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ|07Í;
|
||||||
263 |08|$D79Ä|CR|09Results for which question? (Enter/Quit):
|
263 |08|$D79Ä|CR|09Results for which question? (Enter/Quit): |XX
|
||||||
; Extended BBS list header
|
; Extended BBS list header
|
||||||
264 |CR|14Extended BBS listing:
|
264 |CR|14Extended BBS listing:
|
||||||
; Extended BBS list information
|
; Extended BBS list information
|
||||||
|
@ -505,7 +505,7 @@
|
||||||
; verify bbs?
|
; verify bbs?
|
||||||
266 |CR|12Verify that this BBS is still online? |11
|
266 |CR|12Verify that this BBS is still online? |11
|
||||||
; Extended BBS list prompt
|
; Extended BBS list prompt
|
||||||
267 |CR|09(Enter) to Continue, (D)elete, (V)erify, or (Q)uit?
|
267 |CR|09(Enter) to Continue, (D)elete, (V)erify, or (Q)uit? |XX
|
||||||
; Who's Online: blank listing. |&1 = Node number
|
; Who's Online: blank listing. |&1 = Node number
|
||||||
268 |07|$R05|&1 Waiting for connection
|
268 |07|$R05|&1 Waiting for connection
|
||||||
; Matrix login: Create a BBS account?
|
; Matrix login: Create a BBS account?
|
||||||
|
@ -515,39 +515,39 @@
|
||||||
; Matrix login: Your account is not validated.
|
; Matrix login: Your account is not validated.
|
||||||
271 |CR|14Sorry, your account has not been validated.|CR|CR|PA
|
271 |CR|14Sorry, your account has not been validated.|CR|CR|PA
|
||||||
; Matrix login: Enter matrix password
|
; Matrix login: Enter matrix password
|
||||||
272 |CR|14Enter matrix password:
|
272 |CR|14Enter matrix password: |XX
|
||||||
; Matrix login: Enter account name prompt
|
; Matrix login: Enter account name prompt
|
||||||
273 |CR|03Account name |09:
|
273 |CR|03Account name |09: |XX
|
||||||
; Matrix login: enter account password prompt
|
; Matrix login: enter account password prompt
|
||||||
274 |CR|03Account password|09:
|
274 |CR|03Account password|09: |XX
|
||||||
; Add question to voting booth question
|
; Add question to voting booth question
|
||||||
275 |CR|12Add a question to the voting booth? |11
|
275 |CR|12Add a question to the voting booth? |11
|
||||||
; Maximum of 20 voting questions text
|
; Maximum of 20 voting questions text
|
||||||
276 |CR|14Sorry, there is a maximum of 20 voting questions.
|
276 |CR|14Sorry, there is a maximum of 20 voting questions.
|
||||||
; Enter new question
|
; Enter new question
|
||||||
277 |CL|03Enter new question (Enter/Quit)|CR|09:
|
277 |CR|03Enter new question (Enter/Quit)|CR|09:
|
||||||
; Enter choices now. Max 15.
|
; Enter choices now. Max 15.
|
||||||
278 |CR|10Enter choices now. There are a maximum of 15 choices for each question.|CREnter a blank line when done.|CR
|
278 |CR|10Enter choices now. There are a maximum of 15 choices for each question.|CREnter a blank line when done.|CR
|
||||||
; Choice #. &1 = Choice number
|
; Choice #. &1 = Choice number
|
||||||
279 |09Choice #|&1:
|
279 |09Choice #|&1: |XX
|
||||||
; Allow users to add answers?
|
; Allow users to add answers?
|
||||||
280 |CR|12Allow users to add their own answers? |11
|
280 |CR|12Allow users to add their own answers? |11
|
||||||
; Save this question?
|
; Save this question?
|
||||||
281 |CR|12Save this voting question? |11
|
281 |CR|12Save this voting question? |11
|
||||||
; Move message to where?
|
; Move message to where?
|
||||||
282 |CR|09Move to which base (?/List):
|
282 |CR|09Move to which base (?/List): |XX
|
||||||
; Add BBS list: enter phone number
|
; Add BBS list: enter phone number
|
||||||
283 |03Enter BBS phone number:
|
283 |03Enter BBS phone number: |XX
|
||||||
; Add BBS list: enter BBS name
|
; Add BBS list: enter BBS name
|
||||||
284 |03Enter BBS Name :
|
284 |03Enter BBS Name : |XX
|
||||||
; Add BBS list: enter BBS location
|
; Add BBS list: enter BBS location
|
||||||
285 |03Enter Location of BBS :
|
285 |03Enter Location of BBS : |XX
|
||||||
; Add BBS list: enter sysop name
|
; Add BBS list: enter sysop name
|
||||||
286 |03Enter Sysop Name :
|
286 |03Enter Sysop Name : |XX
|
||||||
; Add BBS list: enter max baud rate
|
; Add BBS list: enter max baud rate
|
||||||
287 |03Enter Max Baud Rate :
|
287 |03Enter Max Baud Rate : |XX
|
||||||
; Add BBS list: enter BBS software
|
; Add BBS list: enter BBS software
|
||||||
288 |03Enter BBS Software :
|
288 |03Enter BBS Software : |XX
|
||||||
; File base is mandatory
|
; File base is mandatory
|
||||||
289 |CR |11|FB is marked as mandatory scanning.|CR
|
289 |CR |11|FB is marked as mandatory scanning.|CR
|
||||||
; Save this BBS entry
|
; Save this BBS entry
|
||||||
|
@ -555,19 +555,19 @@
|
||||||
; There are no entries in BBS list.
|
; There are no entries in BBS list.
|
||||||
291 |CR|12There are no entries in the BBS list.
|
291 |CR|12There are no entries in the BBS list.
|
||||||
; BBS list: enter text to search for
|
; BBS list: enter text to search for
|
||||||
292 |CR|09Enter search text or (ENTER) for All:
|
292 |CR|09Enter search text or (ENTER) for All: |XX
|
||||||
; Matrix login: Invalid PW
|
; Matrix login: Invalid PW
|
||||||
293 |CR|12Invalid password.
|
293 |CR|12Invalid password.
|
||||||
294 |CR|12Delete this BBS from the list? |11
|
294 |CR|12Delete this BBS from the list? |11
|
||||||
295 |CR|12You did not add this BBS entry.
|
295 |CR|12You did not add this BBS entry.
|
||||||
; editing message display
|
; editing message display
|
||||||
296 |CL|14Message Editor|CR|CR|03A. To : |&1|CRB. Subj : |&2|CR|CR|09Command: (!) Edit text, (Q)uit:
|
296 |CL|14Message Editor|CR|CR|03A. To : |&1|CRB. Subj : |&2|CR|CR|09Command: (!) Edit text, (Q)uit: |XX
|
||||||
; editing message to
|
; editing message to
|
||||||
297 |CR|09To:
|
297 |CR|09To: |XX
|
||||||
; editing message net address
|
; editing message net address
|
||||||
298 |CR|09Enter destination address:
|
298 |CR|09Enter destination address: |XX
|
||||||
; editing message subject
|
; editing message subject
|
||||||
299 |CR|09Subject:
|
299 |CR|09Subject: |XX
|
||||||
; editing message save changes
|
; editing message save changes
|
||||||
300 |CR|12Save changes to message? |11
|
300 |CR|12Save changes to message? |11
|
||||||
; delete autosig?
|
; delete autosig?
|
||||||
|
@ -585,7 +585,7 @@
|
||||||
308 |CR|12Invisible login? |11
|
308 |CR|12Invisible login? |11
|
||||||
309 |CR|12Sorry, this user name is not acceptable.
|
309 |CR|12Sorry, this user name is not acceptable.
|
||||||
; Message search: search text input
|
; Message search: search text input
|
||||||
310 |CR|03Enter text to search for:
|
310 |CR|03Enter text to search for: |XX
|
||||||
; Message search completed
|
; Message search completed
|
||||||
311 |CL|15Message search completed.|DE|DE|DE
|
311 |CL|15Message search completed.|DE|DE|DE
|
||||||
; Lightbar file list: DL limit is exceeded.
|
; Lightbar file list: DL limit is exceeded.
|
||||||
|
@ -594,9 +594,10 @@
|
||||||
313 |12Your download ratio would be exceeded.|PN
|
313 |12Your download ratio would be exceeded.|PN
|
||||||
; Lightbar file list: Batch queue is full.
|
; Lightbar file list: Batch queue is full.
|
||||||
314 |12Your batch queue is full.|PN
|
314 |12Your batch queue is full.|PN
|
||||||
|
; UNUSED
|
||||||
315 UNUSED
|
315 UNUSED
|
||||||
; Lightbar Y/N: YES text
|
; Lightbar Y/N: YES text
|
||||||
316 |08++(|23|00 yes |16|08/ |07no |08)++
|
316 |09|17 Y|15es |09|16 N|15o |16
|
||||||
; Lightbar Y/N: NO text
|
; Lightbar Y/N: NO text
|
||||||
317 |09 Y|15es |09|17 N|15o |16
|
317 |09 Y|15es |09|17 N|15o |16
|
||||||
; Moving message. &1=base name
|
; Moving message. &1=base name
|
||||||
|
@ -619,7 +620,7 @@
|
||||||
328 |CR|14Sysop has shelled to DOS. Please wait.
|
328 |CR|14Sysop has shelled to DOS. Please wait.
|
||||||
329 |14Sysop has returned from DOS. Thank you.
|
329 |14Sysop has returned from DOS. Thank you.
|
||||||
; Add to BBS list: telnet
|
; Add to BBS list: telnet
|
||||||
330 |03Enter Telnet Address :
|
330 |03Enter Telnet Address : |XX
|
||||||
; Start at message index in email? (lightbar msg reader)
|
; Start at message index in email? (lightbar msg reader)
|
||||||
331 |CR|12Start at e-mail message index? |11
|
331 |CR|12Start at e-mail message index? |11
|
||||||
; Teleconference user list
|
; Teleconference user list
|
||||||
|
@ -634,14 +635,14 @@
|
||||||
; One Liners list format. &1 = Text &2 = Poster Name &3 = Initials
|
; One Liners list format. &1 = Text &2 = Poster Name &3 = Initials
|
||||||
337 |07 |$R61|&1 |$L15|&2
|
337 |07 |$R61|&1 |$L15|&2
|
||||||
; Reading forward prompt &1 = Total messages in base
|
; Reading forward prompt &1 = Total messages in base
|
||||||
338 |CR|03Begin reading at (|111|03-|11|&1|03)|12:
|
338 |CR|03Begin reading at (|111|03-|11|&1|03)|12: |XX
|
||||||
; Lightbar file list prompt (SYSOP)
|
; Lightbar file list prompt (SYSOP)
|
||||||
339 |01(|07Space|01) |09Flag |01(|07E|01) |09Edit |01(|07N|01) |09Next |01(|07V|01) |09View |01(|07ESC|01) |09Quit |01(|07?|01) |09Help
|
339 |01(|07Space|01) |09Flag |01(|07E|01) |09Edit |01(|07N|01) |09Next |01(|07V|01) |09View |01(|07ESC|01) |09Quit |01(|07?|01) |09Help
|
||||||
; Lightbar file list uploaders name &1 = user name &3 = downloads
|
; Lightbar file list uploaders name &1 = user name &3 = downloads
|
||||||
340 |$D34 |07+ Uploader: |&1
|
340 |$D34 |07+ Uploader: |&1
|
||||||
; Line editor quote mode: &1 = line number &2 = line text
|
; Line editor quote mode: &1 = line number &2 = line text
|
||||||
341 |10|&1|02: |11|$R74|&2
|
341 |10|&1|02: |11|$R74|&2
|
||||||
342 |CR|09Enter destination address:
|
342 |CR|09Enter destination address: |XX
|
||||||
; Upload file name prompt
|
; Upload file name prompt
|
||||||
343 |CR|09File Name|CR:
|
343 |CR|09File Name|CR:
|
||||||
; Download file name prompt
|
; Download file name prompt
|
||||||
|
@ -671,19 +672,19 @@
|
||||||
; FS editor "abort msg"
|
; FS editor "abort msg"
|
||||||
356 |CR|12Abort message? |11
|
356 |CR|12Abort message? |11
|
||||||
; file list tagging prompt
|
; file list tagging prompt
|
||||||
357 |CR|01[|10þ|01] |09Add which file number to batch |01(|07Enter|01/|07Quit|01)|09:
|
357 |CR|01[|10þ|01] |09Add which file number to batch |01(|07Enter|01/|07Quit|01)|09: |XX
|
||||||
; file list view prompt
|
; file list view prompt
|
||||||
358 |CR|01[|10þ|01] |09View contents of which file number |01(|07Enter|01/|07Quit|01)|09:
|
358 |CR|01[|10þ|01] |09View contents of which file number |01(|07Enter|01/|07Quit|01)|09: |XX
|
||||||
; Protocol List Header
|
; Protocol List Header
|
||||||
359 |CR|14Available Protocols:|CR
|
359 |CR|14Available Protocols:|CR
|
||||||
; NodeMsg reply &1=from &2=node#
|
; NodeMsg reply &1=from &2=node#
|
||||||
360 |CR|07Sending reply to |15|&1 |07on node |15|&2|07:
|
360 |CR|07Sending reply to |15|&1 |07on node |15|&2|07:
|
||||||
; Add BBS list connection type
|
; Add BBS list connection type
|
||||||
361 |CR|09Accessible by (D)ialup, (T)elnet, (B)oth:
|
361 |CR|09Accessible by (D)ialup, (T)elnet, (B)oth: |XX
|
||||||
; Add BBS: BBS already exists
|
; Add BBS: BBS already exists
|
||||||
362 |CR|12BBS already exists in list!
|
362 |CR|12BBS already exists in list!
|
||||||
; Msg xport: local export path
|
; Msg xport: local export path
|
||||||
363 |CR|09Enter full path/filename to export to:
|
363 |CR|09Enter full path/filename to export to: |XX
|
||||||
; info edit: address
|
; info edit: address
|
||||||
364 |CR|03Enter your street address.|CR|09:
|
364 |CR|03Enter your street address.|CR|09:
|
||||||
; info edit: city/state
|
; info edit: city/state
|
||||||
|
@ -697,11 +698,11 @@
|
||||||
; info edit: bday
|
; info edit: bday
|
||||||
369 |CR|03Enter your date of birth (|UF):|CR|09:
|
369 |CR|03Enter your date of birth (|UF):|CR|09:
|
||||||
; info edit: gender
|
; info edit: gender
|
||||||
370 |CR|09Are you (M)ale or (F)emale?
|
370 |CR|09Are you (M)ale or (F)emale? |XX
|
||||||
; info edit: date format
|
; info edit: date format
|
||||||
371 |CR|11(|031|08) |09MM/DD/YY|CR|11(|032|08) |09DD/MM/YY|CR|11(|033|08) |09YY/DD/MM|CR|CRDate Format |08-> |07
|
371 |CR|11(|031|08) |09MM/DD/YY|CR|11(|032|08) |09DD/MM/YY|CR|11(|033|08) |09YY/DD/MM|CR|CRDate Format |08-> |07
|
||||||
; info edit: screen length &1 = def page size
|
; info edit: screen length &1 = def page size
|
||||||
372 |CR|09Screen Pause Length (Enter/|&1):
|
372 |CR|09Screen Pause Length (Enter/|&1): |XX
|
||||||
; info edit: editor type
|
; info edit: editor type
|
||||||
373 |CR|11(|030|08) |14Line Editor|CR|11(|031|08) |14Full Screen Editor|CR|11(|032|08) |14Ask|CR|CR|15E|10d|02itor |15T|10y|02pe|15: |15
|
373 |CR|11(|030|08) |14Line Editor|CR|11(|031|08) |14Full Screen Editor|CR|11(|032|08) |14Ask|CR|CR|15E|10d|02itor |15T|10y|02pe|15: |15
|
||||||
; info edit: file list type
|
; info edit: file list type
|
||||||
|
@ -711,13 +712,13 @@
|
||||||
; Processing uploads
|
; Processing uploads
|
||||||
376 |CR|14Processing uploads ...|CR
|
376 |CR|14Processing uploads ...|CR
|
||||||
; BLIND dupe search
|
; BLIND dupe search
|
||||||
377 |12þ |03Searching for duplicate files :
|
377 |12þ |03Searching for duplicate files : |XX
|
||||||
; BLIND dupe found
|
; BLIND dupe found
|
||||||
378 Dupe found.
|
378 Dupe found.
|
||||||
; BLIND no dupe found
|
; BLIND no dupe found
|
||||||
379 None.
|
379 None.
|
||||||
; importing file_id.diz
|
; importing file_id.diz
|
||||||
380 |12þ |03Importing file description :
|
380 |12þ |03Importing file description : |XX
|
||||||
; file_id found
|
; file_id found
|
||||||
381 Found.
|
381 Found.
|
||||||
; no file_id
|
; no file_id
|
||||||
|
@ -733,11 +734,11 @@
|
||||||
; Mass mail prompt
|
; Mass mail prompt
|
||||||
387 |CL|09Send mass mail by|09:|CR|CR|11(|031|08) |09ACS level|CR|11(|032|08)|09 List of users|CR|11(|033|08)|09 All users|CR|11(|03Q|08)|09 Quit|CR|CRCommand |08-> |07
|
387 |CL|09Send mass mail by|09:|CR|CR|11(|031|08) |09ACS level|CR|11(|032|08)|09 List of users|CR|11(|033|08)|09 All users|CR|11(|03Q|08)|09 Quit|CR|CRCommand |08-> |07
|
||||||
; Mass mail ACS prompt
|
; Mass mail ACS prompt
|
||||||
388 |CREnter ACS level:
|
388 |CREnter ACS level: |XX
|
||||||
; Mass mail name info
|
; Mass mail name info
|
||||||
389 |CR|11Enter user name, or search string.|CREnter a blank line to end.|CR
|
389 |CR|11Enter user name, or search string.|CREnter a blank line to end.|CR
|
||||||
; Mass mail name prompt &1 = # of users in list
|
; Mass mail name prompt &1 = # of users in list
|
||||||
390 |CR|11|&1 |03users in list. Enter user name:
|
390 |CR|11|&1 |03users in list. Enter user name: |XX
|
||||||
; Mass mail name list
|
; Mass mail name list
|
||||||
391 |CR|09User mailing list:|CR
|
391 |CR|09User mailing list:|CR
|
||||||
; Mass mail name format &1 = name
|
; Mass mail name format &1 = name
|
||||||
|
@ -749,7 +750,7 @@
|
||||||
; Node unavilable
|
; Node unavilable
|
||||||
395 |CR|14Sorry, this user is marked as unavailable.
|
395 |CR|14Sorry, this user is marked as unavailable.
|
||||||
; Msg search prompt
|
; Msg search prompt
|
||||||
396 |CR|03Enter search string:
|
396 |CR|03Enter search string: |XX
|
||||||
; Info edit: Msg Read type
|
; Info edit: Msg Read type
|
||||||
397 |CR|11(|030|08) |14Normal |15: |10View messages page by page|CR|11(|031|08) |14LightBar |15: |10Scroll message lists with arrow keys|CR|CR|15S|10ele|02ct |15T|10yp|02e: |15
|
397 |CR|11(|030|08) |14Normal |15: |10View messages page by page|CR|11(|031|08) |14LightBar |15: |10Scroll message lists with arrow keys|CR|CR|15S|10ele|02ct |15T|10yp|02e: |15
|
||||||
; New user: Msg Read type
|
; New user: Msg Read type
|
||||||
|
@ -766,15 +767,15 @@
|
||||||
; Ansi msg read: delete msg
|
; Ansi msg read: delete msg
|
||||||
402 |CR|12Delete this mail?
|
402 |CR|12Delete this mail?
|
||||||
; Ansi msg read: jump to msg: &1 = cur msg num &2 = high msg num
|
; Ansi msg read: jump to msg: &1 = cur msg num &2 = high msg num
|
||||||
403 |CR|09Jump to which message? (1-|&2):
|
403 |CR|09Jump to which message? (1-|&2): |XX
|
||||||
; Ansi msg read: scan toggle &1 = message base name
|
; Ansi msg read: scan toggle &1 = message base name
|
||||||
404 |CR|11|&1 will NOT be scanned in new message scan!
|
404 |CR|11|&1 will NOT be scanned in new message scan!
|
||||||
405 |CR|11|&1 will be scanned in new message scan!
|
405 |CR|11|&1 will be scanned in new message scan!
|
||||||
406 |CR|11|MB is marked as mandatory reading!
|
406 |CR|11|MB is marked as mandatory reading!
|
||||||
; Reply msg To: standard
|
; Reply msg To: standard
|
||||||
407 |CR|09To:
|
407 |CR|09To: |XX
|
||||||
; Reply msg To: lightbar
|
; Reply msg To: lightbar
|
||||||
408 |CR|09To:
|
408 |CR|09To: |XX
|
||||||
; User edit: Hotkeys
|
; User edit: Hotkeys
|
||||||
409 |CR|12Use hot-key input?
|
409 |CR|12Use hot-key input?
|
||||||
; New user: Hotkeys
|
; New user: Hotkeys
|
||||||
|
@ -787,7 +788,7 @@
|
||||||
; ansi msg read: local export
|
; ansi msg read: local export
|
||||||
415 Export to filepath/filename|CR:
|
415 Export to filepath/filename|CR:
|
||||||
; mass email subj: prompt
|
; mass email subj: prompt
|
||||||
416 |CR|09Subject:
|
416 |CR|09Subject: |XX
|
||||||
; General Invalid PW
|
; General Invalid PW
|
||||||
417 |CR|12Invalid password.
|
417 |CR|12Invalid password.
|
||||||
; INFO EDIT: Do not match
|
; INFO EDIT: Do not match
|
||||||
|
@ -834,7 +835,7 @@
|
||||||
; post on msg base (lightbar reader)
|
; post on msg base (lightbar reader)
|
||||||
438 |CR|12Post a message?
|
438 |CR|12Post a message?
|
||||||
; new user: enter email address
|
; new user: enter email address
|
||||||
439 |01[|10þ|01] |09Enter your e-mail address ->
|
439 |01[|10þ|01] |09Enter your e-mail address -> |XX
|
||||||
; info edit: enter email address
|
; info edit: enter email address
|
||||||
440 |CR|09Enter E-mail address|CR:
|
440 |CR|09Enter E-mail address|CR:
|
||||||
; new user: enter user note
|
; new user: enter user note
|
||||||
|
@ -842,23 +843,23 @@
|
||||||
; info edit: enter user note
|
; info edit: enter user note
|
||||||
442 |CR|09Enter your desired user note|CR:
|
442 |CR|09Enter your desired user note|CR:
|
||||||
; new user: option 1
|
; new user: option 1
|
||||||
443 |01[|10þ|01] |09How did you hear of this BBS ->
|
443 |01[|10þ|01] |09How did you hear of this BBS -> |XX
|
||||||
; info edit: option 1
|
; info edit: option 1
|
||||||
444 |CR|09Enter optional field 1:
|
444 |CR|09Enter optional field 1: |XX
|
||||||
; new user: option 2
|
; new user: option 2
|
||||||
445 |CR|09Enter optional field 2:
|
445 |CR|09Enter optional field 2: |XX
|
||||||
; info edit: option 2
|
; info edit: option 2
|
||||||
446 |CR|09Enter optional field 2:
|
446 |CR|09Enter optional field 2: |XX
|
||||||
; new user: option 3
|
; new user: option 3
|
||||||
447 |CR|09Enter optional field 3:
|
447 |CR|09Enter optional field 3: |XX
|
||||||
; info edit: option 3
|
; info edit: option 3
|
||||||
448 |CR|09Enter optional field 3:
|
448 |CR|09Enter optional field 3: |XX
|
||||||
; file new scan setting footer
|
; file new scan setting footer
|
||||||
449
|
449
|
||||||
; private post (email) TO:
|
; private post (email) TO:
|
||||||
450 |CR|09To:
|
450 |CR|09To: |XX
|
||||||
; reply msg SUBJ
|
; reply msg SUBJ
|
||||||
451 |CR|09Subject:
|
451 |CR|09Subject: |XX
|
||||||
; standard quote header
|
; standard quote header
|
||||||
452 |15Quote mode: Select a range of text to quote|CR
|
452 |15Quote mode: Select a range of text to quote|CR
|
||||||
453 |09|$D77Ä|CR|PA
|
453 |09|$D77Ä|CR|PA
|
||||||
|
@ -881,14 +882,13 @@
|
||||||
; filename greater than 70 chars prompt
|
; filename greater than 70 chars prompt
|
||||||
461 |CR|12File of this name already exists.|CR|CR|09Enter new file name (max 70 chars)|CR:
|
461 |CR|12File of this name already exists.|CR|CR|09Enter new file name (max 70 chars)|CR:
|
||||||
; line editor edit subject
|
; line editor edit subject
|
||||||
462 |CR|09Enter new subject:
|
462 |CR|09Enter new subject: |XX
|
||||||
; FS editor edit subject
|
; FS editor edit subject
|
||||||
463 |CR|09Enter new subject:
|
463 |CR|09Enter new subject: |XX
|
||||||
; msgtext quote header &1=date &2=from &3=initials
|
; msgtext quote header &1=date &2=from &3=initials
|
||||||
464 On |&1, |&2 said the following...
|
464 On |&1, |&2 said the following...
|
||||||
; new email node msg: &1=from &2=subj
|
; new email node msg: &1=from &2=subj
|
||||||
465 You've just received new e-mail from |&1.
|
465 You've just received new e-mail from |&1.
|
||||||
|
|
||||||
; ansi gallery: Ansi is required to use this prompt
|
; ansi gallery: Ansi is required to use this prompt
|
||||||
466 |CRSorry, this gallery requires ANSI graphics|CR|CR|PA
|
466 |CRSorry, this gallery requires ANSI graphics|CR|CR|PA
|
||||||
; ansi gallery: Deselected file in list (bar OFF)
|
; ansi gallery: Deselected file in list (bar OFF)
|
||||||
|
@ -908,7 +908,7 @@
|
||||||
; &6=sauce group &7=filetime
|
; &6=sauce group &7=filetime
|
||||||
470 |[X02|15|17 |$R49|&1 |12<DIRECTORY>|$D15 |XX
|
470 |[X02|15|17 |$R49|&1 |12<DIRECTORY>|$D15 |XX
|
||||||
; ansi gallery: Current path update prompt (when switching directories)
|
; ansi gallery: Current path update prompt (when switching directories)
|
||||||
; set to blank to not display a path
|
; set to blank to not display a path (automatically excludes the root)
|
||||||
; &1 = current path &2 = # of files in path
|
; &1 = current path &2 = # of files in path
|
||||||
471 |[X08|[Y05|15|16|$R70|&1
|
471 |[X08|[Y05|15|16|$R70|&1
|
||||||
; ansi gallery: Percent bar update (when redrawing page)
|
; ansi gallery: Percent bar update (when redrawing page)
|
||||||
|
@ -921,7 +921,7 @@
|
||||||
; ansi gallery: Command prompt for ! (only download for now)
|
; ansi gallery: Command prompt for ! (only download for now)
|
||||||
474 |CR|12Download |&1? |XX
|
474 |CR|12Download |&1? |XX
|
||||||
; Password inquiry prompt
|
; Password inquiry prompt
|
||||||
475 |CR|12Send an e-mail about your forgetten password? |XX
|
475 |CR|12Send a password inquiry message to the SysOp? |XX
|
||||||
; Displayed when account expired down to a security level > 0
|
; Displayed when account expired down to a security level > 0
|
||||||
476 |CR|14Your account has expired. Downgrading security to |XS.
|
476 |CR|14Your account has expired. Downgrading security to |XS.
|
||||||
; Displayed when account expired down to level 0 (delete)
|
; Displayed when account expired down to level 0 (delete)
|
||||||
|
@ -941,4 +941,4 @@
|
||||||
; User2User chat mode ended
|
; User2User chat mode ended
|
||||||
484 |CL|09|17 ° |15Chat mode end.|$X79 |16|DE|DE
|
484 |CL|09|17 ° |15Chat mode end.|$X79 |16|DE|DE
|
||||||
; User2User accept chat page request? &1=user &2=Node
|
; User2User accept chat page request? &1=user &2=Node
|
||||||
485 |CL|15|&1 is requesting private user chat. Accept? |11
|
485 |CL|15|&1 is requesting private user chat. Accept? |11
|
||||||
|
|
|
@ -58,7 +58,7 @@ Const
|
||||||
|
|
||||||
colEditBorder = 25; { 31 }
|
colEditBorder = 25; { 31 }
|
||||||
colEditHeader = 31; { 31 }
|
colEditHeader = 31; { 31 }
|
||||||
colEditStatus = 19; { 19 }
|
colEditStatus = 9 + 1 * 16;
|
||||||
colEditPosBar = 9 + 1 * 16;
|
colEditPosBar = 9 + 1 * 16;
|
||||||
|
|
||||||
Type
|
Type
|
||||||
|
|
|
@ -22,7 +22,7 @@ End;
|
||||||
|
|
||||||
Function Char2VarType (C: Char) : TIdentTypes;
|
Function Char2VarType (C: Char) : TIdentTypes;
|
||||||
Begin
|
Begin
|
||||||
Case UpCase(c) of
|
Case UpCase(C) of
|
||||||
'S' : Result := iString;
|
'S' : Result := iString;
|
||||||
'C' : Result := iChar;
|
'C' : Result := iChar;
|
||||||
'B' : Result := iByte;
|
'B' : Result := iByte;
|
||||||
|
|
|
@ -2,14 +2,6 @@ Unit MPL_Compile;
|
||||||
|
|
||||||
{$I M_OPS.PAS}
|
{$I M_OPS.PAS}
|
||||||
|
|
||||||
// OKAY SO iRECORD HAS DATAPTR ALLOCATED TO ITS FULL SIZE.
|
|
||||||
// WHEN A RECORD VARIABLE (iRECORD) is DEFINED, EACH VAR
|
|
||||||
// IS CREATED WITH A POINTER TO iRECORD.DATAPTR[OFFSET]
|
|
||||||
// IRECORD THEN CAN BE REFERENCED AS EXPECTED.
|
|
||||||
// ALSO NEED TO FIGURE OUT SIZEOF TOO
|
|
||||||
|
|
||||||
// REMOVE VARTYPE2CHAR ETC AND USE ORDINAL
|
|
||||||
|
|
||||||
Interface
|
Interface
|
||||||
|
|
||||||
Uses
|
Uses
|
||||||
|
@ -47,22 +39,15 @@ Type
|
||||||
TParserUpdateProc = Procedure (Mode: TParserUpdateInfo);
|
TParserUpdateProc = Procedure (Mode: TParserUpdateInfo);
|
||||||
|
|
||||||
TParserSourceFile = Record
|
TParserSourceFile = Record
|
||||||
DataFile : TCharFile;
|
DataFile : TCharFile;
|
||||||
ColCur : Byte;
|
Position : LongInt;
|
||||||
ColLast : Byte;
|
PosSaved : LongInt;
|
||||||
ColSaved : Byte;
|
Size : LongInt;
|
||||||
LineCur : Word;
|
SavedInfo : TParserUpdateInfo;
|
||||||
LineSaved : Word;
|
|
||||||
Position : LongInt;
|
|
||||||
PosSaved : LongInt;
|
|
||||||
Size : LongInt;
|
|
||||||
ColLastSaved : Byte;
|
|
||||||
SavedInfo : TParserUpdateInfo;
|
|
||||||
End;
|
End;
|
||||||
|
|
||||||
TParserVarInfoRec = Record
|
TParserVarInfoRec = Record
|
||||||
Ident : Array[1..mplMaxVarDeclare] of String[mplMaxIdentLen];
|
Ident : Array[1..mplMaxVarDeclare] of String[mplMaxIdentLen];
|
||||||
Prefix : String[mplMaxIdentLen];
|
|
||||||
vType : TIdentTypes;
|
vType : TIdentTypes;
|
||||||
ArrDem : Byte;
|
ArrDem : Byte;
|
||||||
ArrStart : Array[1..mplMaxArrayDem] of LongInt;
|
ArrStart : Array[1..mplMaxArrayDem] of LongInt;
|
||||||
|
@ -71,14 +56,16 @@ Type
|
||||||
StrLen : Byte;
|
StrLen : Byte;
|
||||||
VarSize : LongInt;
|
VarSize : LongInt;
|
||||||
DataSize : LongInt;
|
DataSize : LongInt;
|
||||||
|
RecID : Word;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
PRecordRec = ^TRecordRec;
|
PRecordRec = ^TRecordRec;
|
||||||
TRecordRec = Record
|
TRecordRec = Record
|
||||||
Ident : String[mplMaxIdentLen];
|
Ident : String[mplMaxIdentLen];
|
||||||
|
RecID : Word;
|
||||||
Fields : Array[1..mplMaxRecFields] of TParserVarInfoRec;
|
Fields : Array[1..mplMaxRecFields] of TParserVarInfoRec;
|
||||||
NumFields : Word;
|
NumFields : Word;
|
||||||
// RecSize : Word;
|
DataSize : LongInt;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
PConstRec = ^TConstRec;
|
PConstRec = ^TConstRec;
|
||||||
|
@ -106,6 +93,7 @@ Type
|
||||||
CurRecNum : Word;
|
CurRecNum : Word;
|
||||||
CurConstNum : Word;
|
CurConstNum : Word;
|
||||||
CurVarID : Word;
|
CurVarID : Word;
|
||||||
|
CurRecID : Word;
|
||||||
UsesUSER : Boolean;
|
UsesUSER : Boolean;
|
||||||
UsesCFG : Boolean;
|
UsesCFG : Boolean;
|
||||||
UsesMBASE : Boolean;
|
UsesMBASE : Boolean;
|
||||||
|
@ -136,7 +124,7 @@ Type
|
||||||
// CODE PROCESSING
|
// CODE PROCESSING
|
||||||
Function GetDataSize (Info: TParserVarInfoRec) : LongInt;
|
Function GetDataSize (Info: TParserVarInfoRec) : LongInt;
|
||||||
Procedure CreateVariable (Var Info: TParserVarInfoRec);
|
Procedure CreateVariable (Var Info: TParserVarInfoRec);
|
||||||
Procedure ParseVariableInfo (Param: Boolean; IsRec: Boolean; Var Info: TParserVarInfoRec);
|
Function ParseVariableInfo (Param: Boolean; IsRec: Boolean; Var Info: TParserVarInfoRec) : LongInt;
|
||||||
Procedure ParseIdent;
|
Procedure ParseIdent;
|
||||||
Procedure ParseBlock (VarStart: Word; OneLine, CheckBlock, IsRepeat: Boolean);
|
Procedure ParseBlock (VarStart: Word; OneLine, CheckBlock, IsRepeat: Boolean);
|
||||||
|
|
||||||
|
@ -144,9 +132,10 @@ Type
|
||||||
Procedure ParseVarString;
|
Procedure ParseVarString;
|
||||||
Procedure ParseVarFile;
|
Procedure ParseVarFile;
|
||||||
Procedure ParseVarBoolean;
|
Procedure ParseVarBoolean;
|
||||||
Procedure ParseVarChar; //combine with string?
|
Procedure ParseVarChar;
|
||||||
Procedure ParseVariable (VT: TIdentTypes);
|
Procedure ParseVariable (VT: TIdentTypes);
|
||||||
Procedure ParseArray (VN: Word);
|
Procedure ParseArray (VN: Word);
|
||||||
|
Function ParseElement (VN: Word; TypeCheck: Boolean; VT: TIdentTypes) : TIdentTypes;
|
||||||
|
|
||||||
Procedure DefineRecordType;
|
Procedure DefineRecordType;
|
||||||
Procedure DefineVariable;
|
Procedure DefineVariable;
|
||||||
|
@ -196,6 +185,7 @@ Begin
|
||||||
Ch := #0;
|
Ch := #0;
|
||||||
IdentStr := '';
|
IdentStr := '';
|
||||||
CurVarID := 0;
|
CurVarID := 0;
|
||||||
|
CurRecID := 0;
|
||||||
CurFile := 0;
|
CurFile := 0;
|
||||||
CurVarNum := 0;
|
CurVarNum := 0;
|
||||||
CurGotoNum := 0;
|
CurGotoNum := 0;
|
||||||
|
@ -271,10 +261,23 @@ Begin
|
||||||
|
|
||||||
UpdateInfo.ErrorType := ErrNum;
|
UpdateInfo.ErrorType := ErrNum;
|
||||||
UpdateInfo.ErrorText := GetErrorMessage(Str);
|
UpdateInfo.ErrorText := GetErrorMessage(Str);
|
||||||
UpdateInfo.ErrorLine := InFile[CurFile].LineCur;
|
UpdateInfo.ErrorLine := 1;
|
||||||
UpdateInfo.ErrorCol := InFile[CurFile].ColCur;
|
UpdateInfo.ErrorCol := 0;
|
||||||
|
|
||||||
If UpdateInfo.ErrorLine < 1 Then UpdateInfo.ErrorLine := 1;
|
InFile[CurFile].DataFile.Seek(0);
|
||||||
|
|
||||||
|
While Not InFile[CurFile].DataFile.EOF And (InFile[CurFile].DataFile.FilePos < InFile[CurFile].Position) Do Begin
|
||||||
|
Case InFile[CurFile].DataFile.Read of
|
||||||
|
#10 : Begin
|
||||||
|
Inc (UpdateInfo.ErrorLine);
|
||||||
|
UpdateInfo.ErrorCol := 0;
|
||||||
|
End;
|
||||||
|
#09,
|
||||||
|
#13 : ;
|
||||||
|
Else
|
||||||
|
Inc (UpdateInfo.ErrorCol);
|
||||||
|
End;
|
||||||
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Function TParserEngine.CurFilePos : LongInt;
|
Function TParserEngine.CurFilePos : LongInt;
|
||||||
|
@ -358,6 +361,9 @@ Begin
|
||||||
If CurRecNum = 0 Then Exit;
|
If CurRecNum = 0 Then Exit;
|
||||||
|
|
||||||
Repeat
|
Repeat
|
||||||
|
writeln('rec ident: ', recdata[count]^.ident);
|
||||||
|
writeln('str: ', str);
|
||||||
|
|
||||||
If strUpper(RecData[Count]^.Ident) = Str Then Begin
|
If strUpper(RecData[Count]^.Ident) = Str Then Begin
|
||||||
Result := Count;
|
Result := Count;
|
||||||
Exit;
|
Exit;
|
||||||
|
@ -400,7 +406,6 @@ Begin
|
||||||
UpdateInfo.Percent := Percent;
|
UpdateInfo.Percent := Percent;
|
||||||
UpdateInfo.FilePosition := InFile[CurFile].Position;
|
UpdateInfo.FilePosition := InFile[CurFile].Position;
|
||||||
UpdateInfo.FileSize := InFile[CurFile].Size;
|
UpdateInfo.FileSize := InFile[CurFile].Size;
|
||||||
UpdateInfo.FileLine := InFile[CurFile].LineCur;
|
|
||||||
End;
|
End;
|
||||||
|
|
||||||
UpdateProc(UpdateInfo);
|
UpdateProc(UpdateInfo);
|
||||||
|
@ -414,9 +419,8 @@ Begin
|
||||||
|
|
||||||
If Not InFile[CurFile].DataFile.Eof Then Begin
|
If Not InFile[CurFile].DataFile.Eof Then Begin
|
||||||
Ch := InFile[CurFile].DataFile.Read;
|
Ch := InFile[CurFile].DataFile.Read;
|
||||||
Inc (InFile[CurFile].Position);
|
|
||||||
|
|
||||||
If Not (Ch in [#10, #13]) Then Inc(InFile[CurFile].ColCur);
|
Inc (InFile[CurFile].Position);
|
||||||
End Else
|
End Else
|
||||||
If InFile[CurFile].DataFile.Eof and (CurFile > 1) Then Begin
|
If InFile[CurFile].DataFile.Eof and (CurFile > 1) Then Begin
|
||||||
CloseSourceFile;
|
CloseSourceFile;
|
||||||
|
@ -434,42 +438,15 @@ Begin
|
||||||
With InFile[CurFile] Do Begin
|
With InFile[CurFile] Do Begin
|
||||||
If Position <= 1 Then Exit;
|
If Position <= 1 Then Exit;
|
||||||
|
|
||||||
Dec (Position);
|
Dec (Position);
|
||||||
Dec (ColCur);
|
|
||||||
|
|
||||||
DataFile.Seek (DataFile.FilePos - 1);
|
DataFile.Seek (DataFile.FilePos - 1);
|
||||||
|
|
||||||
If ColCur < 1 Then Begin
|
|
||||||
ColCur := ColLast;
|
|
||||||
ColLast := 1;
|
|
||||||
|
|
||||||
Dec (LineCur);
|
|
||||||
End;
|
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Function TParserEngine.IsEndOfLine : Boolean;
|
Function TParserEngine.IsEndOfLine : Boolean;
|
||||||
Begin
|
Begin
|
||||||
Result := False;
|
Result := Ch in [#10, #13];
|
||||||
|
|
||||||
Case Ch of
|
|
||||||
#10,
|
|
||||||
#13 : Begin
|
|
||||||
With InFile[CurFile] Do Begin
|
|
||||||
Inc (LineCur);
|
|
||||||
|
|
||||||
ColLast := ColCur;
|
|
||||||
ColCur := 1;
|
|
||||||
Result := True;
|
|
||||||
End;
|
|
||||||
|
|
||||||
If Ch = #13 Then Begin
|
|
||||||
GetChar;
|
|
||||||
|
|
||||||
If Not (Ch in [#10]) Then PrevChar;
|
|
||||||
End;
|
|
||||||
End;
|
|
||||||
End;
|
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Procedure TParserEngine.NextChar;
|
Procedure TParserEngine.NextChar;
|
||||||
|
@ -496,10 +473,9 @@ Begin
|
||||||
|
|
||||||
While Not UpdateInfo.ErrorType <> 0 Do Begin
|
While Not UpdateInfo.ErrorType <> 0 Do Begin
|
||||||
Case Ch of
|
Case Ch of
|
||||||
// SKIP CR/LF...
|
|
||||||
#10,
|
|
||||||
#13 : IsEndOfLine;
|
|
||||||
// SKIP WHITESPACE
|
// SKIP WHITESPACE
|
||||||
|
#10,
|
||||||
|
#13,
|
||||||
#09,
|
#09,
|
||||||
#32,
|
#32,
|
||||||
#59 : {ignore};
|
#59 : {ignore};
|
||||||
|
@ -519,8 +495,6 @@ Begin
|
||||||
'*' : Repeat
|
'*' : Repeat
|
||||||
GetChar;
|
GetChar;
|
||||||
|
|
||||||
IsEndOfLine;
|
|
||||||
|
|
||||||
Case Ch of
|
Case Ch of
|
||||||
'*' : Begin
|
'*' : Begin
|
||||||
GetChar;
|
GetChar;
|
||||||
|
@ -584,6 +558,7 @@ Begin
|
||||||
End;
|
End;
|
||||||
1 : Begin
|
1 : Begin
|
||||||
BlockCount := 1;
|
BlockCount := 1;
|
||||||
|
|
||||||
Repeat
|
Repeat
|
||||||
GetChar;
|
GetChar;
|
||||||
|
|
||||||
|
@ -685,7 +660,7 @@ Begin
|
||||||
|
|
||||||
If UpdateInfo.ErrorType <> 0 Then Exit;
|
If UpdateInfo.ErrorType <> 0 Then Exit;
|
||||||
|
|
||||||
While (UpdateInfo.ErrorType = 0) And ((Ch in ChIdent2) or (Ch = '.')) Do Begin
|
While (UpdateInfo.ErrorType = 0) And (Ch in ChIdent2) Do Begin
|
||||||
IdentStr := IdentStr + Ch;
|
IdentStr := IdentStr + Ch;
|
||||||
GetChar;
|
GetChar;
|
||||||
End;
|
End;
|
||||||
|
@ -707,20 +682,14 @@ End;
|
||||||
Procedure TParserEngine.SavePosition;
|
Procedure TParserEngine.SavePosition;
|
||||||
Begin
|
Begin
|
||||||
With InFile[CurFile] Do Begin
|
With InFile[CurFile] Do Begin
|
||||||
ColSaved := ColCur;
|
PosSaved := DataFile.FilePos + 1;
|
||||||
LineSaved := LineCur;
|
|
||||||
PosSaved := DataFile.FilePos + 1;
|
|
||||||
ColLastSaved := ColLast;
|
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Procedure TParserEngine.LoadPosition;
|
Procedure TParserEngine.LoadPosition;
|
||||||
Begin
|
Begin
|
||||||
With InFile[CurFile] Do Begin
|
With InFile[CurFile] Do Begin
|
||||||
ColCur := ColSaved;
|
|
||||||
LineCur := LineSaved;
|
|
||||||
Position := PosSaved;
|
Position := PosSaved;
|
||||||
ColLast := ColLastSaved;
|
|
||||||
|
|
||||||
DataFile.Seek (Position - 1);
|
DataFile.Seek (Position - 1);
|
||||||
End;
|
End;
|
||||||
|
@ -743,8 +712,10 @@ Var
|
||||||
Begin
|
Begin
|
||||||
If VarData[VN]^.ArrPos > 0 Then Begin
|
If VarData[VN]^.ArrPos > 0 Then Begin
|
||||||
GetStr(tkw[wOpenArray], True, False);
|
GetStr(tkw[wOpenArray], True, False);
|
||||||
For X := 1 to VarData[vn]^.ArrPos Do Begin
|
|
||||||
|
For X := 1 to VarData[VN]^.ArrPos Do Begin
|
||||||
ParseVarNumber;
|
ParseVarNumber;
|
||||||
|
|
||||||
If X < VarData[VN]^.ArrPos Then
|
If X < VarData[VN]^.ArrPos Then
|
||||||
GetStr(tkw[wArrSep], True, False)
|
GetStr(tkw[wArrSep], True, False)
|
||||||
Else
|
Else
|
||||||
|
@ -753,6 +724,65 @@ Begin
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
Function TParserEngine.ParseElement (VN: Word; TypeCheck: Boolean; VT: TIdentTypes) : TIdentTypes;
|
||||||
|
Var
|
||||||
|
Element : String;
|
||||||
|
RecNum : Word;
|
||||||
|
Count : Word;
|
||||||
|
Found : Boolean;
|
||||||
|
Offset : LongInt;
|
||||||
|
X : Word;
|
||||||
|
Begin
|
||||||
|
Result := VarData[VN]^.vType;
|
||||||
|
|
||||||
|
If Result <> iRecord Then Exit;
|
||||||
|
|
||||||
|
NextChar;
|
||||||
|
|
||||||
|
If Ch <> '.' Then Begin
|
||||||
|
PrevChar;
|
||||||
|
Exit;
|
||||||
|
End;
|
||||||
|
|
||||||
|
GetIdent(False);
|
||||||
|
|
||||||
|
Element := strUpper(IdentStr);
|
||||||
|
Offset := 0;
|
||||||
|
|
||||||
|
For Count := 1 to RecData[VarData[VN]^.RecID]^.NumFields Do Begin
|
||||||
|
If strUpper(RecData[VarData[VN]^.RecID]^.Fields[Count].Ident[1]) = Element Then Begin
|
||||||
|
Found := True;
|
||||||
|
Result := RecData[VarData[VN]^.RecID]^.Fields[Count].vType;
|
||||||
|
|
||||||
|
//VarType
|
||||||
|
//Offset
|
||||||
|
//Size
|
||||||
|
|
||||||
|
If RecData[VarData[VN]^.RecID]^.Fields[Count].ArrDem > 0 Then Begin
|
||||||
|
GetStr(tkw[wOpenArray], True, False);
|
||||||
|
|
||||||
|
For X := 1 to RecData[VarData[VN]^.RecID]^.Fields[Count].ArrDem Do Begin
|
||||||
|
ParseVarNumber;
|
||||||
|
|
||||||
|
If X < RecData[VarData[VN]^.RecID]^.Fields[Count].ArrDem Then
|
||||||
|
GetStr(tkw[wArrSep], True, False)
|
||||||
|
Else
|
||||||
|
GetStr(tkw[wCloseArray], True, False);
|
||||||
|
End;
|
||||||
|
End;
|
||||||
|
|
||||||
|
// writeln('creating ', recdata[vardata[vn]^.recid]^.fields[count].varsize, ' at ', offset);
|
||||||
|
|
||||||
|
Break;
|
||||||
|
End;
|
||||||
|
|
||||||
|
Inc (Offset, RecData[VarData[VN]^.RecID]^.Fields[Count].VarSize);
|
||||||
|
End;
|
||||||
|
|
||||||
|
If Not Found Then
|
||||||
|
Error (mpsUnknownIdent, '');
|
||||||
|
End;
|
||||||
|
|
||||||
Procedure TParserEngine.NewNumberCrap;
|
Procedure TParserEngine.NewNumberCrap;
|
||||||
var
|
var
|
||||||
IsDecimal : Boolean;
|
IsDecimal : Boolean;
|
||||||
|
@ -853,6 +883,7 @@ begin
|
||||||
|
|
||||||
If GetIdent(False) Then Begin
|
If GetIdent(False) Then Begin
|
||||||
VarNum := FindConst(IdentStr);
|
VarNum := FindConst(IdentStr);
|
||||||
|
|
||||||
If VarNum > 0 Then Begin
|
If VarNum > 0 Then Begin
|
||||||
If Not (ConstData[VarNum]^.vType in vNums) Then
|
If Not (ConstData[VarNum]^.vType in vNums) Then
|
||||||
Error (mpsTypeMismatch, '');
|
Error (mpsTypeMismatch, '');
|
||||||
|
@ -864,7 +895,7 @@ begin
|
||||||
If VarNum = 0 Then
|
If VarNum = 0 Then
|
||||||
Error (mpsUnknownIdent, IdentStr)
|
Error (mpsUnknownIdent, IdentStr)
|
||||||
Else
|
Else
|
||||||
If Not (VarData[VarNum]^.vType in vNums) Then
|
If Not (VarData[VarNum]^.vType in vNums) And (VarData[VarNum]^.vType <> iRecord) Then
|
||||||
Error (mpsTypeMismatch, '');
|
Error (mpsTypeMismatch, '');
|
||||||
|
|
||||||
If UpdateInfo.ErrorType <> 0 Then Exit;
|
If UpdateInfo.ErrorType <> 0 Then Exit;
|
||||||
|
@ -872,9 +903,10 @@ begin
|
||||||
If VarData[VarNum]^.Proc Then
|
If VarData[VarNum]^.Proc Then
|
||||||
ExecuteProcedure (VarNum, True)
|
ExecuteProcedure (VarNum, True)
|
||||||
Else Begin
|
Else Begin
|
||||||
OutString (Char(opVariable));
|
OutString (Char(opVariable));
|
||||||
OutWord (VarData[VarNum]^.VarID);
|
OutWord (VarData[VarNum]^.VarID);
|
||||||
ParseArray (VarNum);
|
ParseArray (VarNum);
|
||||||
|
ParseElement (VarNum, True, iLongInt);
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
End Else
|
End Else
|
||||||
|
@ -973,16 +1005,16 @@ Begin
|
||||||
If Not (ConstData[VarNum]^.vType in vStrings) Then
|
If Not (ConstData[VarNum]^.vType in vStrings) Then
|
||||||
Error (mpsTypeMismatch, '');
|
Error (mpsTypeMismatch, '');
|
||||||
|
|
||||||
OutString(Char(opOpenString));
|
OutString (Char(opOpenString));
|
||||||
OutString(ConstData[VarNum]^.Data[0]);
|
OutString (ConstData[VarNum]^.Data[0]);
|
||||||
OutString(ConstData[VarNum]^.Data);
|
OutString (ConstData[VarNum]^.Data);
|
||||||
End Else Begin
|
End Else Begin
|
||||||
VarNum := FindVariable(IdentStr);
|
VarNum := FindVariable(IdentStr);
|
||||||
|
|
||||||
If VarNum = 0 Then
|
If VarNum = 0 Then
|
||||||
Error (mpsUnknownIdent, IdentStr)
|
Error (mpsUnknownIdent, IdentStr)
|
||||||
Else
|
Else
|
||||||
If Not (VarData[VarNum]^.vType in vStrings) Then
|
If Not (VarData[VarNum]^.vType in vStrings) And (VarData[VarNum]^.vType <> iRecord) Then
|
||||||
Error (mpsTypeMismatch, '');
|
Error (mpsTypeMismatch, '');
|
||||||
|
|
||||||
If UpdateInfo.ErrorType <> 0 Then Exit;
|
If UpdateInfo.ErrorType <> 0 Then Exit;
|
||||||
|
@ -990,9 +1022,10 @@ Begin
|
||||||
If VarData[VarNum]^.Proc Then
|
If VarData[VarNum]^.Proc Then
|
||||||
ExecuteProcedure(VarNum, True)
|
ExecuteProcedure(VarNum, True)
|
||||||
Else Begin
|
Else Begin
|
||||||
OutString (Char(opVariable));
|
OutString (Char(opVariable));
|
||||||
OutWord (VarData[VarNum]^.VarID);
|
OutWord (VarData[VarNum]^.VarID);
|
||||||
ParseArray (VarNum);
|
ParseArray (VarNum);
|
||||||
|
ParseElement (VarNum, True, iChar);
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
@ -1112,7 +1145,7 @@ Begin
|
||||||
If VarNum = 0 Then
|
If VarNum = 0 Then
|
||||||
Error (mpsUnknownIdent, IdentStr)
|
Error (mpsUnknownIdent, IdentStr)
|
||||||
Else
|
Else
|
||||||
If Not (VarData[VarNum]^.vType in vStrings) Then
|
If Not (VarData[VarNum]^.vType in vStrings) And (VarData[VarNum]^.vType <> iRecord) Then
|
||||||
Error (mpsTypeMismatch, '');
|
Error (mpsTypeMismatch, '');
|
||||||
|
|
||||||
If UpdateInfo.ErrorType <> 0 Then Exit;
|
If UpdateInfo.ErrorType <> 0 Then Exit;
|
||||||
|
@ -1120,9 +1153,10 @@ Begin
|
||||||
If VarData[VarNum]^.Proc Then
|
If VarData[VarNum]^.Proc Then
|
||||||
ExecuteProcedure(VarNum, True)
|
ExecuteProcedure(VarNum, True)
|
||||||
Else Begin
|
Else Begin
|
||||||
OutString (Char(opVariable));
|
OutString (Char(opVariable));
|
||||||
OutWord (VarData[VarNum]^.VarID);
|
OutWord (VarData[VarNum]^.VarID);
|
||||||
ParseArray (VarNum);
|
ParseArray (VarNum);
|
||||||
|
ParseElement (VarNum, True, iString);
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
@ -1215,15 +1249,16 @@ Begin
|
||||||
If VarNum = 0 Then
|
If VarNum = 0 Then
|
||||||
Error (mpsUnknownIdent, IdentStr)
|
Error (mpsUnknownIdent, IdentStr)
|
||||||
Else
|
Else
|
||||||
If VarData[VarNum]^.vType <> iBool Then
|
If (VarData[VarNum]^.vType <> iBool) And (VarData[VarNum]^.vType <> iRecord) Then
|
||||||
Error (mpsTypeMismatch, '')
|
Error (mpsTypeMismatch, '')
|
||||||
Else
|
Else
|
||||||
If VarData[VarNum]^.Proc Then
|
If VarData[VarNum]^.Proc Then
|
||||||
ExecuteProcedure(VarNum, True)
|
ExecuteProcedure(VarNum, True)
|
||||||
Else Begin
|
Else Begin
|
||||||
OutString (Char(opVariable));
|
OutString (Char(opVariable));
|
||||||
OutWord (VarData[VarNum]^.VarID);
|
OutWord (VarData[VarNum]^.VarID);
|
||||||
ParseArray (VarNum);
|
ParseArray (VarNum);
|
||||||
|
ParseElement (VarNum, True, iBool);
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
@ -1455,7 +1490,7 @@ Begin
|
||||||
Result := DimSize;
|
Result := DimSize;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Procedure TParserEngine.ParseVariableInfo (Param: Boolean; IsRec: Boolean; Var Info: TParserVarInfoRec);
|
Function TParserEngine.ParseVariableInfo (Param: Boolean; IsRec: Boolean; Var Info: TParserVarInfoRec) : LongInt;
|
||||||
|
|
||||||
Function ParseNum : LongInt;
|
Function ParseNum : LongInt;
|
||||||
Var
|
Var
|
||||||
|
@ -1547,41 +1582,41 @@ Procedure TParserEngine.ParseVariableInfo (Param: Boolean; IsRec: Boolean; Var I
|
||||||
If IsRec Then Error(mpsSyntaxError, 'Cannot define file in record');
|
If IsRec Then Error(mpsSyntaxError, 'Cannot define file in record');
|
||||||
Info.vType := iFile;
|
Info.vType := iFile;
|
||||||
End Else Begin
|
End Else Begin
|
||||||
Count := FindRecord(IdentStr);
|
Info.RecID := FindRecord(IdentStr);
|
||||||
|
|
||||||
If Count = 0 Then
|
If Info.RecID = 0 Then
|
||||||
Error(mpsUnknownIdent, IdentStr)
|
Error(mpsUnknownIdent, IdentStr)
|
||||||
Else If IsRec Then
|
Else If IsRec Then
|
||||||
Error(mpsSyntaxError, 'Cannot define record in record')
|
Error(mpsSyntaxError, 'Cannot define record in record')
|
||||||
Else Begin
|
Else Begin
|
||||||
Info.vType := iRecord;
|
Info.vType := iRecord;
|
||||||
Info.Prefix := Info.Ident[1] + '.';
|
|
||||||
Info.StrLen := Count;
|
|
||||||
|
|
||||||
// this crap needs to go?
|
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
If Not Param Then
|
Case Info.vType of
|
||||||
If Info.vType = iString Then
|
iString : Begin
|
||||||
If GetStr(tkw[wOpenStrSize], False, False) Then Begin
|
Info.StrLen := 255;
|
||||||
Info.StrLen := ParseNum;
|
|
||||||
GetStr(tkw[wCloseStrSize], True, False);
|
|
||||||
End Else
|
|
||||||
Info.StrLen := 255;
|
|
||||||
|
|
||||||
If Info.vType <> iRecord Then Begin
|
If Not Param Then
|
||||||
If Info.vType = iString Then
|
If GetStr(tkw[wOpenStrSize], False, False) Then Begin
|
||||||
Info.VarSize := Info.StrLen + 1
|
Info.StrLen := ParseNum;
|
||||||
Else
|
GetStr(tkw[wCloseStrSize], True, False);
|
||||||
Info.VarSize := GetVarSize(Info.vType);
|
End;
|
||||||
|
|
||||||
If Info.ArrDem > 0 Then
|
Info.VarSize := Info.StrLen + 1;
|
||||||
Info.VarSize := GetDataSize(Info);
|
End;
|
||||||
|
iRecord : Info.VarSize := RecData[Info.RecID]^.DataSize;
|
||||||
If Info.VarSize > mplMaxDataSize Then
|
Else
|
||||||
Error (mpsDataTooBig, '');
|
Info.VarSize := GetVarSize(Info.vType);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
If Info.ArrDem > 0 Then
|
||||||
|
Info.VarSize := GetDataSize(Info);
|
||||||
|
|
||||||
|
If Info.VarSize > mplMaxDataSize Then
|
||||||
|
Error (mpsDataTooBig, '');
|
||||||
|
|
||||||
|
// writeln('parsed variable of size: ' , info.varsize);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Begin
|
Begin
|
||||||
|
@ -1743,46 +1778,10 @@ End;
|
||||||
|
|
||||||
Procedure TParserEngine.DefineVariable;
|
Procedure TParserEngine.DefineVariable;
|
||||||
Var
|
Var
|
||||||
Info : TParserVarInfoRec;
|
Info : TParserVarInfoRec;
|
||||||
BaseRec : TParserVarInfoRec;
|
|
||||||
Count : LongInt;
|
|
||||||
Begin
|
Begin
|
||||||
ParseVariableInfo(False, False, Info);
|
ParseVariableInfo (False, False, Info);
|
||||||
|
CreateVariable (Info);
|
||||||
If Info.vType = iRecord Then Begin
|
|
||||||
OutString (Char(opTypeRec));
|
|
||||||
OutWord (RecData[Info.StrLen]^.NumFields);
|
|
||||||
|
|
||||||
BaseRec := Info;
|
|
||||||
|
|
||||||
BaseRec.VarSize := 0;
|
|
||||||
BaseRec.ArrDem := Info.ArrDem;
|
|
||||||
BaseRec.ArrStart := Info.ArrStart;
|
|
||||||
BaseRec.ArrEnd := Info.ArrEnd;
|
|
||||||
BaseRec.Prefix := '';
|
|
||||||
BaseRec.NumVars := 1;
|
|
||||||
BaseRec.StrLen := 0;
|
|
||||||
|
|
||||||
For Count := 1 to RecData[Info.StrLen]^.NumFields Do
|
|
||||||
Inc (BaseRec.VarSize, RecData[Info.StrLen]^.Fields[Count].VarSize);
|
|
||||||
|
|
||||||
If BaseRec.VarSize > mplMaxDataSize Then Begin
|
|
||||||
Error (mpsDataTooBig, '');
|
|
||||||
Exit;
|
|
||||||
End;
|
|
||||||
|
|
||||||
BaseRec.DataSize := GetDataSize(BaseRec);
|
|
||||||
|
|
||||||
OutWord (BaseRec.DataSize);
|
|
||||||
|
|
||||||
CreateVariable(BaseRec);
|
|
||||||
|
|
||||||
For Count := 1 to RecData[Info.StrLen]^.NumFields Do Begin
|
|
||||||
RecData[Info.StrLen]^.Fields[Count].Prefix := Info.Prefix;
|
|
||||||
CreateVariable(RecData[Info.StrLen]^.Fields[Count]);
|
|
||||||
End;
|
|
||||||
End Else
|
|
||||||
CreateVariable(Info);
|
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Procedure TParserEngine.CreateVariable (Var Info: TParserVarInfoRec);
|
Procedure TParserEngine.CreateVariable (Var Info: TParserVarInfoRec);
|
||||||
|
@ -1795,6 +1794,11 @@ Begin
|
||||||
If (Info.vType = iString) and (Info.StrLen > 0) Then
|
If (Info.vType = iString) and (Info.StrLen > 0) Then
|
||||||
OutString(Char(opStrSize) + Char(opOpenNum) + strI2S(Info.StrLen) + Char(opCloseNum));
|
OutString(Char(opStrSize) + Char(opOpenNum) + strI2S(Info.StrLen) + Char(opCloseNum));
|
||||||
|
|
||||||
|
If Info.vType = iRecord Then Begin
|
||||||
|
OutString (Char(opTypeRec));
|
||||||
|
OutWord (Info.DataSize);
|
||||||
|
End;
|
||||||
|
|
||||||
If Info.ArrDem = 0 Then
|
If Info.ArrDem = 0 Then
|
||||||
OutString(Char(opVarNormal))
|
OutString(Char(opVarNormal))
|
||||||
Else Begin
|
Else Begin
|
||||||
|
@ -1817,10 +1821,11 @@ Begin
|
||||||
OutWord (CurVarID);
|
OutWord (CurVarID);
|
||||||
Inc (CurVarID);
|
Inc (CurVarID);
|
||||||
|
|
||||||
Ident := Info.Prefix + Info.Ident[Count];
|
Ident := Info.Ident[Count];
|
||||||
vType := Info.vType;
|
vType := Info.vType;
|
||||||
Proc := False;
|
Proc := False;
|
||||||
ArrPos := Info.ArrDem;
|
ArrPos := Info.ArrDem;
|
||||||
|
RecID := Info.RecID;
|
||||||
NumParams := 0;
|
NumParams := 0;
|
||||||
|
|
||||||
FillChar(Params, SizeOf(Params), 0);
|
FillChar(Params, SizeOf(Params), 0);
|
||||||
|
@ -1838,10 +1843,9 @@ Begin
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Procedure TParserEngine.DefineRecordType;
|
Procedure TParserEngine.DefineRecordType;
|
||||||
// get rid of this crap kludge and do records the right way...
|
|
||||||
Var
|
Var
|
||||||
Ident : String;
|
Ident : String;
|
||||||
Info : TParserVarInfoRec;
|
Info : TParserVarInfoRec;
|
||||||
Begin
|
Begin
|
||||||
GetIdent(False);
|
GetIdent(False);
|
||||||
|
|
||||||
|
@ -1862,6 +1866,10 @@ Begin
|
||||||
|
|
||||||
RecData[CurRecNum]^.Ident := Ident;
|
RecData[CurRecNum]^.Ident := Ident;
|
||||||
RecData[CurRecNum]^.NumFields := 0;
|
RecData[CurRecNum]^.NumFields := 0;
|
||||||
|
RecData[CurRecNum]^.DataSize := 0;
|
||||||
|
RecData[CurRecNum]^.RecID := CurRecID;
|
||||||
|
|
||||||
|
Inc (CurRecID);
|
||||||
|
|
||||||
Repeat
|
Repeat
|
||||||
Inc (RecData[CurRecNum]^.NumFields);
|
Inc (RecData[CurRecNum]^.NumFields);
|
||||||
|
@ -1869,12 +1877,34 @@ Begin
|
||||||
If RecData[CurRecNum]^.NumFields > mplMaxRecFields Then
|
If RecData[CurRecNum]^.NumFields > mplMaxRecFields Then
|
||||||
Error (mpsTooManyFields, '');
|
Error (mpsTooManyFields, '');
|
||||||
|
|
||||||
// need to check that datasize does not go over the max
|
ParseVariableInfo(False, True, Info);
|
||||||
|
|
||||||
ParseVariableInfo(False, True, Info); // if record fail if file type?
|
|
||||||
|
|
||||||
RecData[CurRecNum]^.Fields[RecData[CurRecNum]^.NumFields] := Info;
|
RecData[CurRecNum]^.Fields[RecData[CurRecNum]^.NumFields] := Info;
|
||||||
|
|
||||||
|
Inc (RecData[CurRecNum]^.DataSize, Info.VarSize);
|
||||||
Until (UpdateInfo.ErrorType <> 0) or GetStr(tkw[wBlockClose], False, tkwType = 1);
|
Until (UpdateInfo.ErrorType <> 0) or GetStr(tkw[wBlockClose], False, tkwType = 1);
|
||||||
|
|
||||||
|
If RecData[CurRecNum]^.DataSize > mplMaxDataSize Then
|
||||||
|
Error (mpsDataTooBig, '');
|
||||||
|
(*
|
||||||
|
OutString (Char(opTypeRec));
|
||||||
|
OutWord (RecData[CurRecNum]^.RecID);
|
||||||
|
OutWord (RecData[CurRecNum]^.NumFields);
|
||||||
|
OutWord (RecData[CUrRecNum]^.DataSize);
|
||||||
|
*)
|
||||||
|
// what would we need:
|
||||||
|
// 1. vartype (byte)
|
||||||
|
// 2. offset (Word)
|
||||||
|
// 3. size (word)
|
||||||
|
|
||||||
|
// output record define OP
|
||||||
|
// output record ID
|
||||||
|
// output record variable types STRING needs size and how do we do array?
|
||||||
|
// output record size?
|
||||||
|
|
||||||
|
// ALSO need to output on createvariable for RECORD type
|
||||||
|
// need to add both to interpreter engine
|
||||||
|
// need to change interpreter to address vars by data pointer always?
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Procedure TParserEngine.DefineProc;
|
Procedure TParserEngine.DefineProc;
|
||||||
|
@ -1994,6 +2024,8 @@ Begin
|
||||||
Else
|
Else
|
||||||
Error (mpsUnknownIdent, IdentStr);
|
Error (mpsUnknownIdent, IdentStr);
|
||||||
|
|
||||||
|
// need to support records here
|
||||||
|
|
||||||
VarChar := VarType2Char(VarType);
|
VarChar := VarType2Char(VarType);
|
||||||
|
|
||||||
VarData[ProcVar]^.vType := VarType;
|
VarData[ProcVar]^.vType := VarType;
|
||||||
|
@ -2036,9 +2068,9 @@ Begin
|
||||||
If (VarData[RV]^.vType <> Char2VarType(VarData[VN]^.Params[Count])) And (VarData[VN]^.Params[Count] <> '*') Then
|
If (VarData[RV]^.vType <> Char2VarType(VarData[VN]^.Params[Count])) And (VarData[VN]^.Params[Count] <> '*') Then
|
||||||
Error (mpsTypeMismatch, '');
|
Error (mpsTypeMismatch, '');
|
||||||
|
|
||||||
// OutString (Char(opVariable)); // i dont think we need this
|
OutWord (VarData[RV]^.VarID);
|
||||||
OutWord (VarData[RV]^.VarID);
|
ParseArray (RV);
|
||||||
ParseArray (RV);
|
ParseElement (RV, VarData[VN]^.Params[Count] <> '*', VarData[RV]^.vType);
|
||||||
|
|
||||||
// if = '*' and type iString then...do the string index
|
// if = '*' and type iString then...do the string index
|
||||||
End Else Begin
|
End Else Begin
|
||||||
|
@ -2074,13 +2106,15 @@ Begin
|
||||||
|
|
||||||
VC := FindVariable(IdentStr);
|
VC := FindVariable(IdentStr);
|
||||||
|
|
||||||
If Not (VarData[VC]^.vType in vNums) Then Error(mpsNumExpected, '');
|
If Not (VarData[VC]^.vType in vNums) And (VarData[VC]^.vType <> iRecord) Then
|
||||||
|
Error(mpsNumExpected, '');
|
||||||
|
|
||||||
If UpdateInfo.ErrorType <> 0 Then Exit;
|
If UpdateInfo.ErrorType <> 0 Then Exit;
|
||||||
|
|
||||||
OutWord (VarData[VC]^.VarID);
|
OutWord (VarData[VC]^.VarID);
|
||||||
ParseArray (VC);
|
ParseArray (VC);
|
||||||
GetStr (tkw[wSetVar], True, False);
|
ParseElement (VC, True, iLongInt);
|
||||||
|
GetStr (tkw[wSetVar], True, False);
|
||||||
|
|
||||||
If UpdateInfo.ErrorType <> 0 Then Exit;
|
If UpdateInfo.ErrorType <> 0 Then Exit;
|
||||||
|
|
||||||
|
@ -2432,8 +2466,8 @@ Begin
|
||||||
If Not VarData[vn]^.InProc Then Exit;
|
If Not VarData[vn]^.InProc Then Exit;
|
||||||
|
|
||||||
If GetStr(tkw[wSetVar], False, False) Then Begin
|
If GetStr(tkw[wSetVar], False, False) Then Begin
|
||||||
OutString (Char(opSetVar));
|
OutString (Char(opSetVar));
|
||||||
OutWord (VarData[VN]^.VarID);
|
OutWord (VarData[VN]^.VarID);
|
||||||
ParseVariable (VarData[VN]^.vType);
|
ParseVariable (VarData[VN]^.vType);
|
||||||
|
|
||||||
SetProcResult := True;
|
SetProcResult := True;
|
||||||
|
@ -2443,6 +2477,7 @@ End;
|
||||||
Procedure TParserEngine.ParseIdent;
|
Procedure TParserEngine.ParseIdent;
|
||||||
Var
|
Var
|
||||||
VarNum : LongInt;
|
VarNum : LongInt;
|
||||||
|
VT : TIdentTypes;
|
||||||
Begin
|
Begin
|
||||||
PrevChar;
|
PrevChar;
|
||||||
GetIdent(False);
|
GetIdent(False);
|
||||||
|
@ -2468,14 +2503,17 @@ Begin
|
||||||
If VarData[VarNum]^.Proc Then Begin
|
If VarData[VarNum]^.Proc Then Begin
|
||||||
If Not SetProcResult(VarNum) Then ExecuteProcedure(VarNum, False);
|
If Not SetProcResult(VarNum) Then ExecuteProcedure(VarNum, False);
|
||||||
End Else Begin
|
End Else Begin
|
||||||
OutString (Char(opSetVar));
|
OutString (Char(opSetVar));
|
||||||
OutWord (VarData[VarNum]^.VarID);
|
OutWord (VarData[VarNum]^.VarID);
|
||||||
ParseArray (VarNum);
|
ParseArray (VarNum);
|
||||||
|
|
||||||
|
VT := ParseElement (VarNum, False, iNone);
|
||||||
|
|
||||||
|
//will need to pull vartype from parse array here
|
||||||
GetChar;
|
GetChar;
|
||||||
|
|
||||||
// should this only happen with a string?
|
// prob shoud be iString check here. also need to
|
||||||
If Ch = tkw[wOpenArray] Then Begin
|
If (Ch = tkw[wOpenArray]) Then Begin
|
||||||
OutString(Char(opStrArray));
|
OutString(Char(opStrArray));
|
||||||
ParseVarNumber;
|
ParseVarNumber;
|
||||||
// check here to make sure is <= string length?
|
// check here to make sure is <= string length?
|
||||||
|
@ -2485,7 +2523,7 @@ Begin
|
||||||
|
|
||||||
If Not GetStr(tkw[wSetVar], True, False) Then Exit;
|
If Not GetStr(tkw[wSetVar], True, False) Then Exit;
|
||||||
|
|
||||||
ParseVariable(VarData[VarNum]^.vType);
|
ParseVariable(VT);
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
@ -2623,10 +2661,12 @@ Begin
|
||||||
|
|
||||||
Dispose (GotoData[Count]);
|
Dispose (GotoData[Count]);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
CurGotoNum := SavedGoto;
|
CurGotoNum := SavedGoto;
|
||||||
|
|
||||||
For Count := CurRecNum DownTo SavedRec + 1 Do
|
For Count := CurRecNum DownTo SavedRec + 1 Do
|
||||||
Dispose (RecData[Count]);
|
Dispose (RecData[Count]);
|
||||||
|
|
||||||
CurRecNum := SavedRec;
|
CurRecNum := SavedRec;
|
||||||
|
|
||||||
For Count := CurConstNum DownTo SavedConst + 1 Do
|
For Count := CurConstNum DownTo SavedConst + 1 Do
|
||||||
|
@ -2651,10 +2691,6 @@ Begin
|
||||||
|
|
||||||
FillChar (InFile[CurFile], SizeOf(InFile[CurFile]), 0);
|
FillChar (InFile[CurFile], SizeOf(InFile[CurFile]), 0);
|
||||||
|
|
||||||
InFile[CurFile].LineCur := 1;
|
|
||||||
InFile[CurFile].LineSaved := 1;
|
|
||||||
InFile[CurFile].ColCur := 0;
|
|
||||||
InFile[CurFile].ColSaved := 0;
|
|
||||||
InFile[CurFile].Position := 1;
|
InFile[CurFile].Position := 1;
|
||||||
InFile[CurFile].PosSaved := 1;
|
InFile[CurFile].PosSaved := 1;
|
||||||
InFile[CurFile].Size := 1;
|
InFile[CurFile].Size := 1;
|
||||||
|
|
|
@ -48,8 +48,8 @@ Type
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
Function GetErrorMsg : String;
|
Function GetErrorMsg : String;
|
||||||
Procedure Error (Err: Byte; Str: String);
|
Procedure Error (Err: Byte; Str: String);
|
||||||
Procedure MoveToPos (Num: LongInt);
|
Procedure MoveToPos (Num: LongInt);
|
||||||
Procedure SkipBlock;
|
Procedure SkipBlock;
|
||||||
Function CurFilePos : LongInt;
|
Function CurFilePos : LongInt;
|
||||||
Procedure NextChar;
|
Procedure NextChar;
|
||||||
|
@ -70,9 +70,9 @@ Type
|
||||||
Procedure SetNumber (VN: Word; R: Real; Var A: TArrayInfo);
|
Procedure SetNumber (VN: Word; R: Real; Var A: TArrayInfo);
|
||||||
Procedure SetVariable (VarNum: Word);
|
Procedure SetVariable (VarNum: Word);
|
||||||
|
|
||||||
Function DefineVariable (DataStart: Pointer; RecSize: Word) : LongInt;
|
Function DefineVariable : LongInt;
|
||||||
Procedure DefineProcedure;
|
Procedure DefineProcedure;
|
||||||
Procedure DefineRecord;
|
//Procedure DefineRecordType;
|
||||||
|
|
||||||
Procedure StatementRepeatUntil;
|
Procedure StatementRepeatUntil;
|
||||||
Function StatementIfThenElse : Byte;
|
Function StatementIfThenElse : Byte;
|
||||||
|
@ -147,7 +147,7 @@ Begin
|
||||||
// ProcPos : LongInt;
|
// ProcPos : LongInt;
|
||||||
// Data : PStack;
|
// Data : PStack;
|
||||||
// ArrPos : Byte;
|
// ArrPos : Byte;
|
||||||
// ArrDim : TArrayInfo;
|
// ArrDims : TArrayInfo;
|
||||||
|
|
||||||
End;
|
End;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
@ -934,12 +934,13 @@ Begin
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Function TInterpEngine.DefineVariable (DataStart: Pointer; RecSize: Word) : LongInt;
|
Function TInterpEngine.DefineVariable : LongInt;
|
||||||
Var
|
Var
|
||||||
VarType : TIdentTypes;
|
VarType : TIdentTypes;
|
||||||
NumVars : Word;
|
NumVars : Word;
|
||||||
SavedVar : Word;
|
SavedVar : Word;
|
||||||
StrSize : Word;
|
StrSize : Word;
|
||||||
|
RecSize : Word;
|
||||||
Count : Word;
|
Count : Word;
|
||||||
ArrayPos : Word;
|
ArrayPos : Word;
|
||||||
ArrayData : TArrayInfo;
|
ArrayData : TArrayInfo;
|
||||||
|
@ -962,6 +963,14 @@ Begin
|
||||||
NextChar;
|
NextChar;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
If Ch = Char(opTypeRec) Then Begin
|
||||||
|
NextWord;
|
||||||
|
|
||||||
|
RecSize := W;
|
||||||
|
|
||||||
|
NextChar;
|
||||||
|
End;
|
||||||
|
|
||||||
If Ch = Char(opArrDef) Then Begin
|
If Ch = Char(opArrDef) Then Begin
|
||||||
NextWord;
|
NextWord;
|
||||||
|
|
||||||
|
@ -1011,15 +1020,10 @@ Begin
|
||||||
|
|
||||||
Result := DataSize;
|
Result := DataSize;
|
||||||
|
|
||||||
If DataStart = NIL Then Begin
|
GetMem (Data, DataSize);
|
||||||
GetMem (Data, DataSize);
|
FillChar (Data^, DataSize, 0);
|
||||||
FillChar (Data^, DataSize, 0);
|
|
||||||
|
|
||||||
Kill := True;
|
Kill := True;
|
||||||
End Else Begin
|
|
||||||
Data := DataStart;
|
|
||||||
Kill := False;
|
|
||||||
End;
|
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
@ -2024,37 +2028,10 @@ Begin
|
||||||
PrevChar;
|
PrevChar;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Procedure TInterpEngine.DefineRecord;
|
//Procedure TInterpEngine.DefineRecordType;
|
||||||
Var
|
//Begin
|
||||||
Count : LongInt;
|
//asdf
|
||||||
RecSize : LongInt;
|
//End;
|
||||||
Begin
|
|
||||||
NextWord;
|
|
||||||
|
|
||||||
Inc (CurRecNum);
|
|
||||||
New (RecData[CurRecNum]);
|
|
||||||
|
|
||||||
// Holds ID info for all variables in this record
|
|
||||||
|
|
||||||
RecData[CurRecNum]^.RecStart := CurVarNum + 2; {+1 is base}
|
|
||||||
RecData[CurRecNum]^.NumFields := W;
|
|
||||||
|
|
||||||
NextWord;
|
|
||||||
|
|
||||||
RecSize := W;
|
|
||||||
|
|
||||||
NextChar; // opVarDeclare
|
|
||||||
|
|
||||||
DefineVariable (NIL, RecSize); // Base record identifier
|
|
||||||
|
|
||||||
RecSize := 1;
|
|
||||||
|
|
||||||
For Count := 1 to RecData[CurRecNum]^.NumFields Do Begin
|
|
||||||
NextChar; // opVarDeclare
|
|
||||||
|
|
||||||
Inc (RecSize, DefineVariable(@TStack(VarData[RecData[CurRecNum]^.RecStart - 1]^.Data^)[RecSize], 0));
|
|
||||||
End;
|
|
||||||
End;
|
|
||||||
|
|
||||||
Function TInterpEngine.ExecuteBlock (StartVar, StartRec: Word) : Byte;
|
Function TInterpEngine.ExecuteBlock (StartVar, StartRec: Word) : Byte;
|
||||||
Var
|
Var
|
||||||
|
@ -2085,7 +2062,7 @@ Begin
|
||||||
Self.ExecuteBlock(CurVarNum, CurRecNum);
|
Self.ExecuteBlock(CurVarNum, CurRecNum);
|
||||||
End;
|
End;
|
||||||
{1} opBlockClose : Break;
|
{1} opBlockClose : Break;
|
||||||
{2} opVarDeclare : DefineVariable (NIL, 0);
|
{2} opVarDeclare : DefineVariable;
|
||||||
{12} opSetVar : Begin
|
{12} opSetVar : Begin
|
||||||
NextWord;
|
NextWord;
|
||||||
SetVariable(FindVariable(W));
|
SetVariable(FindVariable(W));
|
||||||
|
@ -2116,7 +2093,7 @@ Begin
|
||||||
Break;
|
Break;
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
{52} opTypeRec : DefineRecord;
|
//{52} opTypeRec : DefineRecordType;
|
||||||
{53} opBreak : Begin
|
{53} opBreak : Begin
|
||||||
MoveToPos (BlockStart + BlockSize);
|
MoveToPos (BlockStart + BlockSize);
|
||||||
Result := 1;
|
Result := 1;
|
||||||
|
|
|
@ -230,9 +230,20 @@ Const
|
||||||
|
|
||||||
Type
|
Type
|
||||||
{$IFNDEF MPLPARSER}
|
{$IFNDEF MPLPARSER}
|
||||||
PStack = ^TStack;
|
PStack = ^TStack;
|
||||||
TStack = Array[1..mplMaxDataSize] of Byte;
|
TStack = Array[1..mplMaxDataSize] of Byte;
|
||||||
TArrayInfo = Array[1..mplMaxArrayDem] of Word;
|
TArrayInfo = Array[1..mplMaxArrayDem] of Word;
|
||||||
|
TRecordInfo = Record
|
||||||
|
vType : Byte;
|
||||||
|
Offset : Word;
|
||||||
|
DataSize : Word;
|
||||||
|
End;
|
||||||
|
//TVarInfo = Record
|
||||||
|
// AInfo : Array[1..mplMaxArrayDem] of Word;
|
||||||
|
// RInfo : Word;
|
||||||
|
// End;
|
||||||
|
// Basically, an ArrayInfo will have an appended Offset for DataPtr
|
||||||
|
// if it is a record and probably some sort of record element ID
|
||||||
|
|
||||||
(*
|
(*
|
||||||
// MEMORY SAVING... could be 28 bytes per var?!?!
|
// MEMORY SAVING... could be 28 bytes per var?!?!
|
||||||
|
@ -265,11 +276,17 @@ Type
|
||||||
ArrDim : TArrayInfo;
|
ArrDim : TArrayInfo;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
TRecordElement = Record
|
||||||
|
ESize : Word;
|
||||||
|
Offset : Word;
|
||||||
|
End;
|
||||||
|
|
||||||
PRecordRec = ^TRecordRec;
|
PRecordRec = ^TRecordRec;
|
||||||
TRecordRec = Record
|
TRecordRec = Record
|
||||||
// RecID : Word; needed when Record variable type is added
|
RecID : Word;
|
||||||
RecStart : Word;
|
Fields : Word;
|
||||||
NumFields : Word;
|
DataSize : Word;
|
||||||
|
Element : Array[1..mplMaxRecFields] of TRecordElement;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
VarDataRec = Array[1..mplMaxVars] of PVarRec;
|
VarDataRec = Array[1..mplMaxVars] of PVarRec;
|
||||||
|
@ -285,6 +302,7 @@ Type
|
||||||
InProc : Boolean;
|
InProc : Boolean;
|
||||||
Proc : Boolean;
|
Proc : Boolean;
|
||||||
ArrPos : Byte;
|
ArrPos : Byte;
|
||||||
|
RecID : Word;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
PGotoRec = ^TGotoRec;
|
PGotoRec = ^TGotoRec;
|
||||||
|
|
Loading…
Reference in New Issue