[jboss-svn-commits] JBL Code SVN: r20087 - in labs/jbossrules/branches/mattgeis/drools-compiler/src: test/java/org/drools/lang/dsl and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue May 20 21:05:57 EDT 2008
Author: mattgeis
Date: 2008-05-20 21:05:57 -0400 (Tue, 20 May 2008)
New Revision: 20087
Added:
labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/AbstractDSLMappingEntry.java
labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/AntlrDSLMappingEntry.java
Modified:
labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/DSLMapLexer.java
labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/DSLMapParser.java
labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/DSLMapWalker.java
labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/DefaultDSLMappingEntry.java
labs/jbossrules/branches/mattgeis/drools-compiler/src/test/java/org/drools/lang/dsl/DSLTokenizedMappingFileTest.java
Log:
mid-development checkin, just so code is not lost
Added: labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/AbstractDSLMappingEntry.java
===================================================================
--- labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/AbstractDSLMappingEntry.java (rev 0)
+++ labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/AbstractDSLMappingEntry.java 2008-05-21 01:05:57 UTC (rev 20087)
@@ -0,0 +1,169 @@
+package org.drools.lang.dsl;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Pattern;
+
+import org.drools.lang.dsl.DSLMappingEntry.MetaData;
+import org.drools.lang.dsl.DSLMappingEntry.Section;
+/*
+ * Copyright 2006 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+public abstract class AbstractDSLMappingEntry {
+
+ protected Section section;
+ protected MetaData metadata;
+ protected String key;
+ protected String value;
+ protected Map variables = Collections.EMPTY_MAP;
+ protected Pattern keyPattern;
+ protected String valuePattern;
+
+ public AbstractDSLMappingEntry() {
+ super();
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public Section getSection() {
+ return this.section;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public DSLMappingEntry.MetaData getMetaData() {
+ return this.metadata;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public String getMappingKey() {
+ return this.key;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public String getMappingValue() {
+ return this.value;
+ }
+
+ /**
+ * @param section the section to set
+ */
+ public void setSection(final Section section) {
+ this.section = section;
+ }
+
+ /**
+ * @param metadata the metadata to set
+ */
+ public void setMetaData(final MetaData metadata) {
+ this.metadata = metadata;
+ }
+
+ /**
+ * @return the keyPattern
+ */
+ public Pattern getKeyPattern() {
+ return this.keyPattern;
+ }
+
+ /**
+ * @return the valuePattern
+ */
+ public String getValuePattern() {
+ return this.valuePattern;
+ }
+
+ /**
+ * @return the variables
+ */
+ public Map getVariables() {
+ return this.variables;
+ }
+
+ public String toPatternString() {
+ return this.section + "[" + this.metadata + "]" + this.keyPattern.pattern() + "=" + this.valuePattern;
+ }
+
+ public String toString() {
+ return this.section + "[" + this.metadata + "]" + this.key + "=" + this.value;
+ }
+
+ public int hashCode() {
+ final int PRIME = 31;
+ int result = 1;
+ result = PRIME * result + ((this.key == null) ? 0 : this.key.hashCode());
+ result = PRIME * result + ((this.metadata == null) ? 0 : this.metadata.hashCode());
+ result = PRIME * result + ((this.section == null) ? 0 : this.section.hashCode());
+ result = PRIME * result + ((this.value == null) ? 0 : this.value.hashCode());
+ return result;
+ }
+
+ public boolean equals(final Object obj) {
+ if ( this == obj ) {
+ return true;
+ }
+ if ( obj == null ) {
+ return false;
+ }
+ if ( getClass() != obj.getClass() ) {
+ return false;
+ }
+ final AbstractDSLMappingEntry other = (AbstractDSLMappingEntry) obj;
+ if ( this.key == null ) {
+ if ( other.key != null ) {
+ return false;
+ }
+ } else if ( !this.key.equals( other.key ) ) {
+ return false;
+ }
+ if ( this.metadata == null ) {
+ if ( other.metadata != null ) {
+ return false;
+ }
+ } else if ( !this.metadata.equals( other.metadata ) ) {
+ return false;
+ }
+ if ( this.section == null ) {
+ if ( other.section != null ) {
+ return false;
+ }
+ } else if ( !this.section.equals( other.section ) ) {
+ return false;
+ }
+ if ( this.value == null ) {
+ if ( other.value != null ) {
+ return false;
+ }
+ } else if ( !this.value.equals( other.value ) ) {
+ return false;
+ }
+ return true;
+ }
+
+ public List getErrors() {
+ // TODO Need to implement validation here
+ return Collections.EMPTY_LIST;
+ }
+
+}
\ No newline at end of file
Property changes on: labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/AbstractDSLMappingEntry.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/AntlrDSLMappingEntry.java
===================================================================
--- labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/AntlrDSLMappingEntry.java (rev 0)
+++ labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/AntlrDSLMappingEntry.java 2008-05-21 01:05:57 UTC (rev 20087)
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2006 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.drools.lang.dsl;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * An ANTLR-driven implementation for the DSL Mapping Entry interface
+ *
+ * @author mattgeis
+ */
+public class AntlrDSLMappingEntry extends AbstractDSLMappingEntry implements DSLMappingEntry {
+
+ public AntlrDSLMappingEntry() {
+ this(DSLMappingEntry.ANY, DSLMappingEntry.EMPTY_METADATA, null, null);
+ }
+
+ public AntlrDSLMappingEntry(final Section section, final MetaData metadata,
+ final String key, final String value) {
+ this.section = section;
+ this.metadata = metadata;
+ this.setMappingKey(key);
+ this.setMappingValue(value);
+ }
+
+
+ /**
+ * @param key
+ * the key to set
+ */
+ public void setMappingKey(String key) {
+ //the "key" in this case is already mostly formed into
+ //a pattern by ANTLR, and just requires a bit of post-processing.
+ if (key != null) {
+ key = key.trim();
+ }
+ this.key = key;
+
+ if (key != null) {
+ int substr = 0;
+ // escape '$' to avoid errors
+ //final String escapedKey = key.replaceAll("\\$", "\\\\\\$");
+ // retrieving variables list and creating key pattern
+ final StringBuffer buf = new StringBuffer();
+
+ if (!key.startsWith("^")) {
+ // making it start with a space char or a line start
+ buf.append("(\\W|^)").append(key);
+ }
+
+
+ // if pattern ends with a pure variable whose pattern could create
+ // a greedy match, append a line end to avoid multiple line matching
+ if (buf.toString().endsWith("(.*?)")) {
+ buf.append("$");
+ } else {
+ buf.append("(\\W|$)");
+ }
+
+ // setting the key pattern and making it space insensitive
+ String pat = buf.toString();
+ //first, look to see if it's
+ if (pat.substring(substr).trim().startsWith("-")
+ && (!pat.substring(substr).trim().startsWith("-\\s*"))) {
+ pat = pat.substring(0, pat.indexOf('-') + 1) + "\\s*"
+ + pat.substring(pat.indexOf('-') + 1).trim();
+ }
+ //may not need to do this at all
+ //pat = pat.replaceAll("\\s+", "\\\\s+");
+ this.keyPattern = Pattern.compile(pat, Pattern.DOTALL
+ | Pattern.MULTILINE);
+
+ } else {
+ this.keyPattern = null;
+ }
+ // update value mapping
+ this.setMappingValue(this.value);
+ }
+
+
+ /**
+ * @param value
+ * the value to set
+ */
+ public void setMappingValue(final String value) {
+ this.valuePattern = value;
+ this.value = value;
+ if (value != null) {
+// this.valuePattern = this.valuePattern.replaceAll("\\\\n", "\n")
+// .replaceAll("\\$", "\\\\\\$");
+ for (final Iterator it = this.variables.entrySet().iterator(); it
+ .hasNext();) {
+ final Map.Entry entry = (Map.Entry) it.next();
+ final String var = (String) entry.getKey();
+ final int pos = ((Integer) entry.getValue()).intValue();
+
+ this.valuePattern = this.valuePattern.replaceAll("\\{" + var
+ + "\\}", "\\$" + pos);
+ }
+ }
+ }
+
+
+
+}
Property changes on: labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/AntlrDSLMappingEntry.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/DSLMapLexer.java
===================================================================
--- labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/DSLMapLexer.java 2008-05-20 20:45:04 UTC (rev 20086)
+++ labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/DSLMapLexer.java 2008-05-21 01:05:57 UTC (rev 20087)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 DSLMap.g 2008-05-19 16:06:17
+// $ANTLR 3.0.1 DSLMap.g 2008-05-20 17:54:40
package org.drools.lang.dsl;
@@ -53,10 +53,10 @@
public final void mWS() throws RecognitionException {
try {
int _type = WS;
- // DSLMap.g:231:9: ( ( ' ' | '\\t' | '\\f' )+ )
- // DSLMap.g:231:17: ( ' ' | '\\t' | '\\f' )+
+ // DSLMap.g:243:9: ( ( ' ' | '\\t' | '\\f' )+ )
+ // DSLMap.g:243:17: ( ' ' | '\\t' | '\\f' )+
{
- // DSLMap.g:231:17: ( ' ' | '\\t' | '\\f' )+
+ // DSLMap.g:243:17: ( ' ' | '\\t' | '\\f' )+
int cnt1=0;
loop1:
do {
@@ -114,10 +114,10 @@
public final void mEOL() throws RecognitionException {
try {
int _type = EOL;
- // DSLMap.g:238:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
- // DSLMap.g:239:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+ // DSLMap.g:250:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
+ // DSLMap.g:251:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
{
- // DSLMap.g:239:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+ // DSLMap.g:251:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
int alt2=3;
int LA2_0 = input.LA(1);
@@ -136,13 +136,13 @@
else {
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("239:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )", 2, 0, input);
+ new NoViableAltException("251:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )", 2, 0, input);
throw nvae;
}
switch (alt2) {
case 1 :
- // DSLMap.g:239:14: ( '\\r\\n' )=> '\\r\\n'
+ // DSLMap.g:251:14: ( '\\r\\n' )=> '\\r\\n'
{
match("\r\n"); if (failed) return ;
@@ -150,14 +150,14 @@
}
break;
case 2 :
- // DSLMap.g:240:25: '\\r'
+ // DSLMap.g:252:25: '\\r'
{
match('\r'); if (failed) return ;
}
break;
case 3 :
- // DSLMap.g:241:25: '\\n'
+ // DSLMap.g:253:25: '\\n'
{
match('\n'); if (failed) return ;
@@ -179,8 +179,8 @@
// $ANTLR start EscapeSequence
public final void mEscapeSequence() throws RecognitionException {
try {
- // DSLMap.g:247:5: ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' | '=' | 'u' | '0' | '#' ) )
- // DSLMap.g:247:9: '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' | '=' | 'u' | '0' | '#' )
+ // DSLMap.g:259:5: ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' | '=' | 'u' | '0' | '#' ) )
+ // DSLMap.g:259:9: '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' | '=' | 'u' | '0' | '#' )
{
match('\\'); if (failed) return ;
if ( (input.LA(1)>='\"' && input.LA(1)<='$')||(input.LA(1)>='&' && input.LA(1)<='+')||(input.LA(1)>='-' && input.LA(1)<='.')||input.LA(1)=='0'||input.LA(1)=='='||input.LA(1)=='?'||(input.LA(1)>='A' && input.LA(1)<='B')||(input.LA(1)>='D' && input.LA(1)<='E')||input.LA(1)=='G'||input.LA(1)=='Q'||input.LA(1)=='S'||input.LA(1)=='W'||(input.LA(1)>='Z' && input.LA(1)<='^')||(input.LA(1)>='a' && input.LA(1)<='f')||(input.LA(1)>='n' && input.LA(1)<='p')||(input.LA(1)>='r' && input.LA(1)<='u')||(input.LA(1)>='w' && input.LA(1)<='x')||(input.LA(1)>='z' && input.LA(1)<='}') ) {
@@ -207,8 +207,8 @@
public final void mLEFT_SQUARE() throws RecognitionException {
try {
int _type = LEFT_SQUARE;
- // DSLMap.g:254:9: ( '[' )
- // DSLMap.g:254:11: '['
+ // DSLMap.g:266:9: ( '[' )
+ // DSLMap.g:266:11: '['
{
match('['); if (failed) return ;
@@ -225,8 +225,8 @@
public final void mRIGHT_SQUARE() throws RecognitionException {
try {
int _type = RIGHT_SQUARE;
- // DSLMap.g:258:9: ( ']' )
- // DSLMap.g:258:11: ']'
+ // DSLMap.g:270:9: ( ']' )
+ // DSLMap.g:270:11: ']'
{
match(']'); if (failed) return ;
@@ -243,8 +243,8 @@
public final void mLEFT_CURLY() throws RecognitionException {
try {
int _type = LEFT_CURLY;
- // DSLMap.g:262:9: ( '{' )
- // DSLMap.g:262:11: '{'
+ // DSLMap.g:274:9: ( '{' )
+ // DSLMap.g:274:11: '{'
{
match('{'); if (failed) return ;
@@ -261,8 +261,8 @@
public final void mRIGHT_CURLY() throws RecognitionException {
try {
int _type = RIGHT_CURLY;
- // DSLMap.g:266:9: ( '}' )
- // DSLMap.g:266:11: '}'
+ // DSLMap.g:278:9: ( '}' )
+ // DSLMap.g:278:11: '}'
{
match('}'); if (failed) return ;
@@ -279,8 +279,8 @@
public final void mEQUALS() throws RecognitionException {
try {
int _type = EQUALS;
- // DSLMap.g:269:8: ( '=' )
- // DSLMap.g:269:10: '='
+ // DSLMap.g:281:8: ( '=' )
+ // DSLMap.g:281:10: '='
{
match('='); if (failed) return ;
@@ -297,8 +297,8 @@
public final void mDOT() throws RecognitionException {
try {
int _type = DOT;
- // DSLMap.g:272:5: ( '.' )
- // DSLMap.g:272:7: '.'
+ // DSLMap.g:284:5: ( '.' )
+ // DSLMap.g:284:7: '.'
{
match('.'); if (failed) return ;
@@ -315,8 +315,8 @@
public final void mPOUND() throws RecognitionException {
try {
int _type = POUND;
- // DSLMap.g:275:9: ( '#' )
- // DSLMap.g:275:11: '#'
+ // DSLMap.g:287:9: ( '#' )
+ // DSLMap.g:287:11: '#'
{
match('#'); if (failed) return ;
@@ -333,8 +333,8 @@
public final void mCOLON() throws RecognitionException {
try {
int _type = COLON;
- // DSLMap.g:278:7: ( ':' )
- // DSLMap.g:278:9: ':'
+ // DSLMap.g:290:7: ( ':' )
+ // DSLMap.g:290:9: ':'
{
match(':'); if (failed) return ;
@@ -351,11 +351,11 @@
public final void mLINE_COMMENT() throws RecognitionException {
try {
int _type = LINE_COMMENT;
- // DSLMap.g:286:2: ( POUND ( options {greedy=false; } : . )* EOL )
- // DSLMap.g:286:4: POUND ( options {greedy=false; } : . )* EOL
+ // DSLMap.g:298:2: ( POUND ( options {greedy=false; } : . )* EOL )
+ // DSLMap.g:298:4: POUND ( options {greedy=false; } : . )* EOL
{
mPOUND(); if (failed) return ;
- // DSLMap.g:286:10: ( options {greedy=false; } : . )*
+ // DSLMap.g:298:10: ( options {greedy=false; } : . )*
loop3:
do {
int alt3=2;
@@ -374,7 +374,7 @@
switch (alt3) {
case 1 :
- // DSLMap.g:286:37: .
+ // DSLMap.g:298:37: .
{
matchAny(); if (failed) return ;
@@ -401,10 +401,10 @@
public final void mLITERAL() throws RecognitionException {
try {
int _type = LITERAL;
- // DSLMap.g:294:2: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' | MISC | EscapeSequence | DOT )+ )
- // DSLMap.g:294:4: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' | MISC | EscapeSequence | DOT )+
+ // DSLMap.g:306:2: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' | MISC | EscapeSequence | DOT )+ )
+ // DSLMap.g:306:4: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' | MISC | EscapeSequence | DOT )+
{
- // DSLMap.g:294:4: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' | MISC | EscapeSequence | DOT )+
+ // DSLMap.g:306:4: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' | MISC | EscapeSequence | DOT )+
int cnt4=0;
loop4:
do {
@@ -593,56 +593,56 @@
switch (alt4) {
case 1 :
- // DSLMap.g:294:5: 'a' .. 'z'
+ // DSLMap.g:306:5: 'a' .. 'z'
{
matchRange('a','z'); if (failed) return ;
}
break;
case 2 :
- // DSLMap.g:294:14: 'A' .. 'Z'
+ // DSLMap.g:306:14: 'A' .. 'Z'
{
matchRange('A','Z'); if (failed) return ;
}
break;
case 3 :
- // DSLMap.g:294:23: '_'
+ // DSLMap.g:306:23: '_'
{
match('_'); if (failed) return ;
}
break;
case 4 :
- // DSLMap.g:294:27: '0' .. '9'
+ // DSLMap.g:306:27: '0' .. '9'
{
matchRange('0','9'); if (failed) return ;
}
break;
case 5 :
- // DSLMap.g:294:36: '\\u00c0' .. '\\u00ff'
+ // DSLMap.g:306:36: '\\u00c0' .. '\\u00ff'
{
matchRange('\u00C0','\u00FF'); if (failed) return ;
}
break;
case 6 :
- // DSLMap.g:294:55: MISC
+ // DSLMap.g:306:55: MISC
{
mMISC(); if (failed) return ;
}
break;
case 7 :
- // DSLMap.g:294:60: EscapeSequence
+ // DSLMap.g:306:60: EscapeSequence
{
mEscapeSequence(); if (failed) return ;
}
break;
case 8 :
- // DSLMap.g:294:75: DOT
+ // DSLMap.g:306:75: DOT
{
mDOT(); if (failed) return ;
@@ -672,7 +672,7 @@
// $ANTLR start MISC
public final void mMISC() throws RecognitionException {
try {
- // DSLMap.g:298:7: ( '!' | '@' | '$' | '%' | '^' | '*' | '-' | '+' | '?' | '/' | '\\'' | '\"' | '|' | '&' | '(' | ')' | ';' )
+ // DSLMap.g:310:7: ( '!' | '@' | '$' | '%' | '^' | '*' | '-' | '+' | '?' | '/' | '\\'' | '\"' | '|' | '&' | '(' | ')' | ';' )
// DSLMap.g:
{
if ( (input.LA(1)>='!' && input.LA(1)<='\"')||(input.LA(1)>='$' && input.LA(1)<='+')||input.LA(1)=='-'||input.LA(1)=='/'||input.LA(1)==';'||(input.LA(1)>='?' && input.LA(1)<='@')||input.LA(1)=='^'||input.LA(1)=='|' ) {
@@ -1013,8 +1013,8 @@
// $ANTLR start synpred1
public final void synpred1_fragment() throws RecognitionException {
- // DSLMap.g:239:14: ( '\\r\\n' )
- // DSLMap.g:239:16: '\\r\\n'
+ // DSLMap.g:251:14: ( '\\r\\n' )
+ // DSLMap.g:251:16: '\\r\\n'
{
match("\r\n"); if (failed) return ;
Modified: labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/DSLMapParser.java
===================================================================
--- labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/DSLMapParser.java 2008-05-20 20:45:04 UTC (rev 20086)
+++ labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/DSLMapParser.java 2008-05-21 01:05:57 UTC (rev 20087)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 DSLMap.g 2008-05-19 16:06:17
+// $ANTLR 3.0.1 DSLMap.g 2008-05-20 17:54:39
package org.drools.lang.dsl;
@@ -1524,7 +1524,7 @@
};
// $ANTLR start variable_definition
- // DSLMap.g:160:1: variable_definition : lc= LEFT_CURLY name= LITERAL ( COLON pat= pattern )? RIGHT_CURLY -> {hasSpace && !\"\".equals(text)}? VT_SPACE ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) -> {!hasSpace && !\"\".equals(text)}? ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) -> {hasSpace}? VT_SPACE ^( VT_VAR_DEF $name) -> ^( VT_VAR_DEF $name) ;
+ // DSLMap.g:160:1: variable_definition : lc= LEFT_CURLY name= LITERAL ( COLON pat= pattern )? rc= RIGHT_CURLY -> {hasSpaceBefore && !\"\".equals(text) && !hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) -> {!hasSpaceBefore && !\"\".equals(text) && !hasSpaceAfter}? ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) -> {hasSpaceBefore && !hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name) -> {!hasSpaceBefore && !hasSpaceAfter}? ^( VT_VAR_DEF $name) -> {hasSpaceBefore && !\"\".equals(text) && hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) VT_SPACE -> {!hasSpaceBefore && !\"\".equals(text) && hasSpaceAfter}? ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) VT_SPACE -> {hasSpaceBefore && hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name) VT_SPACE -> {!hasSpaceBefore && hasSpaceAfter}? ^( VT_VAR_DEF $name) VT_SPACE -> ^( VT_VAR_DEF $name) ;
public final variable_definition_return variable_definition() throws RecognitionException {
variable_definition_return retval = new variable_definition_return();
retval.start = input.LT(1);
@@ -1533,15 +1533,15 @@
Token lc=null;
Token name=null;
+ Token rc=null;
Token COLON26=null;
- Token RIGHT_CURLY27=null;
pattern_return pat = null;
Object lc_tree=null;
Object name_tree=null;
+ Object rc_tree=null;
Object COLON26_tree=null;
- Object RIGHT_CURLY27_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_RIGHT_CURLY=new RewriteRuleTokenStream(adaptor,"token RIGHT_CURLY");
RewriteRuleTokenStream stream_LITERAL=new RewriteRuleTokenStream(adaptor,"token LITERAL");
@@ -1549,24 +1549,25 @@
RewriteRuleSubtreeStream stream_pattern=new RewriteRuleSubtreeStream(adaptor,"rule pattern");
String text = "";
- boolean hasSpace = false;
+ boolean hasSpaceBefore = false;
+ boolean hasSpaceAfter = false;
try {
- // DSLMap.g:165:2: (lc= LEFT_CURLY name= LITERAL ( COLON pat= pattern )? RIGHT_CURLY -> {hasSpace && !\"\".equals(text)}? VT_SPACE ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) -> {!hasSpace && !\"\".equals(text)}? ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) -> {hasSpace}? VT_SPACE ^( VT_VAR_DEF $name) -> ^( VT_VAR_DEF $name) )
- // DSLMap.g:165:4: lc= LEFT_CURLY name= LITERAL ( COLON pat= pattern )? RIGHT_CURLY
+ // DSLMap.g:166:2: (lc= LEFT_CURLY name= LITERAL ( COLON pat= pattern )? rc= RIGHT_CURLY -> {hasSpaceBefore && !\"\".equals(text) && !hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) -> {!hasSpaceBefore && !\"\".equals(text) && !hasSpaceAfter}? ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) -> {hasSpaceBefore && !hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name) -> {!hasSpaceBefore && !hasSpaceAfter}? ^( VT_VAR_DEF $name) -> {hasSpaceBefore && !\"\".equals(text) && hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) VT_SPACE -> {!hasSpaceBefore && !\"\".equals(text) && hasSpaceAfter}? ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) VT_SPACE -> {hasSpaceBefore && hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name) VT_SPACE -> {!hasSpaceBefore && hasSpaceAfter}? ^( VT_VAR_DEF $name) VT_SPACE -> ^( VT_VAR_DEF $name) )
+ // DSLMap.g:166:4: lc= LEFT_CURLY name= LITERAL ( COLON pat= pattern )? rc= RIGHT_CURLY
{
lc=(Token)input.LT(1);
match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_variable_definition678); if (failed) return retval;
if ( backtracking==0 ) stream_LEFT_CURLY.add(lc);
if ( backtracking==0 ) {
- if( ((CommonToken)input.LT(-2)).getStopIndex() < ((CommonToken)lc).getStartIndex() -1 ) hasSpace = true;
+ if( ((CommonToken)input.LT(-2)).getStopIndex() < ((CommonToken)lc).getStartIndex() -1 ) hasSpaceBefore = true;
}
name=(Token)input.LT(1);
match(input,LITERAL,FOLLOW_LITERAL_in_variable_definition686); if (failed) return retval;
if ( backtracking==0 ) stream_LITERAL.add(name);
- // DSLMap.g:166:15: ( COLON pat= pattern )?
+ // DSLMap.g:167:15: ( COLON pat= pattern )?
int alt12=2;
int LA12_0 = input.LA(1);
@@ -1575,7 +1576,7 @@
}
switch (alt12) {
case 1 :
- // DSLMap.g:166:17: COLON pat= pattern
+ // DSLMap.g:167:17: COLON pat= pattern
{
COLON26=(Token)input.LT(1);
match(input,COLON,FOLLOW_COLON_in_variable_definition690); if (failed) return retval;
@@ -1595,13 +1596,16 @@
}
- RIGHT_CURLY27=(Token)input.LT(1);
- match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_variable_definition701); if (failed) return retval;
- if ( backtracking==0 ) stream_RIGHT_CURLY.add(RIGHT_CURLY27);
+ rc=(Token)input.LT(1);
+ match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_variable_definition703); if (failed) return retval;
+ if ( backtracking==0 ) stream_RIGHT_CURLY.add(rc);
+ if ( backtracking==0 ) {
+ if(((CommonToken)rc).getStopIndex() < ((CommonToken)input.LT(1)).getStartIndex() - 1) hasSpaceAfter = true;
+ }
// AST REWRITE
- // elements: name, name, name, name
+ // elements: name, name, name, name, name, name, name, name, name
// token labels: name
// rule labels: retval
// token list labels:
@@ -1612,10 +1616,10 @@
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
- // 167:2: -> {hasSpace && !\"\".equals(text)}? VT_SPACE ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] )
- if (hasSpace && !"".equals(text)) {
+ // 169:2: -> {hasSpaceBefore && !\"\".equals(text) && !hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] )
+ if (hasSpaceBefore && !"".equals(text) && !hasSpaceAfter) {
adaptor.addChild(root_0, adaptor.create(VT_SPACE, "VT_SPACE"));
- // DSLMap.g:167:46: ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] )
+ // DSLMap.g:169:70: ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
@@ -1627,9 +1631,9 @@
}
}
- else // 168:2: -> {!hasSpace && !\"\".equals(text)}? ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] )
- if (!hasSpace && !"".equals(text)) {
- // DSLMap.g:168:38: ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] )
+ else // 170:2: -> {!hasSpaceBefore && !\"\".equals(text) && !hasSpaceAfter}? ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] )
+ if (!hasSpaceBefore && !"".equals(text) && !hasSpaceAfter) {
+ // DSLMap.g:170:63: ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
@@ -1641,10 +1645,10 @@
}
}
- else // 169:2: -> {hasSpace}? VT_SPACE ^( VT_VAR_DEF $name)
- if (hasSpace) {
+ else // 171:2: -> {hasSpaceBefore && !hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name)
+ if (hasSpaceBefore && !hasSpaceAfter) {
adaptor.addChild(root_0, adaptor.create(VT_SPACE, "VT_SPACE"));
- // DSLMap.g:169:26: ^( VT_VAR_DEF $name)
+ // DSLMap.g:171:51: ^( VT_VAR_DEF $name)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
@@ -1655,9 +1659,82 @@
}
}
- else // 170:2: -> ^( VT_VAR_DEF $name)
+ else // 172:2: -> {!hasSpaceBefore && !hasSpaceAfter}? ^( VT_VAR_DEF $name)
+ if (!hasSpaceBefore && !hasSpaceAfter) {
+ // DSLMap.g:172:44: ^( VT_VAR_DEF $name)
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
+
+ adaptor.addChild(root_1, stream_name.next());
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+ else // 174:2: -> {hasSpaceBefore && !\"\".equals(text) && hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) VT_SPACE
+ if (hasSpaceBefore && !"".equals(text) && hasSpaceAfter) {
+ adaptor.addChild(root_0, adaptor.create(VT_SPACE, "VT_SPACE"));
+ // DSLMap.g:174:69: ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
+
+ adaptor.addChild(root_1, stream_name.next());
+ adaptor.addChild(root_1, adaptor.create(VT_PATTERN, ((Token)pat.start), text));
+
+ adaptor.addChild(root_0, root_1);
+ }
+ adaptor.addChild(root_0, adaptor.create(VT_SPACE, "VT_SPACE"));
+
+ }
+ else // 175:2: -> {!hasSpaceBefore && !\"\".equals(text) && hasSpaceAfter}? ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) VT_SPACE
+ if (!hasSpaceBefore && !"".equals(text) && hasSpaceAfter) {
+ // DSLMap.g:175:62: ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] )
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
+
+ adaptor.addChild(root_1, stream_name.next());
+ adaptor.addChild(root_1, adaptor.create(VT_PATTERN, ((Token)pat.start), text));
+
+ adaptor.addChild(root_0, root_1);
+ }
+ adaptor.addChild(root_0, adaptor.create(VT_SPACE, "VT_SPACE"));
+
+ }
+ else // 176:2: -> {hasSpaceBefore && hasSpaceAfter}? VT_SPACE ^( VT_VAR_DEF $name) VT_SPACE
+ if (hasSpaceBefore && hasSpaceAfter) {
+ adaptor.addChild(root_0, adaptor.create(VT_SPACE, "VT_SPACE"));
+ // DSLMap.g:176:50: ^( VT_VAR_DEF $name)
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
+
+ adaptor.addChild(root_1, stream_name.next());
+
+ adaptor.addChild(root_0, root_1);
+ }
+ adaptor.addChild(root_0, adaptor.create(VT_SPACE, "VT_SPACE"));
+
+ }
+ else // 177:2: -> {!hasSpaceBefore && hasSpaceAfter}? ^( VT_VAR_DEF $name) VT_SPACE
+ if (!hasSpaceBefore && hasSpaceAfter) {
+ // DSLMap.g:177:43: ^( VT_VAR_DEF $name)
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
+
+ adaptor.addChild(root_1, stream_name.next());
+
+ adaptor.addChild(root_0, root_1);
+ }
+ adaptor.addChild(root_0, adaptor.create(VT_SPACE, "VT_SPACE"));
+
+ }
+ else // 178:2: -> ^( VT_VAR_DEF $name)
{
- // DSLMap.g:170:5: ^( VT_VAR_DEF $name)
+ // DSLMap.g:178:5: ^( VT_VAR_DEF $name)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
@@ -1696,7 +1773,7 @@
};
// $ANTLR start variable_definition2
- // DSLMap.g:173:1: variable_definition2 : LEFT_CURLY name= LITERAL ( COLON pat= pattern )? RIGHT_CURLY -> {!\"\".equals(text)}? ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) -> ^( VT_VAR_DEF $name) ;
+ // DSLMap.g:181:1: variable_definition2 : LEFT_CURLY name= LITERAL ( COLON pat= pattern )? RIGHT_CURLY -> {!\"\".equals(text)}? ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) -> ^( VT_VAR_DEF $name) ;
public final variable_definition2_return variable_definition2() throws RecognitionException {
variable_definition2_return retval = new variable_definition2_return();
retval.start = input.LT(1);
@@ -1704,16 +1781,16 @@
Object root_0 = null;
Token name=null;
- Token LEFT_CURLY28=null;
- Token COLON29=null;
- Token RIGHT_CURLY30=null;
+ Token LEFT_CURLY27=null;
+ Token COLON28=null;
+ Token RIGHT_CURLY29=null;
pattern_return pat = null;
Object name_tree=null;
- Object LEFT_CURLY28_tree=null;
- Object COLON29_tree=null;
- Object RIGHT_CURLY30_tree=null;
+ Object LEFT_CURLY27_tree=null;
+ Object COLON28_tree=null;
+ Object RIGHT_CURLY29_tree=null;
RewriteRuleTokenStream stream_COLON=new RewriteRuleTokenStream(adaptor,"token COLON");
RewriteRuleTokenStream stream_RIGHT_CURLY=new RewriteRuleTokenStream(adaptor,"token RIGHT_CURLY");
RewriteRuleTokenStream stream_LITERAL=new RewriteRuleTokenStream(adaptor,"token LITERAL");
@@ -1723,18 +1800,18 @@
String text = "";
try {
- // DSLMap.g:177:2: ( LEFT_CURLY name= LITERAL ( COLON pat= pattern )? RIGHT_CURLY -> {!\"\".equals(text)}? ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) -> ^( VT_VAR_DEF $name) )
- // DSLMap.g:177:4: LEFT_CURLY name= LITERAL ( COLON pat= pattern )? RIGHT_CURLY
+ // DSLMap.g:185:2: ( LEFT_CURLY name= LITERAL ( COLON pat= pattern )? RIGHT_CURLY -> {!\"\".equals(text)}? ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] ) -> ^( VT_VAR_DEF $name) )
+ // DSLMap.g:185:4: LEFT_CURLY name= LITERAL ( COLON pat= pattern )? RIGHT_CURLY
{
- LEFT_CURLY28=(Token)input.LT(1);
- match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_variable_definition2783); if (failed) return retval;
- if ( backtracking==0 ) stream_LEFT_CURLY.add(LEFT_CURLY28);
+ LEFT_CURLY27=(Token)input.LT(1);
+ match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_variable_definition2879); if (failed) return retval;
+ if ( backtracking==0 ) stream_LEFT_CURLY.add(LEFT_CURLY27);
name=(Token)input.LT(1);
- match(input,LITERAL,FOLLOW_LITERAL_in_variable_definition2787); if (failed) return retval;
+ match(input,LITERAL,FOLLOW_LITERAL_in_variable_definition2883); if (failed) return retval;
if ( backtracking==0 ) stream_LITERAL.add(name);
- // DSLMap.g:177:28: ( COLON pat= pattern )?
+ // DSLMap.g:185:28: ( COLON pat= pattern )?
int alt13=2;
int LA13_0 = input.LA(1);
@@ -1743,13 +1820,13 @@
}
switch (alt13) {
case 1 :
- // DSLMap.g:177:30: COLON pat= pattern
+ // DSLMap.g:185:30: COLON pat= pattern
{
- COLON29=(Token)input.LT(1);
- match(input,COLON,FOLLOW_COLON_in_variable_definition2791); if (failed) return retval;
- if ( backtracking==0 ) stream_COLON.add(COLON29);
+ COLON28=(Token)input.LT(1);
+ match(input,COLON,FOLLOW_COLON_in_variable_definition2887); if (failed) return retval;
+ if ( backtracking==0 ) stream_COLON.add(COLON28);
- pushFollow(FOLLOW_pattern_in_variable_definition2795);
+ pushFollow(FOLLOW_pattern_in_variable_definition2891);
pat=pattern();
_fsp--;
if (failed) return retval;
@@ -1763,9 +1840,9 @@
}
- RIGHT_CURLY30=(Token)input.LT(1);
- match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_variable_definition2802); if (failed) return retval;
- if ( backtracking==0 ) stream_RIGHT_CURLY.add(RIGHT_CURLY30);
+ RIGHT_CURLY29=(Token)input.LT(1);
+ match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_variable_definition2898); if (failed) return retval;
+ if ( backtracking==0 ) stream_RIGHT_CURLY.add(RIGHT_CURLY29);
// AST REWRITE
@@ -1780,9 +1857,9 @@
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
- // 178:2: -> {!\"\".equals(text)}? ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] )
+ // 186:2: -> {!\"\".equals(text)}? ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] )
if (!"".equals(text)) {
- // DSLMap.g:178:25: ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] )
+ // DSLMap.g:186:25: ^( VT_VAR_DEF $name VT_PATTERN[$pat.start, text] )
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
@@ -1794,9 +1871,9 @@
}
}
- else // 179:2: -> ^( VT_VAR_DEF $name)
+ else // 187:2: -> ^( VT_VAR_DEF $name)
{
- // DSLMap.g:179:5: ^( VT_VAR_DEF $name)
+ // DSLMap.g:187:5: ^( VT_VAR_DEF $name)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_VAR_DEF, "VT_VAR_DEF"), root_1);
@@ -1835,36 +1912,36 @@
};
// $ANTLR start pattern
- // DSLMap.g:183:1: pattern : ( literal | LEFT_CURLY literal RIGHT_CURLY | LEFT_SQUARE pattern RIGHT_SQUARE )+ ;
+ // DSLMap.g:191:1: pattern : ( literal | LEFT_CURLY literal RIGHT_CURLY | LEFT_SQUARE pattern RIGHT_SQUARE )+ ;
public final pattern_return pattern() throws RecognitionException {
pattern_return retval = new pattern_return();
retval.start = input.LT(1);
Object root_0 = null;
- Token LEFT_CURLY32=null;
- Token RIGHT_CURLY34=null;
- Token LEFT_SQUARE35=null;
- Token RIGHT_SQUARE37=null;
- literal_return literal31 = null;
+ Token LEFT_CURLY31=null;
+ Token RIGHT_CURLY33=null;
+ Token LEFT_SQUARE34=null;
+ Token RIGHT_SQUARE36=null;
+ literal_return literal30 = null;
- literal_return literal33 = null;
+ literal_return literal32 = null;
- pattern_return pattern36 = null;
+ pattern_return pattern35 = null;
- Object LEFT_CURLY32_tree=null;
- Object RIGHT_CURLY34_tree=null;
- Object LEFT_SQUARE35_tree=null;
- Object RIGHT_SQUARE37_tree=null;
+ Object LEFT_CURLY31_tree=null;
+ Object RIGHT_CURLY33_tree=null;
+ Object LEFT_SQUARE34_tree=null;
+ Object RIGHT_SQUARE36_tree=null;
try {
- // DSLMap.g:184:9: ( ( literal | LEFT_CURLY literal RIGHT_CURLY | LEFT_SQUARE pattern RIGHT_SQUARE )+ )
- // DSLMap.g:184:11: ( literal | LEFT_CURLY literal RIGHT_CURLY | LEFT_SQUARE pattern RIGHT_SQUARE )+
+ // DSLMap.g:192:9: ( ( literal | LEFT_CURLY literal RIGHT_CURLY | LEFT_SQUARE pattern RIGHT_SQUARE )+ )
+ // DSLMap.g:192:11: ( literal | LEFT_CURLY literal RIGHT_CURLY | LEFT_SQUARE pattern RIGHT_SQUARE )+
{
root_0 = (Object)adaptor.nil();
- // DSLMap.g:184:11: ( literal | LEFT_CURLY literal RIGHT_CURLY | LEFT_SQUARE pattern RIGHT_SQUARE )+
+ // DSLMap.g:192:11: ( literal | LEFT_CURLY literal RIGHT_CURLY | LEFT_SQUARE pattern RIGHT_SQUARE )+
int cnt14=0;
loop14:
do {
@@ -1911,58 +1988,58 @@
switch (alt14) {
case 1 :
- // DSLMap.g:184:13: literal
+ // DSLMap.g:192:13: literal
{
- pushFollow(FOLLOW_literal_in_pattern853);
- literal31=literal();
+ pushFollow(FOLLOW_literal_in_pattern949);
+ literal30=literal();
_fsp--;
if (failed) return retval;
- if ( backtracking==0 ) adaptor.addChild(root_0, literal31.getTree());
+ if ( backtracking==0 ) adaptor.addChild(root_0, literal30.getTree());
}
break;
case 2 :
- // DSLMap.g:185:13: LEFT_CURLY literal RIGHT_CURLY
+ // DSLMap.g:193:13: LEFT_CURLY literal RIGHT_CURLY
{
- LEFT_CURLY32=(Token)input.LT(1);
- match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_pattern867); if (failed) return retval;
+ LEFT_CURLY31=(Token)input.LT(1);
+ match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_pattern963); if (failed) return retval;
if ( backtracking==0 ) {
- LEFT_CURLY32_tree = (Object)adaptor.create(LEFT_CURLY32);
- adaptor.addChild(root_0, LEFT_CURLY32_tree);
+ LEFT_CURLY31_tree = (Object)adaptor.create(LEFT_CURLY31);
+ adaptor.addChild(root_0, LEFT_CURLY31_tree);
}
- pushFollow(FOLLOW_literal_in_pattern869);
- literal33=literal();
+ pushFollow(FOLLOW_literal_in_pattern965);
+ literal32=literal();
_fsp--;
if (failed) return retval;
- if ( backtracking==0 ) adaptor.addChild(root_0, literal33.getTree());
- RIGHT_CURLY34=(Token)input.LT(1);
- match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_pattern871); if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, literal32.getTree());
+ RIGHT_CURLY33=(Token)input.LT(1);
+ match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_pattern967); if (failed) return retval;
if ( backtracking==0 ) {
- RIGHT_CURLY34_tree = (Object)adaptor.create(RIGHT_CURLY34);
- adaptor.addChild(root_0, RIGHT_CURLY34_tree);
+ RIGHT_CURLY33_tree = (Object)adaptor.create(RIGHT_CURLY33);
+ adaptor.addChild(root_0, RIGHT_CURLY33_tree);
}
}
break;
case 3 :
- // DSLMap.g:186:13: LEFT_SQUARE pattern RIGHT_SQUARE
+ // DSLMap.g:194:13: LEFT_SQUARE pattern RIGHT_SQUARE
{
- LEFT_SQUARE35=(Token)input.LT(1);
- match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_pattern885); if (failed) return retval;
+ LEFT_SQUARE34=(Token)input.LT(1);
+ match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_pattern981); if (failed) return retval;
if ( backtracking==0 ) {
- LEFT_SQUARE35_tree = (Object)adaptor.create(LEFT_SQUARE35);
- adaptor.addChild(root_0, LEFT_SQUARE35_tree);
+ LEFT_SQUARE34_tree = (Object)adaptor.create(LEFT_SQUARE34);
+ adaptor.addChild(root_0, LEFT_SQUARE34_tree);
}
- pushFollow(FOLLOW_pattern_in_pattern887);
- pattern36=pattern();
+ pushFollow(FOLLOW_pattern_in_pattern983);
+ pattern35=pattern();
_fsp--;
if (failed) return retval;
- if ( backtracking==0 ) adaptor.addChild(root_0, pattern36.getTree());
- RIGHT_SQUARE37=(Token)input.LT(1);
- match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_pattern889); if (failed) return retval;
+ if ( backtracking==0 ) adaptor.addChild(root_0, pattern35.getTree());
+ RIGHT_SQUARE36=(Token)input.LT(1);
+ match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_pattern985); if (failed) return retval;
if ( backtracking==0 ) {
- RIGHT_SQUARE37_tree = (Object)adaptor.create(RIGHT_SQUARE37);
- adaptor.addChild(root_0, RIGHT_SQUARE37_tree);
+ RIGHT_SQUARE36_tree = (Object)adaptor.create(RIGHT_SQUARE36);
+ adaptor.addChild(root_0, RIGHT_SQUARE36_tree);
}
}
@@ -2004,7 +2081,7 @@
};
// $ANTLR start variable_reference
- // DSLMap.g:191:1: variable_reference : lc= LEFT_CURLY name= LITERAL RIGHT_CURLY -> {hasSpace}? VT_SPACE ^( VT_VAR_REF $name) -> ^( VT_VAR_REF $name) ;
+ // DSLMap.g:199:1: variable_reference : lc= LEFT_CURLY name= LITERAL rc= RIGHT_CURLY -> {hasSpaceBefore && hasSpaceAfter}? VT_SPACE ^( VT_VAR_REF $name) VT_SPACE -> {hasSpaceBefore && !hasSpaceAfter}? VT_SPACE ^( VT_VAR_REF $name) -> {!hasSpaceBefore && hasSpaceAfter}? ^( VT_VAR_REF $name) VT_SPACE -> ^( VT_VAR_REF $name) ;
public final variable_reference_return variable_reference() throws RecognitionException {
variable_reference_return retval = new variable_reference_return();
retval.start = input.LT(1);
@@ -2013,40 +2090,44 @@
Token lc=null;
Token name=null;
- Token RIGHT_CURLY38=null;
+ Token rc=null;
Object lc_tree=null;
Object name_tree=null;
- Object RIGHT_CURLY38_tree=null;
+ Object rc_tree=null;
RewriteRuleTokenStream stream_RIGHT_CURLY=new RewriteRuleTokenStream(adaptor,"token RIGHT_CURLY");
RewriteRuleTokenStream stream_LITERAL=new RewriteRuleTokenStream(adaptor,"token LITERAL");
RewriteRuleTokenStream stream_LEFT_CURLY=new RewriteRuleTokenStream(adaptor,"token LEFT_CURLY");
- boolean hasSpace = false;
+ boolean hasSpaceBefore = false;
+ boolean hasSpaceAfter = false;
try {
- // DSLMap.g:195:2: (lc= LEFT_CURLY name= LITERAL RIGHT_CURLY -> {hasSpace}? VT_SPACE ^( VT_VAR_REF $name) -> ^( VT_VAR_REF $name) )
- // DSLMap.g:195:4: lc= LEFT_CURLY name= LITERAL RIGHT_CURLY
+ // DSLMap.g:204:2: (lc= LEFT_CURLY name= LITERAL rc= RIGHT_CURLY -> {hasSpaceBefore && hasSpaceAfter}? VT_SPACE ^( VT_VAR_REF $name) VT_SPACE -> {hasSpaceBefore && !hasSpaceAfter}? VT_SPACE ^( VT_VAR_REF $name) -> {!hasSpaceBefore && hasSpaceAfter}? ^( VT_VAR_REF $name) VT_SPACE -> ^( VT_VAR_REF $name) )
+ // DSLMap.g:204:4: lc= LEFT_CURLY name= LITERAL rc= RIGHT_CURLY
{
lc=(Token)input.LT(1);
- match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_variable_reference924); if (failed) return retval;
+ match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_variable_reference1020); if (failed) return retval;
if ( backtracking==0 ) stream_LEFT_CURLY.add(lc);
if ( backtracking==0 ) {
- if( ((CommonToken)input.LT(-2)).getStopIndex() < ((CommonToken)lc).getStartIndex() -1 ) hasSpace = true;
+ if( ((CommonToken)input.LT(-2)).getStopIndex() < ((CommonToken)lc).getStartIndex() -1 ) hasSpaceBefore = true;
}
name=(Token)input.LT(1);
- match(input,LITERAL,FOLLOW_LITERAL_in_variable_reference932); if (failed) return retval;
+ match(input,LITERAL,FOLLOW_LITERAL_in_variable_reference1028); if (failed) return retval;
if ( backtracking==0 ) stream_LITERAL.add(name);
- RIGHT_CURLY38=(Token)input.LT(1);
- match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_variable_reference934); if (failed) return retval;
- if ( backtracking==0 ) stream_RIGHT_CURLY.add(RIGHT_CURLY38);
+ rc=(Token)input.LT(1);
+ match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_variable_reference1032); if (failed) return retval;
+ if ( backtracking==0 ) stream_RIGHT_CURLY.add(rc);
+ if ( backtracking==0 ) {
+ if(((CommonToken)rc).getStopIndex() < ((CommonToken)input.LT(1)).getStartIndex() - 1) hasSpaceAfter = true;
+ }
// AST REWRITE
- // elements: name, name
+ // elements: name, name, name, name
// token labels: name
// rule labels: retval
// token list labels:
@@ -2057,10 +2138,10 @@
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
- // 197:2: -> {hasSpace}? VT_SPACE ^( VT_VAR_REF $name)
- if (hasSpace) {
+ // 207:2: -> {hasSpaceBefore && hasSpaceAfter}? VT_SPACE ^( VT_VAR_REF $name) VT_SPACE
+ if (hasSpaceBefore && hasSpaceAfter) {
adaptor.addChild(root_0, adaptor.create(VT_SPACE, "VT_SPACE"));
- // DSLMap.g:197:26: ^( VT_VAR_REF $name)
+ // DSLMap.g:207:49: ^( VT_VAR_REF $name)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_VAR_REF, "VT_VAR_REF"), root_1);
@@ -2069,11 +2150,40 @@
adaptor.addChild(root_0, root_1);
}
+ adaptor.addChild(root_0, adaptor.create(VT_SPACE, "VT_SPACE"));
}
- else // 198:2: -> ^( VT_VAR_REF $name)
+ else // 208:2: -> {hasSpaceBefore && !hasSpaceAfter}? VT_SPACE ^( VT_VAR_REF $name)
+ if (hasSpaceBefore && !hasSpaceAfter) {
+ adaptor.addChild(root_0, adaptor.create(VT_SPACE, "VT_SPACE"));
+ // DSLMap.g:208:50: ^( VT_VAR_REF $name)
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_VAR_REF, "VT_VAR_REF"), root_1);
+
+ adaptor.addChild(root_1, stream_name.next());
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
+ else // 209:2: -> {!hasSpaceBefore && hasSpaceAfter}? ^( VT_VAR_REF $name) VT_SPACE
+ if (!hasSpaceBefore && hasSpaceAfter) {
+ // DSLMap.g:209:42: ^( VT_VAR_REF $name)
+ {
+ Object root_1 = (Object)adaptor.nil();
+ root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_VAR_REF, "VT_VAR_REF"), root_1);
+
+ adaptor.addChild(root_1, stream_name.next());
+
+ adaptor.addChild(root_0, root_1);
+ }
+ adaptor.addChild(root_0, adaptor.create(VT_SPACE, "VT_SPACE"));
+
+ }
+ else // 210:2: -> ^( VT_VAR_REF $name)
{
- // DSLMap.g:198:6: ^( VT_VAR_REF $name)
+ // DSLMap.g:210:6: ^( VT_VAR_REF $name)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_VAR_REF, "VT_VAR_REF"), root_1);
@@ -2112,7 +2222,7 @@
};
// $ANTLR start variable_reference2
- // DSLMap.g:202:1: variable_reference2 : LEFT_CURLY name= LITERAL RIGHT_CURLY -> ^( VT_VAR_REF $name) ;
+ // DSLMap.g:214:1: variable_reference2 : LEFT_CURLY name= LITERAL RIGHT_CURLY -> ^( VT_VAR_REF $name) ;
public final variable_reference2_return variable_reference2() throws RecognitionException {
variable_reference2_return retval = new variable_reference2_return();
retval.start = input.LT(1);
@@ -2120,31 +2230,31 @@
Object root_0 = null;
Token name=null;
- Token LEFT_CURLY39=null;
- Token RIGHT_CURLY40=null;
+ Token LEFT_CURLY37=null;
+ Token RIGHT_CURLY38=null;
Object name_tree=null;
- Object LEFT_CURLY39_tree=null;
- Object RIGHT_CURLY40_tree=null;
+ Object LEFT_CURLY37_tree=null;
+ Object RIGHT_CURLY38_tree=null;
RewriteRuleTokenStream stream_RIGHT_CURLY=new RewriteRuleTokenStream(adaptor,"token RIGHT_CURLY");
RewriteRuleTokenStream stream_LITERAL=new RewriteRuleTokenStream(adaptor,"token LITERAL");
RewriteRuleTokenStream stream_LEFT_CURLY=new RewriteRuleTokenStream(adaptor,"token LEFT_CURLY");
try {
- // DSLMap.g:203:2: ( LEFT_CURLY name= LITERAL RIGHT_CURLY -> ^( VT_VAR_REF $name) )
- // DSLMap.g:203:4: LEFT_CURLY name= LITERAL RIGHT_CURLY
+ // DSLMap.g:215:2: ( LEFT_CURLY name= LITERAL RIGHT_CURLY -> ^( VT_VAR_REF $name) )
+ // DSLMap.g:215:4: LEFT_CURLY name= LITERAL RIGHT_CURLY
{
- LEFT_CURLY39=(Token)input.LT(1);
- match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_variable_reference2975); if (failed) return retval;
- if ( backtracking==0 ) stream_LEFT_CURLY.add(LEFT_CURLY39);
+ LEFT_CURLY37=(Token)input.LT(1);
+ match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_variable_reference21110); if (failed) return retval;
+ if ( backtracking==0 ) stream_LEFT_CURLY.add(LEFT_CURLY37);
name=(Token)input.LT(1);
- match(input,LITERAL,FOLLOW_LITERAL_in_variable_reference2979); if (failed) return retval;
+ match(input,LITERAL,FOLLOW_LITERAL_in_variable_reference21114); if (failed) return retval;
if ( backtracking==0 ) stream_LITERAL.add(name);
- RIGHT_CURLY40=(Token)input.LT(1);
- match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_variable_reference2981); if (failed) return retval;
- if ( backtracking==0 ) stream_RIGHT_CURLY.add(RIGHT_CURLY40);
+ RIGHT_CURLY38=(Token)input.LT(1);
+ match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_variable_reference21116); if (failed) return retval;
+ if ( backtracking==0 ) stream_RIGHT_CURLY.add(RIGHT_CURLY38);
// AST REWRITE
@@ -2159,9 +2269,9 @@
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
- // 204:2: -> ^( VT_VAR_REF $name)
+ // 216:2: -> ^( VT_VAR_REF $name)
{
- // DSLMap.g:204:5: ^( VT_VAR_REF $name)
+ // DSLMap.g:216:5: ^( VT_VAR_REF $name)
{
Object root_1 = (Object)adaptor.nil();
root_1 = (Object)adaptor.becomeRoot(adaptor.create(VT_VAR_REF, "VT_VAR_REF"), root_1);
@@ -2200,7 +2310,7 @@
};
// $ANTLR start condition_key
- // DSLMap.g:208:1: condition_key : {...}?value= LITERAL -> VT_CONDITION[$value] ;
+ // DSLMap.g:220:1: condition_key : {...}?value= LITERAL -> VT_CONDITION[$value] ;
public final condition_key_return condition_key() throws RecognitionException {
condition_key_return retval = new condition_key_return();
retval.start = input.LT(1);
@@ -2213,15 +2323,15 @@
RewriteRuleTokenStream stream_LITERAL=new RewriteRuleTokenStream(adaptor,"token LITERAL");
try {
- // DSLMap.g:209:2: ({...}?value= LITERAL -> VT_CONDITION[$value] )
- // DSLMap.g:209:4: {...}?value= LITERAL
+ // DSLMap.g:221:2: ({...}?value= LITERAL -> VT_CONDITION[$value] )
+ // DSLMap.g:221:4: {...}?value= LITERAL
{
if ( !(validateIdentifierKey("condition")||validateIdentifierKey("when")) ) {
if (backtracking>0) {failed=true; return retval;}
throw new FailedPredicateException(input, "condition_key", "validateIdentifierKey(\"condition\")||validateIdentifierKey(\"when\")");
}
value=(Token)input.LT(1);
- match(input,LITERAL,FOLLOW_LITERAL_in_condition_key1010); if (failed) return retval;
+ match(input,LITERAL,FOLLOW_LITERAL_in_condition_key1145); if (failed) return retval;
if ( backtracking==0 ) stream_LITERAL.add(value);
@@ -2236,7 +2346,7 @@
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
- // 210:2: -> VT_CONDITION[$value]
+ // 222:2: -> VT_CONDITION[$value]
{
adaptor.addChild(root_0, adaptor.create(VT_CONDITION, value));
@@ -2269,7 +2379,7 @@
};
// $ANTLR start consequence_key
- // DSLMap.g:213:1: consequence_key : {...}?value= LITERAL -> VT_CONSEQUENCE[$value] ;
+ // DSLMap.g:225:1: consequence_key : {...}?value= LITERAL -> VT_CONSEQUENCE[$value] ;
public final consequence_key_return consequence_key() throws RecognitionException {
consequence_key_return retval = new consequence_key_return();
retval.start = input.LT(1);
@@ -2282,15 +2392,15 @@
RewriteRuleTokenStream stream_LITERAL=new RewriteRuleTokenStream(adaptor,"token LITERAL");
try {
- // DSLMap.g:214:2: ({...}?value= LITERAL -> VT_CONSEQUENCE[$value] )
- // DSLMap.g:214:4: {...}?value= LITERAL
+ // DSLMap.g:226:2: ({...}?value= LITERAL -> VT_CONSEQUENCE[$value] )
+ // DSLMap.g:226:4: {...}?value= LITERAL
{
if ( !(validateIdentifierKey("consequence")||validateIdentifierKey("then")) ) {
if (backtracking>0) {failed=true; return retval;}
throw new FailedPredicateException(input, "consequence_key", "validateIdentifierKey(\"consequence\")||validateIdentifierKey(\"then\")");
}
value=(Token)input.LT(1);
- match(input,LITERAL,FOLLOW_LITERAL_in_consequence_key1033); if (failed) return retval;
+ match(input,LITERAL,FOLLOW_LITERAL_in_consequence_key1168); if (failed) return retval;
if ( backtracking==0 ) stream_LITERAL.add(value);
@@ -2305,7 +2415,7 @@
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
- // 215:2: -> VT_CONSEQUENCE[$value]
+ // 227:2: -> VT_CONSEQUENCE[$value]
{
adaptor.addChild(root_0, adaptor.create(VT_CONSEQUENCE, value));
@@ -2338,7 +2448,7 @@
};
// $ANTLR start keyword_key
- // DSLMap.g:218:1: keyword_key : {...}?value= LITERAL -> VT_KEYWORD[$value] ;
+ // DSLMap.g:230:1: keyword_key : {...}?value= LITERAL -> VT_KEYWORD[$value] ;
public final keyword_key_return keyword_key() throws RecognitionException {
keyword_key_return retval = new keyword_key_return();
retval.start = input.LT(1);
@@ -2351,15 +2461,15 @@
RewriteRuleTokenStream stream_LITERAL=new RewriteRuleTokenStream(adaptor,"token LITERAL");
try {
- // DSLMap.g:219:2: ({...}?value= LITERAL -> VT_KEYWORD[$value] )
- // DSLMap.g:219:4: {...}?value= LITERAL
+ // DSLMap.g:231:2: ({...}?value= LITERAL -> VT_KEYWORD[$value] )
+ // DSLMap.g:231:4: {...}?value= LITERAL
{
if ( !(validateIdentifierKey("keyword")) ) {
if (backtracking>0) {failed=true; return retval;}
throw new FailedPredicateException(input, "keyword_key", "validateIdentifierKey(\"keyword\")");
}
value=(Token)input.LT(1);
- match(input,LITERAL,FOLLOW_LITERAL_in_keyword_key1056); if (failed) return retval;
+ match(input,LITERAL,FOLLOW_LITERAL_in_keyword_key1191); if (failed) return retval;
if ( backtracking==0 ) stream_LITERAL.add(value);
@@ -2374,7 +2484,7 @@
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
- // 220:2: -> VT_KEYWORD[$value]
+ // 232:2: -> VT_KEYWORD[$value]
{
adaptor.addChild(root_0, adaptor.create(VT_KEYWORD, value));
@@ -2407,7 +2517,7 @@
};
// $ANTLR start any_key
- // DSLMap.g:223:1: any_key : {...}?value= LITERAL -> VT_ANY[$value] ;
+ // DSLMap.g:235:1: any_key : {...}?value= LITERAL -> VT_ANY[$value] ;
public final any_key_return any_key() throws RecognitionException {
any_key_return retval = new any_key_return();
retval.start = input.LT(1);
@@ -2420,15 +2530,15 @@
RewriteRuleTokenStream stream_LITERAL=new RewriteRuleTokenStream(adaptor,"token LITERAL");
try {
- // DSLMap.g:224:2: ({...}?value= LITERAL -> VT_ANY[$value] )
- // DSLMap.g:224:4: {...}?value= LITERAL
+ // DSLMap.g:236:2: ({...}?value= LITERAL -> VT_ANY[$value] )
+ // DSLMap.g:236:4: {...}?value= LITERAL
{
if ( !(validateIdentifierKey("*")) ) {
if (backtracking>0) {failed=true; return retval;}
throw new FailedPredicateException(input, "any_key", "validateIdentifierKey(\"*\")");
}
value=(Token)input.LT(1);
- match(input,LITERAL,FOLLOW_LITERAL_in_any_key1079); if (failed) return retval;
+ match(input,LITERAL,FOLLOW_LITERAL_in_any_key1214); if (failed) return retval;
if ( backtracking==0 ) stream_LITERAL.add(value);
@@ -2443,7 +2553,7 @@
RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);
root_0 = (Object)adaptor.nil();
- // 225:2: -> VT_ANY[$value]
+ // 237:2: -> VT_ANY[$value]
{
adaptor.addChild(root_0, adaptor.create(VT_ANY, value));
@@ -2553,10 +2663,10 @@
// $ANTLR start synpred21
public final void synpred21_fragment() throws RecognitionException {
- // DSLMap.g:184:13: ( literal )
- // DSLMap.g:184:13: literal
+ // DSLMap.g:192:13: ( literal )
+ // DSLMap.g:192:13: literal
{
- pushFollow(FOLLOW_literal_in_synpred21853);
+ pushFollow(FOLLOW_literal_in_synpred21949);
literal();
_fsp--;
if (failed) return ;
@@ -2567,15 +2677,15 @@
// $ANTLR start synpred23
public final void synpred23_fragment() throws RecognitionException {
- // DSLMap.g:186:13: ( LEFT_SQUARE pattern RIGHT_SQUARE )
- // DSLMap.g:186:13: LEFT_SQUARE pattern RIGHT_SQUARE
+ // DSLMap.g:194:13: ( LEFT_SQUARE pattern RIGHT_SQUARE )
+ // DSLMap.g:194:13: LEFT_SQUARE pattern RIGHT_SQUARE
{
- match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_synpred23885); if (failed) return ;
- pushFollow(FOLLOW_pattern_in_synpred23887);
+ match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_synpred23981); if (failed) return ;
+ pushFollow(FOLLOW_pattern_in_synpred23983);
pattern();
_fsp--;
if (failed) return ;
- match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_synpred23889); if (failed) return ;
+ match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_synpred23985); if (failed) return ;
}
}
@@ -2732,38 +2842,38 @@
public static final BitSet FOLLOW_LITERAL_in_variable_definition686 = new BitSet(new long[]{0x0000000014000000L});
public static final BitSet FOLLOW_COLON_in_variable_definition690 = new BitSet(new long[]{0x000000000F800000L});
public static final BitSet FOLLOW_pattern_in_variable_definition694 = new BitSet(new long[]{0x0000000010000000L});
- public static final BitSet FOLLOW_RIGHT_CURLY_in_variable_definition701 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LEFT_CURLY_in_variable_definition2783 = new BitSet(new long[]{0x0000000002000000L});
- public static final BitSet FOLLOW_LITERAL_in_variable_definition2787 = new BitSet(new long[]{0x0000000014000000L});
- public static final BitSet FOLLOW_COLON_in_variable_definition2791 = new BitSet(new long[]{0x000000000F800000L});
- public static final BitSet FOLLOW_pattern_in_variable_definition2795 = new BitSet(new long[]{0x0000000010000000L});
- public static final BitSet FOLLOW_RIGHT_CURLY_in_variable_definition2802 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_literal_in_pattern853 = new BitSet(new long[]{0x000000000F800002L});
- public static final BitSet FOLLOW_LEFT_CURLY_in_pattern867 = new BitSet(new long[]{0x0000000007800000L});
- public static final BitSet FOLLOW_literal_in_pattern869 = new BitSet(new long[]{0x0000000010000000L});
- public static final BitSet FOLLOW_RIGHT_CURLY_in_pattern871 = new BitSet(new long[]{0x000000000F800002L});
- public static final BitSet FOLLOW_LEFT_SQUARE_in_pattern885 = new BitSet(new long[]{0x000000000F800000L});
- public static final BitSet FOLLOW_pattern_in_pattern887 = new BitSet(new long[]{0x0000000001000000L});
- public static final BitSet FOLLOW_RIGHT_SQUARE_in_pattern889 = new BitSet(new long[]{0x000000000F800002L});
- public static final BitSet FOLLOW_LEFT_CURLY_in_variable_reference924 = new BitSet(new long[]{0x0000000002000000L});
- public static final BitSet FOLLOW_LITERAL_in_variable_reference932 = new BitSet(new long[]{0x0000000010000000L});
- public static final BitSet FOLLOW_RIGHT_CURLY_in_variable_reference934 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LEFT_CURLY_in_variable_reference2975 = new BitSet(new long[]{0x0000000002000000L});
- public static final BitSet FOLLOW_LITERAL_in_variable_reference2979 = new BitSet(new long[]{0x0000000010000000L});
- public static final BitSet FOLLOW_RIGHT_CURLY_in_variable_reference2981 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LITERAL_in_condition_key1010 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LITERAL_in_consequence_key1033 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LITERAL_in_keyword_key1056 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LITERAL_in_any_key1079 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RIGHT_CURLY_in_variable_definition703 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_CURLY_in_variable_definition2879 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_LITERAL_in_variable_definition2883 = new BitSet(new long[]{0x0000000014000000L});
+ public static final BitSet FOLLOW_COLON_in_variable_definition2887 = new BitSet(new long[]{0x000000000F800000L});
+ public static final BitSet FOLLOW_pattern_in_variable_definition2891 = new BitSet(new long[]{0x0000000010000000L});
+ public static final BitSet FOLLOW_RIGHT_CURLY_in_variable_definition2898 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_literal_in_pattern949 = new BitSet(new long[]{0x000000000F800002L});
+ public static final BitSet FOLLOW_LEFT_CURLY_in_pattern963 = new BitSet(new long[]{0x0000000007800000L});
+ public static final BitSet FOLLOW_literal_in_pattern965 = new BitSet(new long[]{0x0000000010000000L});
+ public static final BitSet FOLLOW_RIGHT_CURLY_in_pattern967 = new BitSet(new long[]{0x000000000F800002L});
+ public static final BitSet FOLLOW_LEFT_SQUARE_in_pattern981 = new BitSet(new long[]{0x000000000F800000L});
+ public static final BitSet FOLLOW_pattern_in_pattern983 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_RIGHT_SQUARE_in_pattern985 = new BitSet(new long[]{0x000000000F800002L});
+ public static final BitSet FOLLOW_LEFT_CURLY_in_variable_reference1020 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_LITERAL_in_variable_reference1028 = new BitSet(new long[]{0x0000000010000000L});
+ public static final BitSet FOLLOW_RIGHT_CURLY_in_variable_reference1032 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_CURLY_in_variable_reference21110 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_LITERAL_in_variable_reference21114 = new BitSet(new long[]{0x0000000010000000L});
+ public static final BitSet FOLLOW_RIGHT_CURLY_in_variable_reference21116 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LITERAL_in_condition_key1145 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LITERAL_in_consequence_key1168 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LITERAL_in_keyword_key1191 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LITERAL_in_any_key1214 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_condition_key_in_synpred5390 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_consequence_key_in_synpred6399 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_keyword_key_in_synpred7407 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_literal_in_synpred11547 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_literal_in_synpred14622 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EQUALS_in_synpred15624 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_literal_in_synpred21853 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LEFT_SQUARE_in_synpred23885 = new BitSet(new long[]{0x000000000F800000L});
- public static final BitSet FOLLOW_pattern_in_synpred23887 = new BitSet(new long[]{0x0000000001000000L});
- public static final BitSet FOLLOW_RIGHT_SQUARE_in_synpred23889 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_literal_in_synpred21949 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_SQUARE_in_synpred23981 = new BitSet(new long[]{0x000000000F800000L});
+ public static final BitSet FOLLOW_pattern_in_synpred23983 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_RIGHT_SQUARE_in_synpred23985 = new BitSet(new long[]{0x0000000000000002L});
}
\ No newline at end of file
Modified: labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/DSLMapWalker.java
===================================================================
--- labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/DSLMapWalker.java 2008-05-20 20:45:04 UTC (rev 20086)
+++ labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/DSLMapWalker.java 2008-05-21 01:05:57 UTC (rev 20087)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 DSLMapWalker.g 2008-05-19 16:06:18
+// $ANTLR 3.0.1 DSLMapWalker.g 2008-05-20 17:54:41
package org.drools.lang.dsl;
@@ -228,7 +228,7 @@
protected static class entry_scope {
Map variables;
- DefaultDSLMappingEntry retval;
+ AntlrDSLMappingEntry retval;
int counter;
StringBuffer keybuffer;
StringBuffer valuebuffer;
@@ -243,7 +243,7 @@
DSLMappingEntry mappingEntry = null;
- ((entry_scope)entry_stack.peek()).retval = new DefaultDSLMappingEntry() ;
+ ((entry_scope)entry_stack.peek()).retval = new AntlrDSLMappingEntry() ;
((entry_scope)entry_stack.peek()).variables = new HashMap();
((entry_scope)entry_stack.peek()).keybuffer = new StringBuffer();
((entry_scope)entry_stack.peek()).valuebuffer = new StringBuffer();
@@ -734,7 +734,7 @@
{
match(input,VT_SPACE,FOLLOW_VT_SPACE_in_value_sentence301);
- ((entry_scope)entry_stack.peek()).valuebuffer.append("\\s+");
+ ((entry_scope)entry_stack.peek()).valuebuffer.append(" ");
}
@@ -857,7 +857,7 @@
match(input, Token.UP, null);
System.out.println("varref is " + varref.getText() + " and points to " + lit.getText());
- ((entry_scope)entry_stack.peek()).valuebuffer.append("\\$" + ((entry_scope)entry_stack.peek()).variables.get(lit.getText()));
+ ((entry_scope)entry_stack.peek()).valuebuffer.append("$" + ((entry_scope)entry_stack.peek()).variables.get(lit.getText()));
}
Modified: labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/DefaultDSLMappingEntry.java
===================================================================
--- labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/DefaultDSLMappingEntry.java 2008-05-20 20:45:04 UTC (rev 20086)
+++ labs/jbossrules/branches/mattgeis/drools-compiler/src/main/java/org/drools/lang/dsl/DefaultDSLMappingEntry.java 2008-05-21 01:05:57 UTC (rev 20087)
@@ -19,7 +19,6 @@
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
-import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -29,20 +28,10 @@
*
* @author etirelli
*/
-public class DefaultDSLMappingEntry
+public class DefaultDSLMappingEntry extends AbstractDSLMappingEntry
implements
DSLMappingEntry {
- private Section section;
- private MetaData metadata;
- private String key;
- private String value;
-
- private Map variables = Collections.EMPTY_MAP;
-
- private Pattern keyPattern;
- private String valuePattern;
-
// following pattern is used to extract all variables names and positions from a mapping.
// Example: for the following String:
//
@@ -51,7 +40,7 @@
// it will return variables:
// This, pattern, easy, say
//
- static final Pattern VAR_FINDER = Pattern.compile( "(^|[^\\\\])\\{([(\\\\\\{)|[^\\{]]*?)\\}",
+ private static final Pattern VAR_FINDER = Pattern.compile( "(^|[^\\\\])\\{([(\\\\\\{)|[^\\{]]*?)\\}",
Pattern.MULTILINE | Pattern.DOTALL );
// following pattern is used to find all the non-escaped parenthesis in the input key
@@ -76,34 +65,6 @@
}
/**
- * @inheritDoc
- */
- public Section getSection() {
- return this.section;
- }
-
- /**
- * @inheritDoc
- */
- public DSLMappingEntry.MetaData getMetaData() {
- return this.metadata;
- }
-
- /**
- * @inheritDoc
- */
- public String getMappingKey() {
- return this.key;
- }
-
- /**
- * @inheritDoc
- */
- public String getMappingValue() {
- return this.value;
- }
-
- /**
* @param key the key to set
*/
public void setMappingKey(String key) {
@@ -177,13 +138,6 @@
}
/**
- * @param section the section to set
- */
- public void setSection(final Section section) {
- this.section = section;
- }
-
- /**
* @param value the value to set
*/
public void setMappingValue(final String value) {
@@ -204,103 +158,4 @@
}
}
- /**
- * @param metadata the metadata to set
- */
- public void setMetaData(final MetaData metadata) {
- this.metadata = metadata;
- }
-
- /**
- * @return the keyPattern
- */
- public Pattern getKeyPattern() {
- return this.keyPattern;
- }
-
- /**
- * @return the valuePattern
- */
- public String getValuePattern() {
- return this.valuePattern;
- }
-
- /**
- * @return the variables
- */
- public Map getVariables() {
- return this.variables;
- }
-
- public String toPatternString() {
- return this.section + "[" + this.metadata + "]" + this.keyPattern.pattern() + "=" + this.valuePattern;
- }
-
- public String toString() {
- return this.section + "[" + this.metadata + "]" + this.key + "=" + this.value;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- final int PRIME = 31;
- int result = 1;
- result = PRIME * result + ((this.key == null) ? 0 : this.key.hashCode());
- result = PRIME * result + ((this.metadata == null) ? 0 : this.metadata.hashCode());
- result = PRIME * result + ((this.section == null) ? 0 : this.section.hashCode());
- result = PRIME * result + ((this.value == null) ? 0 : this.value.hashCode());
- return result;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(final Object obj) {
- if ( this == obj ) {
- return true;
- }
- if ( obj == null ) {
- return false;
- }
- if ( getClass() != obj.getClass() ) {
- return false;
- }
- final DefaultDSLMappingEntry other = (DefaultDSLMappingEntry) obj;
- if ( this.key == null ) {
- if ( other.key != null ) {
- return false;
- }
- } else if ( !this.key.equals( other.key ) ) {
- return false;
- }
- if ( this.metadata == null ) {
- if ( other.metadata != null ) {
- return false;
- }
- } else if ( !this.metadata.equals( other.metadata ) ) {
- return false;
- }
- if ( this.section == null ) {
- if ( other.section != null ) {
- return false;
- }
- } else if ( !this.section.equals( other.section ) ) {
- return false;
- }
- if ( this.value == null ) {
- if ( other.value != null ) {
- return false;
- }
- } else if ( !this.value.equals( other.value ) ) {
- return false;
- }
- return true;
- }
-
- public List getErrors() {
- // TODO Need to implement validation here
- return Collections.EMPTY_LIST;
- }
-
}
Modified: labs/jbossrules/branches/mattgeis/drools-compiler/src/test/java/org/drools/lang/dsl/DSLTokenizedMappingFileTest.java
===================================================================
--- labs/jbossrules/branches/mattgeis/drools-compiler/src/test/java/org/drools/lang/dsl/DSLTokenizedMappingFileTest.java 2008-05-20 20:45:04 UTC (rev 20086)
+++ labs/jbossrules/branches/mattgeis/drools-compiler/src/test/java/org/drools/lang/dsl/DSLTokenizedMappingFileTest.java 2008-05-21 01:05:57 UTC (rev 20087)
@@ -62,10 +62,11 @@
entry.getSection() );
assertEquals( DSLMappingEntry.EMPTY_METADATA,
entry.getMetaData() );
- assertEquals( "ATTRIBUTE \"{attr}\" IS IN [{list}]",
- entry.getMappingKey() );
- assertEquals( "Attribute( {attr} in ({list}) )",
- entry.getMappingValue() );
+ assertEquals( "(\\W|^)ATTRIBUTE \"(.*?)\" IS IN [(.*?)](\\W|$)",
+ entry.getKeyPattern().toString() );
+ //Attribute( {attr} in ({list}) )
+ assertEquals( "Attribute(\\s+\\$1\\s+in (\\$2) )",
+ entry.getValuePattern() );
} catch ( final IOException e ) {
e.printStackTrace();
@@ -95,10 +96,12 @@
entry.getSection() );
assertEquals( DSLMappingEntry.EMPTY_METADATA,
entry.getMetaData() );
- assertEquals( "ATTRIBUTE \"{attr}\" IS IN \\[{list}\\]",
- entry.getMappingKey() );
- assertEquals( "Attribute( {attr} in ({list}) )",
- entry.getMappingValue() );
+
+ assertEquals( "(\\W|^)ATTRIBUTE \"(.*?)\" IS IN \\[(.*?)\\](\\W|$)",
+ entry.getKeyPattern().toString() );
+ //Attribute( {attr} in ({list}) )
+ assertEquals( "Attribute(\\s+\\$1\\s+in (\\$2) )",
+ entry.getValuePattern() );
} catch ( final IOException e ) {
e.printStackTrace();
@@ -108,9 +111,9 @@
}
public void testParseFileWithEscapes() {
- String file = "[then]TEST=System.out.println(\"DO_SOMETHING\");\n" +
- "[when]code {code1} occurs and sum of all digit not equal \\( {code2} \\+ {code3} \\)=AAAA( cd1 == {code1}, cd2 != ( {code2} + {code3} ))\n" +
- "[when]code {code1} occurs=BBBB\n";
+ String file = "[then][]TEST=System.out.println(\"DO_SOMETHING\");\n" +
+ "[when][]code {code1} occurs and sum of all digit not equal \\( {code2} \\+ {code3} \\)=AAAA( cd1 == {code1}, cd2 != ( {code2} + {code3} ))\n" +
+ "[when][]code {code1} occurs=BBBB\n";
try {
final Reader reader = new StringReader( file );
this.file = new DSLTokenizedMappingFile();
More information about the jboss-svn-commits
mailing list