Tcl Library Source Code

Changes On Branch tkt-4a4e443ce9-pt-oo-fail-fix
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch tkt-4a4e443ce9-pt-oo-fail-fix Excluding Merge-Ins

This is equivalent to a diff from 5c8a247da3 to 7b5c2a0853

2015-06-08
20:15
Ticket [4a4e443ce9]. Merge fix into main line. check-in: 06fb32c333 user: aku tags: trunk
20:14
Ticket [4a4e443ce9]. Merge fix into work on pt rdengine tracing. check-in: 4b9b73cc20 user: aku tags: tkt-4a4e443ce9-pt-oo-fail
20:13
pt::peg::to::tclparam - Fixed ticket [4a4e443ce9]. Corrected tclparam code generator mishandling of the ! (neg. lookahead) operator when calling on parsing expressions generating AST nodes. Version bump to 1.0.3. Updated output for the new test case added for debugging. Note how no other test case had to be changed, i.e. this was not covered by the tests. Thanks for the report. Fix is fork before tracing changes to allow separate testing that these work. Closed-Leaf check-in: 7b5c2a0853 user: aku tags: tkt-4a4e443ce9-pt-oo-fail-fix
2015-06-05
22:15
Replaced the homegrown narrative TRACEing of the snit rdengine with "debug" (and "debug::caller"). check-in: 923f8e15ff user: andreask tags: tkt-4a4e443ce9-pt-oo-fail
03:33
pt - Ticket [4a4e443ce9]. Completed testsuite, added all necessary files for the new testcase and grammar. Running it confirms that - peg interp is OK, - peg oo parser FAILS It further finds that the "peg snit parser" also fails, in the same manner. The critcl implementation however is OK. check-in: 5c8a247da3 user: aku tags: tkt-4a4e443ce9-pt-oo-fail
2015-06-04
21:14
pt - Ticket [4a4e443ce9]. Created investigation branch. Putting example into the testsuite. check-in: 9034b39a70 user: andreask tags: tkt-4a4e443ce9-pt-oo-fail

Changes to modules/pt/pkgIndex.tcl.

40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

# Export core functionality: Conversion from PEG to a specific format.
package ifneeded pt::peg::to::container     1 [list source [file join $dir pt_peg_to_container.tcl]]
package ifneeded pt::peg::to::cparam    1.1.3 [list source [file join $dir pt_peg_to_cparam.tcl]]
package ifneeded pt::peg::to::json          1 [list source [file join $dir pt_peg_to_json.tcl]]
package ifneeded pt::peg::to::param     1.0.1 [list source [file join $dir pt_peg_to_param.tcl]]
package ifneeded pt::peg::to::peg       1.0.2 [list source [file join $dir pt_peg_to_peg.tcl]]
package ifneeded pt::peg::to::tclparam  1.0.2 [list source [file join $dir pt_peg_to_tclparam.tcl]]

# Import core functionality: Conversion from a specific format to PEG.
package ifneeded pt::peg::from::json      1 [list source [file join $dir pt_peg_from_json.tcl]]
package ifneeded pt::peg::from::peg   1.0.3 [list source [file join $dir pt_peg_from_peg.tcl]]

# PARAM runtime.
package ifneeded pt::rde      1.0.3 [list source [file join $dir pt_rdengine.tcl]]







|







40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

# Export core functionality: Conversion from PEG to a specific format.
package ifneeded pt::peg::to::container     1 [list source [file join $dir pt_peg_to_container.tcl]]
package ifneeded pt::peg::to::cparam    1.1.3 [list source [file join $dir pt_peg_to_cparam.tcl]]
package ifneeded pt::peg::to::json          1 [list source [file join $dir pt_peg_to_json.tcl]]
package ifneeded pt::peg::to::param     1.0.1 [list source [file join $dir pt_peg_to_param.tcl]]
package ifneeded pt::peg::to::peg       1.0.2 [list source [file join $dir pt_peg_to_peg.tcl]]
package ifneeded pt::peg::to::tclparam  1.0.3 [list source [file join $dir pt_peg_to_tclparam.tcl]]

# Import core functionality: Conversion from a specific format to PEG.
package ifneeded pt::peg::from::json      1 [list source [file join $dir pt_peg_from_json.tcl]]
package ifneeded pt::peg::from::peg   1.0.3 [list source [file join $dir pt_peg_from_peg.tcl]]

# PARAM runtime.
package ifneeded pt::rde      1.0.3 [list source [file join $dir pt_rdengine.tcl]]

Changes to modules/pt/pt_peg_to_tclparam.man.

1
2
3
4
5
6
7
[comment {--- doctools ---}]
[vset PACKAGE tclparam]
[vset NAME    TCLPARAM]
[vset REQUIRE tclparam]
[vset CONFIG  tclparam]
[vset VERSION 1.0.1]
[include include/export/to.inc]





|

1
2
3
4
5
6
7
[comment {--- doctools ---}]
[vset PACKAGE tclparam]
[vset NAME    TCLPARAM]
[vset REQUIRE tclparam]
[vset CONFIG  tclparam]
[vset VERSION 1.0.3]
[include include/export/to.inc]

Changes to modules/pt/pt_peg_to_tclparam.tcl.

577
578
579
580
581
582
583
584
585
586
587
588
589
590
591

	    Asm::Call $expression

	    #Asm::Ins i_ast_pop_discard/rewind
	    #Asm::Ins i_loc_pop_rewind
	    #Asm::Ins i_status_negate

	    Asm::Ins si:void_notahead_exit
	} $expression
    } else {
	Asm::Function [Asm::NewBlock notahead] {
	    # The sub-expression cannot generate AST elements. We can
	    # ignore AS/ARS, simplifying the code.

	    Asm::Ins i_loc_push







|







577
578
579
580
581
582
583
584
585
586
587
588
589
590
591

	    Asm::Call $expression

	    #Asm::Ins i_ast_pop_discard/rewind
	    #Asm::Ins i_loc_pop_rewind
	    #Asm::Ins i_status_negate

	    Asm::Ins si:value_notahead_exit
	} $expression
    } else {
	Asm::Function [Asm::NewBlock notahead] {
	    # The sub-expression cannot generate AST elements. We can
	    # ignore AS/ARS, simplifying the code.

	    Asm::Ins i_loc_push
1265
1266
1267
1268
1269
1270
1271
1272
1273
				     # which behalf the conversion has
				     # been invoked.
}

# ### ### ### ######### ######### #########
## Ready

package provide pt::peg::to::tclparam 1.0.2
return







|

1265
1266
1267
1268
1269
1270
1271
1272
1273
				     # which behalf the conversion has
				     # been invoked.
}

# ### ### ### ######### ######### #########
## Ready

package provide pt::peg::to::tclparam 1.0.3
return

Changes to modules/pt/tests/data/ok/peg_tclparam-snit/27_ticket_4a4e443ce9.

220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
    
    proc notahead_15 {} { upvar 1 myparser myparser
        # !
        #     (X)
    
        $myparser si:value_notahead_start
        sym_X
        $myparser si:void_notahead_exit
        return
    }
    
    proc optional_23 {} { upvar 1 myparser myparser
        # ?
        #     (X)
    







|







220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
    
    proc notahead_15 {} { upvar 1 myparser myparser
        # !
        #     (X)
    
        $myparser si:value_notahead_start
        sym_X
        $myparser si:value_notahead_exit
        return
    }
    
    proc optional_23 {} { upvar 1 myparser myparser
        # ?
        #     (X)
    

Changes to modules/pt/tests/data/ok/peg_tclparam-tcloo/27_ticket_4a4e443ce9.

206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
    
    method notahead_15 {} {
        # !
        #     (X)
    
        my si:value_notahead_start
        my sym_X
        my si:void_notahead_exit
        return
    }
    
    method optional_23 {} {
        # ?
        #     (X)
    







|







206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
    
    method notahead_15 {} {
        # !
        #     (X)
    
        my si:value_notahead_start
        my sym_X
        my si:value_notahead_exit
        return
    }
    
    method optional_23 {} {
        # ?
        #     (X)
    

Changes to modules/pt/tests/data/ok/peg_tclparam/27_ticket_4a4e443ce9.

163
164
165
166
167
168
169
170
171
172
173
174
175
176
177

<<def>> <<ns>>notahead_15 {} {
    # !
    #     (X)

    <<runtime>> si:value_notahead_start
    <<self>> sym_X
    <<runtime>> si:void_notahead_exit
    return
}

<<def>> <<ns>>optional_23 {} {
    # ?
    #     (X)








|







163
164
165
166
167
168
169
170
171
172
173
174
175
176
177

<<def>> <<ns>>notahead_15 {} {
    # !
    #     (X)

    <<runtime>> si:value_notahead_start
    <<self>> sym_X
    <<runtime>> si:value_notahead_exit
    return
}

<<def>> <<ns>>optional_23 {} {
    # ?
    #     (X)