Skip to content

Commit

Permalink
table: changed assign recreates to use equal code to get name
Browse files Browse the repository at this point in the history
removed '=' from name of assign code entries
updated expected test results for removal of '=' from assigns
  • Loading branch information
thunder422 committed Jan 17, 2015
1 parent c9c4dde commit 0c107e0
Show file tree
Hide file tree
Showing 20 changed files with 263 additions and 263 deletions.
2 changes: 1 addition & 1 deletion basic/let.cpp
Expand Up @@ -195,7 +195,7 @@ void assignRecreate(Recreator &recreator, RpnItemPtr &rpnItem)
std::stack<std::string> stack;

stack.emplace(recreator.popString()); // push value
std::string separator = ' ' + rpnItem->token()->name() + ' ';
std::string separator = ' ' + Table::entry(Eq_Code)->name() + ' ';
while (!recreator.empty())
{
stack.emplace(recreator.popString() + separator);
Expand Down
12 changes: 6 additions & 6 deletions table.cpp
Expand Up @@ -688,19 +688,19 @@ static TableEntry tableEntries[] =
//***************************
{ // Assign_Code
Type{},
"=", "Assign", "LET",
"", "Assign", "LET",
Reference_Flag | Command_Flag, 4, &Dbl_Dbl_ExprInfo,
NULL, NULL, NULL, NULL, assignRecreate
},
{ // AssignInt_Code
Type{},
"=", "Assign%", "LET",
"", "Assign%", "LET",
Reference_Flag | Command_Flag, 4, &Int_Int_ExprInfo,
NULL, NULL, NULL, NULL, assignRecreate
},
{ // AssignStr_Code
Type{},
"=", "Assign$", "LET",
"", "Assign$", "LET",
Reference_Flag | Command_Flag, 4, &Str_Str_ExprInfo,
NULL, NULL, NULL, NULL, assignStrRecreate
},
Expand Down Expand Up @@ -730,19 +730,19 @@ static TableEntry tableEntries[] =
},
{ // AssignList_Code
Type{},
"=", "AssignList", "LET",
"", "AssignList", "LET",
Reference_Flag | Command_Flag, 4, &Dbl_Dbl_ExprInfo,
NULL, NULL, NULL, NULL, assignRecreate
},
{ // AssignListInt_Code
Type{},
"=", "AssignList%", "LET",
"", "AssignList%", "LET",
Reference_Flag | Command_Flag, 4, &Int_Int_ExprInfo,
NULL, NULL, NULL, NULL, assignRecreate
},
{ // AssignListStr_Code
Type{},
"=", "AssignList$", "LET",
"", "AssignList$", "LET",
Reference_Flag | Command_Flag, 4, &Str_Str_ExprInfo,
NULL, NULL, NULL, NULL, assignRecreate
},
Expand Down
32 changes: 16 additions & 16 deletions test/encoder01.out
Expand Up @@ -3,19 +3,19 @@ Input: REM This is a sample program
Output: 0:REM 1:|0: This is a sample program|

Input: A=5
Output: 0:VarRef 1:|0:A| 2:Const 3:|0:5| 4:=Assign
Output: 0:VarRef 1:|0:A| 2:Const 3:|0:5| 4:Assign

Input: PRINT A
Output: 0:Var 1:|0:A| 2:PrintDbl 3:PRINT

Input: B%=6:REM comment
Output: 0:VarRefInt 1:|0:B%| 2:ConstInt 3:|1:6| 4:=Assign%':' 5:REM 6:|1: comment|
Output: 0:VarRefInt 1:|0:B%| 2:ConstInt 3:|1:6| 4:Assign%':' 5:REM 6:|1: comment|

Input: PRINT B%
Output: 0:VarInt 1:|0:B%| 2:PrintInt 3:PRINT

Input: C$="Test"
Output: 0:VarRefStr 1:|0:C$| 2:ConstStr 3:|0:Test| 4:=Assign$
Output: 0:VarRefStr 1:|0:C$| 2:ConstStr 3:|0:Test| 4:Assign$

Input: PRINT C$' not much to see here
Output: 0:VarStr 1:|0:C$| 2:PrintStr 3:PRINT 4:' 5:|2: not much to see here|
Expand All @@ -24,19 +24,19 @@ Input:
Output:

Input: INPUT PROMPT "Enter:";D%:LET E=SQR(D%):PRINT D%,E' comment
Output: 0:ConstStr 1:|1:Enter:| 2:InputParseInt 3:InputBeginStr 4:VarRefInt 5:|1:D%| 6:InputAssignInt 7:INPUTPROMPT':' 8:VarRef 9:|1:E| 10:VarInt 11:|1:D%| 12:CvtDbl 13:SQR( 14:=Assign'LET:' 15:VarInt 16:|1:D%| 17:PrintInt 18:, 19:Var 20:|1:E| 21:PrintDbl 22:PRINT 23:' 24:|1: comment|
Output: 0:ConstStr 1:|1:Enter:| 2:InputParseInt 3:InputBeginStr 4:VarRefInt 5:|1:D%| 6:InputAssignInt 7:INPUTPROMPT':' 8:VarRef 9:|1:E| 10:VarInt 11:|1:D%| 12:CvtDbl 13:SQR( 14:Assign'LET:' 15:VarInt 16:|1:D%| 17:PrintInt 18:, 19:Var 20:|1:E| 21:PrintDbl 22:PRINT 23:' 24:|1: comment|

Input:
Output:

Input: A=A+B+C
Output: 0:VarRef 1:|0:A| 2:Var 3:|0:A| 4:Var 5:|2:B| 6:+ 7:Var 8:|3:C| 9:+ 10:=Assign
Output: 0:VarRef 1:|0:A| 2:Var 3:|0:A| 4:Var 5:|2:B| 6:+ 7:Var 8:|3:C| 9:+ 10:Assign

Input: PRINT A,B,C
Output: 0:Var 1:|0:A| 2:PrintDbl 3:, 4:Var 5:|2:B| 6:PrintDbl 7:, 8:Var 9:|3:C| 10:PrintDbl 11:PRINT

Input: A$="Test"+CHR$(B%+48)
Output: 0:VarRefStr 1:|1:A$| 2:ConstStr 3:|0:Test| 4:VarInt 5:|0:B%| 6:ConstInt 7:|2:48| 8:+% 9:CHR$( 10:+$ 11:=Assign$
Output: 0:VarRefStr 1:|1:A$| 2:ConstStr 3:|0:Test| 4:VarInt 5:|0:B%| 6:ConstInt 7:|2:48| 8:+% 9:CHR$( 10:+$ 11:Assign$

Input: PRINT B%;A$
Output: 0:VarInt 1:|0:B%| 2:PrintInt 3:VarStr 4:|1:A$| 5:PrintStr 6:PRINT
Expand All @@ -48,13 +48,13 @@ Input: 'reuse some constants, have some new constants
Output: 0:' 1:|3:reuse some constants, have some new constants|

Input: C%=B%+6
Output: 0:VarRefInt 1:|2:C%| 2:VarInt 3:|0:B%| 4:ConstInt 5:|1:6| 6:+% 7:=Assign%
Output: 0:VarRefInt 1:|2:C%| 2:VarInt 3:|0:B%| 4:ConstInt 5:|1:6| 6:+% 7:Assign%

Input: rem reuse previous double constant as double
Output: 0:REM 1:|4: reuse previous double constant as double|

Input: D%=C%+5
Output: 0:VarRefInt 1:|1:D%| 2:VarInt 3:|2:C%| 4:ConstInt 5:|0:5| 6:+% 7:=Assign%
Output: 0:VarRefInt 1:|1:D%| 2:VarInt 3:|2:C%| 4:ConstInt 5:|0:5| 6:+% 7:Assign%

Input: 'same constant but as string; should be separate string constant
Output: 0:' 1:|5:same constant but as string; should be separate string constant|
Expand All @@ -67,24 +67,24 @@ Output: 0:ConstStr 1:|3:Quote"Test| 2:PrintStr 3:PRINT

Program:
0: [0-1] 0:REM 1:|0: This is a sample program|
1: [2-6] 0:VarRef 1:|0:A| 2:Const 3:|0:5| 4:=Assign
1: [2-6] 0:VarRef 1:|0:A| 2:Const 3:|0:5| 4:Assign
2: [7-10] 0:Var 1:|0:A| 2:PrintDbl 3:PRINT
3: [11-17] 0:VarRefInt 1:|0:B%| 2:ConstInt 3:|1:6| 4:=Assign%':' 5:REM 6:|1: comment|
3: [11-17] 0:VarRefInt 1:|0:B%| 2:ConstInt 3:|1:6| 4:Assign%':' 5:REM 6:|1: comment|
4: [18-21] 0:VarInt 1:|0:B%| 2:PrintInt 3:PRINT
5: [22-26] 0:VarRefStr 1:|0:C$| 2:ConstStr 3:|0:Test| 4:=Assign$
5: [22-26] 0:VarRefStr 1:|0:C$| 2:ConstStr 3:|0:Test| 4:Assign$
6: [27-32] 0:VarStr 1:|0:C$| 2:PrintStr 3:PRINT 4:' 5:|2: not much to see here|
7: [33]
8: [33-57] 0:ConstStr 1:|1:Enter:| 2:InputParseInt 3:InputBeginStr 4:VarRefInt 5:|1:D%| 6:InputAssignInt 7:INPUTPROMPT':' 8:VarRef 9:|1:E| 10:VarInt 11:|1:D%| 12:CvtDbl 13:SQR( 14:=Assign'LET:' 15:VarInt 16:|1:D%| 17:PrintInt 18:, 19:Var 20:|1:E| 21:PrintDbl 22:PRINT 23:' 24:|1: comment|
8: [33-57] 0:ConstStr 1:|1:Enter:| 2:InputParseInt 3:InputBeginStr 4:VarRefInt 5:|1:D%| 6:InputAssignInt 7:INPUTPROMPT':' 8:VarRef 9:|1:E| 10:VarInt 11:|1:D%| 12:CvtDbl 13:SQR( 14:Assign'LET:' 15:VarInt 16:|1:D%| 17:PrintInt 18:, 19:Var 20:|1:E| 21:PrintDbl 22:PRINT 23:' 24:|1: comment|
9: [58]
10: [58-68] 0:VarRef 1:|0:A| 2:Var 3:|0:A| 4:Var 5:|2:B| 6:+ 7:Var 8:|3:C| 9:+ 10:=Assign
10: [58-68] 0:VarRef 1:|0:A| 2:Var 3:|0:A| 4:Var 5:|2:B| 6:+ 7:Var 8:|3:C| 9:+ 10:Assign
11: [69-80] 0:Var 1:|0:A| 2:PrintDbl 3:, 4:Var 5:|2:B| 6:PrintDbl 7:, 8:Var 9:|3:C| 10:PrintDbl 11:PRINT
12: [81-92] 0:VarRefStr 1:|1:A$| 2:ConstStr 3:|0:Test| 4:VarInt 5:|0:B%| 6:ConstInt 7:|2:48| 8:+% 9:CHR$( 10:+$ 11:=Assign$
12: [81-92] 0:VarRefStr 1:|1:A$| 2:ConstStr 3:|0:Test| 4:VarInt 5:|0:B%| 6:ConstInt 7:|2:48| 8:+% 9:CHR$( 10:+$ 11:Assign$
13: [93-99] 0:VarInt 1:|0:B%| 2:PrintInt 3:VarStr 4:|1:A$| 5:PrintStr 6:PRINT
14: [100]
15: [100-101] 0:' 1:|3:reuse some constants, have some new constants|
16: [102-109] 0:VarRefInt 1:|2:C%| 2:VarInt 3:|0:B%| 4:ConstInt 5:|1:6| 6:+% 7:=Assign%
16: [102-109] 0:VarRefInt 1:|2:C%| 2:VarInt 3:|0:B%| 4:ConstInt 5:|1:6| 6:+% 7:Assign%
17: [110-111] 0:REM 1:|4: reuse previous double constant as double|
18: [112-119] 0:VarRefInt 1:|1:D%| 2:VarInt 3:|2:C%| 4:ConstInt 5:|0:5| 6:+% 7:=Assign%
18: [112-119] 0:VarRefInt 1:|1:D%| 2:VarInt 3:|2:C%| 4:ConstInt 5:|0:5| 6:+% 7:Assign%
19: [120-121] 0:' 1:|5:same constant but as string; should be separate string constant|
20: [122-133] 0:ConstStr 1:|0:Test| 2:PrintStr 3:, 4:VarInt 5:|2:C%| 6:PrintInt 7:, 8:ConstStr 9:|2:5| 10:PrintStr 11:PRINT
21: [134-137] 0:ConstStr 1:|3:Quote"Test| 2:PrintStr 3:PRINT
Expand Down
32 changes: 16 additions & 16 deletions test/encoder01.txt
Expand Up @@ -3,19 +3,19 @@ Input: REM This is a sample program
Output: 0:REM 1:|0: This is a sample program|

Input: A=5
Output: 0:VarRef 1:|0:A| 2:Const 3:|0:5| 4:=Assign
Output: 0:VarRef 1:|0:A| 2:Const 3:|0:5| 4:Assign

Input: PRINT A
Output: 0:Var 1:|0:A| 2:PrintDbl 3:PRINT

Input: B%=6:REM comment
Output: 0:VarRefInt 1:|0:B%| 2:ConstInt 3:|1:6| 4:=Assign%':' 5:REM 6:|1: comment|
Output: 0:VarRefInt 1:|0:B%| 2:ConstInt 3:|1:6| 4:Assign%':' 5:REM 6:|1: comment|

Input: PRINT B%
Output: 0:VarInt 1:|0:B%| 2:PrintInt 3:PRINT

Input: C$="Test"
Output: 0:VarRefStr 1:|0:C$| 2:ConstStr 3:|0:Test| 4:=Assign$
Output: 0:VarRefStr 1:|0:C$| 2:ConstStr 3:|0:Test| 4:Assign$

Input: PRINT C$' not much to see here
Output: 0:VarStr 1:|0:C$| 2:PrintStr 3:PRINT 4:' 5:|2: not much to see here|
Expand All @@ -24,19 +24,19 @@ Input:
Output:

Input: INPUT PROMPT "Enter:";D%:LET E=SQR(D%):PRINT D%,E' comment
Output: 0:ConstStr 1:|1:Enter:| 2:InputParseInt 3:InputBeginStr 4:VarRefInt 5:|1:D%| 6:InputAssignInt 7:INPUTPROMPT':' 8:VarRef 9:|1:E| 10:VarInt 11:|1:D%| 12:CvtDbl 13:SQR( 14:=Assign'LET:' 15:VarInt 16:|1:D%| 17:PrintInt 18:, 19:Var 20:|1:E| 21:PrintDbl 22:PRINT 23:' 24:|1: comment|
Output: 0:ConstStr 1:|1:Enter:| 2:InputParseInt 3:InputBeginStr 4:VarRefInt 5:|1:D%| 6:InputAssignInt 7:INPUTPROMPT':' 8:VarRef 9:|1:E| 10:VarInt 11:|1:D%| 12:CvtDbl 13:SQR( 14:Assign'LET:' 15:VarInt 16:|1:D%| 17:PrintInt 18:, 19:Var 20:|1:E| 21:PrintDbl 22:PRINT 23:' 24:|1: comment|

Input:
Output:

Input: A=A+B+C
Output: 0:VarRef 1:|0:A| 2:Var 3:|0:A| 4:Var 5:|2:B| 6:+ 7:Var 8:|3:C| 9:+ 10:=Assign
Output: 0:VarRef 1:|0:A| 2:Var 3:|0:A| 4:Var 5:|2:B| 6:+ 7:Var 8:|3:C| 9:+ 10:Assign

Input: PRINT A,B,C
Output: 0:Var 1:|0:A| 2:PrintDbl 3:, 4:Var 5:|2:B| 6:PrintDbl 7:, 8:Var 9:|3:C| 10:PrintDbl 11:PRINT

Input: A$="Test"+CHR$(B%+48)
Output: 0:VarRefStr 1:|1:A$| 2:ConstStr 3:|0:Test| 4:VarInt 5:|0:B%| 6:ConstInt 7:|2:48| 8:+% 9:CHR$( 10:+$ 11:=Assign$
Output: 0:VarRefStr 1:|1:A$| 2:ConstStr 3:|0:Test| 4:VarInt 5:|0:B%| 6:ConstInt 7:|2:48| 8:+% 9:CHR$( 10:+$ 11:Assign$

Input: PRINT B%;A$
Output: 0:VarInt 1:|0:B%| 2:PrintInt 3:VarStr 4:|1:A$| 5:PrintStr 6:PRINT
Expand All @@ -48,13 +48,13 @@ Input: 'reuse some constants, have some new constants
Output: 0:' 1:|3:reuse some constants, have some new constants|

Input: C%=B%+6
Output: 0:VarRefInt 1:|2:C%| 2:VarInt 3:|0:B%| 4:ConstInt 5:|1:6| 6:+% 7:=Assign%
Output: 0:VarRefInt 1:|2:C%| 2:VarInt 3:|0:B%| 4:ConstInt 5:|1:6| 6:+% 7:Assign%

Input: rem reuse previous double constant as double
Output: 0:REM 1:|4: reuse previous double constant as double|

Input: D%=C%+5
Output: 0:VarRefInt 1:|1:D%| 2:VarInt 3:|2:C%| 4:ConstInt 5:|0:5| 6:+% 7:=Assign%
Output: 0:VarRefInt 1:|1:D%| 2:VarInt 3:|2:C%| 4:ConstInt 5:|0:5| 6:+% 7:Assign%

Input: 'same constant but as string; should be separate string constant
Output: 0:' 1:|5:same constant but as string; should be separate string constant|
Expand All @@ -67,24 +67,24 @@ Output: 0:ConstStr 1:|3:Quote"Test| 2:PrintStr 3:PRINT

Program:
0: [0-1] 0:REM 1:|0: This is a sample program|
1: [2-6] 0:VarRef 1:|0:A| 2:Const 3:|0:5| 4:=Assign
1: [2-6] 0:VarRef 1:|0:A| 2:Const 3:|0:5| 4:Assign
2: [7-10] 0:Var 1:|0:A| 2:PrintDbl 3:PRINT
3: [11-17] 0:VarRefInt 1:|0:B%| 2:ConstInt 3:|1:6| 4:=Assign%':' 5:REM 6:|1: comment|
3: [11-17] 0:VarRefInt 1:|0:B%| 2:ConstInt 3:|1:6| 4:Assign%':' 5:REM 6:|1: comment|
4: [18-21] 0:VarInt 1:|0:B%| 2:PrintInt 3:PRINT
5: [22-26] 0:VarRefStr 1:|0:C$| 2:ConstStr 3:|0:Test| 4:=Assign$
5: [22-26] 0:VarRefStr 1:|0:C$| 2:ConstStr 3:|0:Test| 4:Assign$
6: [27-32] 0:VarStr 1:|0:C$| 2:PrintStr 3:PRINT 4:' 5:|2: not much to see here|
7: [33]
8: [33-57] 0:ConstStr 1:|1:Enter:| 2:InputParseInt 3:InputBeginStr 4:VarRefInt 5:|1:D%| 6:InputAssignInt 7:INPUTPROMPT':' 8:VarRef 9:|1:E| 10:VarInt 11:|1:D%| 12:CvtDbl 13:SQR( 14:=Assign'LET:' 15:VarInt 16:|1:D%| 17:PrintInt 18:, 19:Var 20:|1:E| 21:PrintDbl 22:PRINT 23:' 24:|1: comment|
8: [33-57] 0:ConstStr 1:|1:Enter:| 2:InputParseInt 3:InputBeginStr 4:VarRefInt 5:|1:D%| 6:InputAssignInt 7:INPUTPROMPT':' 8:VarRef 9:|1:E| 10:VarInt 11:|1:D%| 12:CvtDbl 13:SQR( 14:Assign'LET:' 15:VarInt 16:|1:D%| 17:PrintInt 18:, 19:Var 20:|1:E| 21:PrintDbl 22:PRINT 23:' 24:|1: comment|
9: [58]
10: [58-68] 0:VarRef 1:|0:A| 2:Var 3:|0:A| 4:Var 5:|2:B| 6:+ 7:Var 8:|3:C| 9:+ 10:=Assign
10: [58-68] 0:VarRef 1:|0:A| 2:Var 3:|0:A| 4:Var 5:|2:B| 6:+ 7:Var 8:|3:C| 9:+ 10:Assign
11: [69-80] 0:Var 1:|0:A| 2:PrintDbl 3:, 4:Var 5:|2:B| 6:PrintDbl 7:, 8:Var 9:|3:C| 10:PrintDbl 11:PRINT
12: [81-92] 0:VarRefStr 1:|1:A$| 2:ConstStr 3:|0:Test| 4:VarInt 5:|0:B%| 6:ConstInt 7:|2:48| 8:+% 9:CHR$( 10:+$ 11:=Assign$
12: [81-92] 0:VarRefStr 1:|1:A$| 2:ConstStr 3:|0:Test| 4:VarInt 5:|0:B%| 6:ConstInt 7:|2:48| 8:+% 9:CHR$( 10:+$ 11:Assign$
13: [93-99] 0:VarInt 1:|0:B%| 2:PrintInt 3:VarStr 4:|1:A$| 5:PrintStr 6:PRINT
14: [100]
15: [100-101] 0:' 1:|3:reuse some constants, have some new constants|
16: [102-109] 0:VarRefInt 1:|2:C%| 2:VarInt 3:|0:B%| 4:ConstInt 5:|1:6| 6:+% 7:=Assign%
16: [102-109] 0:VarRefInt 1:|2:C%| 2:VarInt 3:|0:B%| 4:ConstInt 5:|1:6| 6:+% 7:Assign%
17: [110-111] 0:REM 1:|4: reuse previous double constant as double|
18: [112-119] 0:VarRefInt 1:|1:D%| 2:VarInt 3:|2:C%| 4:ConstInt 5:|0:5| 6:+% 7:=Assign%
18: [112-119] 0:VarRefInt 1:|1:D%| 2:VarInt 3:|2:C%| 4:ConstInt 5:|0:5| 6:+% 7:Assign%
19: [120-121] 0:' 1:|5:same constant but as string; should be separate string constant|
20: [122-133] 0:ConstStr 1:|0:Test| 2:PrintStr 3:, 4:VarInt 5:|2:C%| 6:PrintInt 7:, 8:ConstStr 9:|2:5| 10:PrintStr 11:PRINT
21: [134-137] 0:ConstStr 1:|3:Quote"Test| 2:PrintStr 3:PRINT
Expand Down
16 changes: 8 additions & 8 deletions test/encoder02.out
Expand Up @@ -4,24 +4,24 @@ Input: LET'error!

Program:
0: [0-1] 0:REM 1:|0: This is a sample program|
1: [2-6] 0:VarRef 1:|0:A| 2:Const 3:|0:5| 4:=Assign
1: [2-6] 0:VarRef 1:|0:A| 2:Const 3:|0:5| 4:Assign
2: [7-10] 0:Var 1:|0:A| 2:PrintDbl 3:PRINT
3: [11-21] 0:VarRefInt 1:|0:B%| 2:Var 3:|0:A| 4:Const 5:|1:6| 6:+ 7:CvtInt 8:=Assign%':' 9:REM 10:|6: replaced with larger line|
3: [11-21] 0:VarRefInt 1:|0:B%| 2:Var 3:|0:A| 4:Const 5:|1:6| 6:+ 7:CvtInt 8:Assign%':' 9:REM 10:|6: replaced with larger line|
4: [22-25] 0:VarInt 1:|0:B%| 2:PrintInt 3:PRINT
5: [26-31] 0:VarRefStr 1:|2:D$| 2:VarInt 3:|0:B%| 4:STR$(% 5:=Assign$
5: [26-31] 0:VarRefStr 1:|2:D$| 2:VarInt 3:|0:B%| 4:STR$(% 5:Assign$
6: [32]
7: [32-37] 0:VarStr 1:|2:D$| 2:PrintStr 3:PRINT 4:' 5:|2: something useful|
8: [38-62] 0:ConstStr 1:|1:Enter:| 2:InputParseInt 3:InputBeginStr 4:VarRefInt 5:|3:N%| 6:InputAssignInt 7:INPUTPROMPT':' 8:VarRef 9:|1:E| 10:VarInt 11:|3:N%| 12:CvtDbl 13:SQR( 14:=Assign'LET:' 15:VarInt 16:|3:N%| 17:PrintInt 18:, 19:Var 20:|1:E| 21:PrintDbl 22:PRINT 23:' 24:|1: replaced with same size line|
8: [38-62] 0:ConstStr 1:|1:Enter:| 2:InputParseInt 3:InputBeginStr 4:VarRefInt 5:|3:N%| 6:InputAssignInt 7:INPUTPROMPT':' 8:VarRef 9:|1:E| 10:VarInt 11:|3:N%| 12:CvtDbl 13:SQR( 14:Assign'LET:' 15:VarInt 16:|3:N%| 17:PrintInt 18:, 19:Var 20:|1:E| 21:PrintDbl 22:PRINT 23:' 24:|1: replaced with same size line|
9: [63]
10: [63-73] 0:VarRefStr 1:|1:A$| 2:VarInt 3:|0:B%| 4:ConstInt 5:|2:48| 6:+% 7:CHR$( 8:=Assign$ 9:' 10:|7: replaced with smaller line|
10: [63-73] 0:VarRefStr 1:|1:A$| 2:VarInt 3:|0:B%| 4:ConstInt 5:|2:48| 6:+% 7:CHR$( 8:Assign$ 9:' 10:|7: replaced with smaller line|
11: [74-85] 0:Var 1:|0:A| 2:PrintDbl 3:, 4:Var 5:|2:B| 6:PrintDbl 7:, 8:Var 9:|3:C| 10:PrintDbl 11:PRINT
12: [86-97] 0:VarRefStr 1:|1:A$| 2:ConstStr 3:|0:Test| 4:VarInt 5:|0:B%| 6:ConstInt 7:|2:48| 8:+% 9:CHR$( 10:+$ 11:=Assign$
12: [86-97] 0:VarRefStr 1:|1:A$| 2:ConstStr 3:|0:Test| 4:VarInt 5:|0:B%| 6:ConstInt 7:|2:48| 8:+% 9:CHR$( 10:+$ 11:Assign$
13: [98-104] 0:VarInt 1:|0:B%| 2:PrintInt 3:VarStr 4:|1:A$| 5:PrintStr 6:PRINT
14: [105-105] 0:PRINT
15: [106-107] 0:' 1:|3:reuse some constants, have some new constants|
16: [108-115] 0:VarRefInt 1:|2:C%| 2:VarInt 3:|0:B%| 4:ConstInt 5:|1:6| 6:+% 7:=Assign%
16: [108-115] 0:VarRefInt 1:|2:C%| 2:VarInt 3:|0:B%| 4:ConstInt 5:|1:6| 6:+% 7:Assign%
17: [116-117] 0:REM 1:|4: reuse previous double constant as double|
18: [118-125] 0:VarRefInt 1:|1:D%| 2:VarInt 3:|2:C%| 4:ConstInt 5:|0:5| 6:+% 7:=Assign%
18: [118-125] 0:VarRefInt 1:|1:D%| 2:VarInt 3:|2:C%| 4:ConstInt 5:|0:5| 6:+% 7:Assign%
19: [126] ERROR 3:1 expected item for assignment
20: [126-137] 0:ConstStr 1:|0:Test| 2:PrintStr 3:, 4:VarInt 5:|2:C%| 6:PrintInt 7:, 8:ConstStr 9:|2:5| 10:PrintStr 11:PRINT
21: [138-146] 0:ConstStr 1:|3:Quote"Test| 2:PrintStr 3:VarInt 4:|1:D%| 5:PrintInt 6:PRINT 7:' 8:|8: replace last line with larger line|
Expand Down
16 changes: 8 additions & 8 deletions test/encoder02.txt
Expand Up @@ -4,24 +4,24 @@ Input: LET'error!

Program:
0: [0-1] 0:REM 1:|0: This is a sample program|
1: [2-6] 0:VarRef 1:|0:A| 2:Const 3:|0:5| 4:=Assign
1: [2-6] 0:VarRef 1:|0:A| 2:Const 3:|0:5| 4:Assign
2: [7-10] 0:Var 1:|0:A| 2:PrintDbl 3:PRINT
3: [11-21] 0:VarRefInt 1:|0:B%| 2:Var 3:|0:A| 4:Const 5:|1:6| 6:+ 7:CvtInt 8:=Assign%':' 9:REM 10:|6: replaced with larger line|
3: [11-21] 0:VarRefInt 1:|0:B%| 2:Var 3:|0:A| 4:Const 5:|1:6| 6:+ 7:CvtInt 8:Assign%':' 9:REM 10:|6: replaced with larger line|
4: [22-25] 0:VarInt 1:|0:B%| 2:PrintInt 3:PRINT
5: [26-31] 0:VarRefStr 1:|2:D$| 2:VarInt 3:|0:B%| 4:STR$(% 5:=Assign$
5: [26-31] 0:VarRefStr 1:|2:D$| 2:VarInt 3:|0:B%| 4:STR$(% 5:Assign$
6: [32]
7: [32-37] 0:VarStr 1:|2:D$| 2:PrintStr 3:PRINT 4:' 5:|2: something useful|
8: [38-62] 0:ConstStr 1:|1:Enter:| 2:InputParseInt 3:InputBeginStr 4:VarRefInt 5:|3:N%| 6:InputAssignInt 7:INPUTPROMPT':' 8:VarRef 9:|1:E| 10:VarInt 11:|3:N%| 12:CvtDbl 13:SQR( 14:=Assign'LET:' 15:VarInt 16:|3:N%| 17:PrintInt 18:, 19:Var 20:|1:E| 21:PrintDbl 22:PRINT 23:' 24:|1: replaced with same size line|
8: [38-62] 0:ConstStr 1:|1:Enter:| 2:InputParseInt 3:InputBeginStr 4:VarRefInt 5:|3:N%| 6:InputAssignInt 7:INPUTPROMPT':' 8:VarRef 9:|1:E| 10:VarInt 11:|3:N%| 12:CvtDbl 13:SQR( 14:Assign'LET:' 15:VarInt 16:|3:N%| 17:PrintInt 18:, 19:Var 20:|1:E| 21:PrintDbl 22:PRINT 23:' 24:|1: replaced with same size line|
9: [63]
10: [63-73] 0:VarRefStr 1:|1:A$| 2:VarInt 3:|0:B%| 4:ConstInt 5:|2:48| 6:+% 7:CHR$( 8:=Assign$ 9:' 10:|7: replaced with smaller line|
10: [63-73] 0:VarRefStr 1:|1:A$| 2:VarInt 3:|0:B%| 4:ConstInt 5:|2:48| 6:+% 7:CHR$( 8:Assign$ 9:' 10:|7: replaced with smaller line|
11: [74-85] 0:Var 1:|0:A| 2:PrintDbl 3:, 4:Var 5:|2:B| 6:PrintDbl 7:, 8:Var 9:|3:C| 10:PrintDbl 11:PRINT
12: [86-97] 0:VarRefStr 1:|1:A$| 2:ConstStr 3:|0:Test| 4:VarInt 5:|0:B%| 6:ConstInt 7:|2:48| 8:+% 9:CHR$( 10:+$ 11:=Assign$
12: [86-97] 0:VarRefStr 1:|1:A$| 2:ConstStr 3:|0:Test| 4:VarInt 5:|0:B%| 6:ConstInt 7:|2:48| 8:+% 9:CHR$( 10:+$ 11:Assign$
13: [98-104] 0:VarInt 1:|0:B%| 2:PrintInt 3:VarStr 4:|1:A$| 5:PrintStr 6:PRINT
14: [105-105] 0:PRINT
15: [106-107] 0:' 1:|3:reuse some constants, have some new constants|
16: [108-115] 0:VarRefInt 1:|2:C%| 2:VarInt 3:|0:B%| 4:ConstInt 5:|1:6| 6:+% 7:=Assign%
16: [108-115] 0:VarRefInt 1:|2:C%| 2:VarInt 3:|0:B%| 4:ConstInt 5:|1:6| 6:+% 7:Assign%
17: [116-117] 0:REM 1:|4: reuse previous double constant as double|
18: [118-125] 0:VarRefInt 1:|1:D%| 2:VarInt 3:|2:C%| 4:ConstInt 5:|0:5| 6:+% 7:=Assign%
18: [118-125] 0:VarRefInt 1:|1:D%| 2:VarInt 3:|2:C%| 4:ConstInt 5:|0:5| 6:+% 7:Assign%
19: [126] ERROR 3:1 expected item for assignment
20: [126-137] 0:ConstStr 1:|0:Test| 2:PrintStr 3:, 4:VarInt 5:|2:C%| 6:PrintInt 7:, 8:ConstStr 9:|2:5| 10:PrintStr 11:PRINT
21: [138-146] 0:ConstStr 1:|3:Quote"Test| 2:PrintStr 3:VarInt 4:|1:D%| 5:PrintInt 6:PRINT 7:' 8:|8: replace last line with larger line|
Expand Down
14 changes: 7 additions & 7 deletions test/encoder03.out
@@ -1,15 +1,15 @@

Program:
0: [0-4] 0:VarRefInt 1:|0:Var%| 2:ConstInt 3:|0:4| 4:=Assign%
1: [5-12] 0:VarRefInt 1:|0:Var%| 2:VarInt 3:|0:Var%| 4:ConstInt 5:|1:1| 6:+% 7:=Assign%
0: [0-4] 0:VarRefInt 1:|0:Var%| 2:ConstInt 3:|0:4| 4:Assign%
1: [5-12] 0:VarRefInt 1:|0:Var%| 2:VarInt 3:|0:Var%| 4:ConstInt 5:|1:1| 6:+% 7:Assign%
2: [13-14] 0:REM 1:|0: comment|
3: [15-16] 0:REM 1:|1: Comment|
4: [17-18] 0:REM 1:|2: COMMENT|
5: [19-23] 0:VarRefStr 1:|0:Var$| 2:ConstStr 3:|0:Test| 4:=Assign$
6: [24-28] 0:VarRefStr 1:|0:Var$| 2:ConstStr 3:|1:TEST| 4:=Assign$
7: [29-33] 0:VarRefStr 1:|0:Var$| 2:ConstStr 3:|2:test| 4:=Assign$
8: [34-41] 0:VarRef 1:|0:Var| 2:Const 3:|2:1.23e45| 4:Const 5:|3:9.87E-4| 6:/ 7:=Assign
9: [42-52] 0:VarRef 1:|0:Var| 2:Var 3:|0:Var| 4:Const 5:|2:1.23e45| 6:* 7:Const 8:|3:9.87E-4| 9:/ 10:=Assign
5: [19-23] 0:VarRefStr 1:|0:Var$| 2:ConstStr 3:|0:Test| 4:Assign$
6: [24-28] 0:VarRefStr 1:|0:Var$| 2:ConstStr 3:|1:TEST| 4:Assign$
7: [29-33] 0:VarRefStr 1:|0:Var$| 2:ConstStr 3:|2:test| 4:Assign$
8: [34-41] 0:VarRef 1:|0:Var| 2:Const 3:|2:1.23e45| 4:Const 5:|3:9.87E-4| 6:/ 7:Assign
9: [42-52] 0:VarRef 1:|0:Var| 2:Var 3:|0:Var| 4:Const 5:|2:1.23e45| 6:* 7:Const 8:|3:9.87E-4| 9:/ 10:Assign

Remarks:
0: 1 | comment|
Expand Down

0 comments on commit 0c107e0

Please sign in to comment.