summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog.melt2
-rw-r--r--gcc/melt/warmelt-normatch.bysl35
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
+))
+
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;