OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 907 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
918 bool RegExpCapture::IsAnchoredAtStart() { | 918 bool RegExpCapture::IsAnchoredAtStart() { |
919 return body()->IsAnchoredAtStart(); | 919 return body()->IsAnchoredAtStart(); |
920 } | 920 } |
921 | 921 |
922 | 922 |
923 bool RegExpCapture::IsAnchoredAtEnd() { | 923 bool RegExpCapture::IsAnchoredAtEnd() { |
924 return body()->IsAnchoredAtEnd(); | 924 return body()->IsAnchoredAtEnd(); |
925 } | 925 } |
926 | 926 |
927 | 927 |
928 bool RegExpDisjunction::ContainsExpandedQuantifier() { | |
929 if (contains_expanded_quantifier_) return true; | |
930 int len = alternatives_->length(); | |
931 for (int i = 0; i < len; i++) { | |
932 if (alternatives_->at(i)->ContainsExpandedQuantifier()) return true; | |
933 } | |
934 return false; | |
935 } | |
936 | |
937 | |
938 bool RegExpAlternative::ContainsExpandedQuantifier() { | |
939 if (contains_expanded_quantifier_) return true; | |
940 int len = nodes_->length(); | |
941 for (int i = 0; i < len; i++) { | |
942 if (nodes_->at(i)->ContainsExpandedQuantifier()) return true; | |
943 } | |
944 return false; | |
945 } | |
946 | |
947 | |
948 // Convert regular expression trees to a simple sexp representation. | 928 // Convert regular expression trees to a simple sexp representation. |
949 // This representation should be different from the input grammar | 929 // This representation should be different from the input grammar |
950 // in as many cases as possible, to make it more difficult for incorrect | 930 // in as many cases as possible, to make it more difficult for incorrect |
951 // parses to look as correct ones which is likely if the input and | 931 // parses to look as correct ones which is likely if the input and |
952 // output formats are alike. | 932 // output formats are alike. |
953 class RegExpUnparser: public RegExpVisitor { | 933 class RegExpUnparser: public RegExpVisitor { |
954 public: | 934 public: |
955 RegExpUnparser(); | 935 RegExpUnparser(); |
956 void VisitCharacterRange(CharacterRange that); | 936 void VisitCharacterRange(CharacterRange that); |
957 SmartPointer<const char> ToString() { return stream_.ToCString(); } | 937 SmartPointer<const char> ToString() { return stream_.ToCString(); } |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1153 int pos) | 1133 int pos) |
1154 : label_(label), | 1134 : label_(label), |
1155 statements_(statements), | 1135 statements_(statements), |
1156 position_(pos), | 1136 position_(pos), |
1157 compare_type_(NONE), | 1137 compare_type_(NONE), |
1158 compare_id_(AstNode::GetNextId()), | 1138 compare_id_(AstNode::GetNextId()), |
1159 entry_id_(AstNode::GetNextId()) { | 1139 entry_id_(AstNode::GetNextId()) { |
1160 } | 1140 } |
1161 | 1141 |
1162 } } // namespace v8::internal | 1142 } } // namespace v8::internal |
OLD | NEW |