diff options
| -rw-r--r-- | gcc/ChangeLog.melt | 2 | ||||
| -rw-r--r-- | gcc/melt/warmelt-normatch.bysl | 35 |
2 files changed, 33 insertions, 4 deletions
diff --git a/gcc/ChangeLog.melt b/gcc/ChangeLog.melt index 90c2ded3c96..3f853494f7c 100644 --- a/gcc/ChangeLog.melt +++ b/gcc/ChangeLog.melt @@ -1,3 +1,5 @@ +2008-10-17 Basile Starynkevitch <basile@starynkevitch.net> + * melt/warmelt-normatch.bysl: adding testpoints... 2008-10-16 Basile Starynkevitch <basile@starynkevitch.net> [cmatcher correctly filled] * melt/warmelt-normal.bysl: defcmatcher correctly normalized. diff --git a/gcc/melt/warmelt-normatch.bysl b/gcc/melt/warmelt-normatch.bysl index 57353bd8a21..ce915b80f9d 100644 --- a/gcc/melt/warmelt-normatch.bysl +++ b/gcc/melt/warmelt-normatch.bysl @@ -272,17 +272,44 @@ ;;;; backpoints are "backtracking" points in matching nreps (defclass class_nrep_backpoint :super class_nrep_typexpr - :fields (nbkp_first - nbkp_else)) + :fields (nbkp_do + nbkp_fail)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;;; testpoints +;;;; any testpoints (defclass class_nrep_testpoint :super class_nrep_typexpr :fields (ntsp_failbp ;backpoint for failure - ntsp_matcher ;matcher + ntsp_succp ;success point + ntsp_test ;normal tested expression )) +;;; testpoint with matcher +(defclass class_nrep_testp_matcher + :super class_nrep_testpoint + :fields (ntsm_matcher ;the matcher + ntsm_binds ;the local bindings +)) + +;; testpoint for is_a +(defclass class_nrep_testp_isa + :super class_nrep_testpoint + :fields (ntsi_class ;tested is a class +)) + +;; testpoint for exact discrim +(defclass class_nrep_testp_discrim + :super class_nrep_testp_isa + :fields ( + )) + +;; conditional testpoint +(defclass class_nrep_testp_cond + :super class_nrep_testpoint + :fields (ntsc_cond ;the condition +)) + + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
