Index: src/macros.py |
=================================================================== |
--- src/macros.py (revision 1489) |
+++ src/macros.py (working copy) |
@@ -1,4 +1,4 @@ |
-# Copyright 2006-2008 the V8 project authors. All rights reserved. |
+# Copyright 2006-2009 the V8 project authors. All rights reserved. |
# Redistribution and use in source and binary forms, with or without |
# modification, are permitted provided that the following conditions are |
# met: |
@@ -99,3 +99,22 @@ |
# Accessors for original global properties that ensure they have been loaded. |
const ORIGINAL_REGEXP = (global.RegExp, $RegExp); |
const ORIGINAL_DATE = (global.Date, $Date); |
+ |
+# Constants used on an array to implement the properties of the RegExp object. |
+const REGEXP_NUMBER_OF_CAPTURES = 0; |
+const REGEXP_FIRST_CAPTURE = 1; |
+ |
+# We can't put macros in macros so we use constants here. |
+# REGEXP_NUMBER_OF_CAPTURES |
+macro NUMBER_OF_CAPTURES(array) = ((array)[0]); |
+ |
+# Last input and last subject are after the captures so we can omit them on |
+# results returned from global searches. Beware - these evaluate their |
+# arguments twice. |
+macro LAST_SUBJECT(array) = ((array)[(array)[0] + 1]); |
+macro LAST_INPUT(array) = ((array)[(array)[0] + 2]); |
+ |
+# REGEXP_FIRST_CAPTURE |
+macro CAPTURE(index) = (1 + (index)); |
+const CAPTURE0 = 1; |
+const CAPTURE1 = 2; |