aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--WebContent/VAADIN/themes/base/base.scss2
-rw-r--r--WebContent/VAADIN/themes/base/inlinedatefield/inlinedatefield.scss5
-rw-r--r--WebContent/VAADIN/themes/liferay/datefield/datefield.scss76
-rw-r--r--WebContent/VAADIN/themes/liferay/inlinedatefield/inlinedatefield.scss8
-rw-r--r--WebContent/VAADIN/themes/liferay/liferay.scss2
-rw-r--r--WebContent/VAADIN/themes/reindeer/inlinedatefield/inlinedatefield.scss8
-rw-r--r--WebContent/VAADIN/themes/reindeer/reindeer.scss2
-rw-r--r--WebContent/VAADIN/themes/runo/datefield/datefield.scss78
-rw-r--r--WebContent/VAADIN/themes/runo/inlinedatefield/inlinedatefield.scss8
-rw-r--r--WebContent/VAADIN/themes/runo/runo.scss2
-rw-r--r--client/src/com/vaadin/client/ui/datefield/AbstractDateFieldConnector.java4
-rw-r--r--client/src/com/vaadin/client/ui/datefield/PopupDateFieldConnector.java8
-rw-r--r--client/src/com/vaadin/client/ui/datefield/VCalendarPanel.java71
-rw-r--r--client/src/com/vaadin/client/ui/datefield/VDateField.java2
-rw-r--r--client/src/com/vaadin/client/ui/datefield/VDateFieldCalendar.java5
-rw-r--r--client/src/com/vaadin/client/ui/datefield/VPopupCalendar.java32
-rw-r--r--client/src/com/vaadin/client/ui/datefield/VTextualDate.java25
-rw-r--r--client/src/com/vaadin/client/ui/form/VForm.java27
-rw-r--r--server/src/com/vaadin/navigator/Navigator.java33
-rw-r--r--server/src/com/vaadin/server/AbstractCommunicationManager.java7
-rw-r--r--server/src/com/vaadin/server/ConnectorResourceHandler.java11
-rw-r--r--server/src/com/vaadin/server/GlobalResourceHandler.java4
-rw-r--r--server/src/com/vaadin/server/ResourceReference.java2
-rw-r--r--server/src/com/vaadin/server/ServletPortletHelper.java3
-rw-r--r--server/src/com/vaadin/server/VaadinService.java18
-rw-r--r--server/src/com/vaadin/server/VaadinServiceSession.java20
-rw-r--r--server/src/com/vaadin/ui/AbstractSelect.java9
-rw-r--r--server/src/com/vaadin/ui/UI.java6
-rw-r--r--server/tests/src/com/vaadin/tests/server/component/ui/CustomUIClassLoader.java (renamed from server/tests/src/com/vaadin/tests/server/component/root/CustomUIClassLoader.java)2
-rw-r--r--server/tests/src/com/vaadin/tests/server/component/ui/UIAddRemoveComponents.java65
-rw-r--r--server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java30
-rw-r--r--shared/src/com/vaadin/shared/ApplicationConstants.java4
-rw-r--r--shared/src/com/vaadin/shared/ui/datefield/InlineDateFieldState.java2
-rw-r--r--theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandler.java6
-rw-r--r--theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandlerImpl.java18
-rw-r--r--theme-compiler/src/com/vaadin/sass/parser/LexicalUnitImpl.java18
-rw-r--r--theme-compiler/src/com/vaadin/sass/parser/Parser.java1462
-rw-r--r--theme-compiler/src/com/vaadin/sass/parser/Parser.jj79
-rw-r--r--theme-compiler/src/com/vaadin/sass/parser/ParserConstants.java10
-rw-r--r--theme-compiler/src/com/vaadin/sass/parser/ParserTokenManager.java2025
-rw-r--r--theme-compiler/src/com/vaadin/sass/tree/BlockNode.java4
-rw-r--r--theme-compiler/src/com/vaadin/sass/tree/ListAppendNode.java19
-rw-r--r--theme-compiler/src/com/vaadin/sass/tree/ListContainsNode.java31
-rw-r--r--theme-compiler/src/com/vaadin/sass/tree/ListModifyNode.java99
-rw-r--r--theme-compiler/src/com/vaadin/sass/tree/ListRemoveNode.java127
-rw-r--r--theme-compiler/src/com/vaadin/sass/tree/VariableNode.java32
-rw-r--r--theme-compiler/src/com/vaadin/sass/tree/controldirective/IfNode.java7
-rw-r--r--theme-compiler/src/com/vaadin/sass/visitor/EachVisitor.java2
-rw-r--r--theme-compiler/src/com/vaadin/sass/visitor/IfElseVisitor.java14
-rw-r--r--theme-compiler/src/com/vaadin/sass/visitor/VariableVisitor.java30
-rw-r--r--theme-compiler/tests/resources/basic/reindeer.css4
-rw-r--r--theme-compiler/tests/resources/css/listmodify.css23
-rw-r--r--theme-compiler/tests/resources/scss/functions.scss4
-rw-r--r--theme-compiler/tests/resources/scss/listmodify.scss25
-rw-r--r--theme-compiler/tests/src/com/vaadin/sass/testcases/scss/ListModify.java17
-rw-r--r--uitest/src/com/vaadin/tests/applicationcontext/CloseSession.html90
-rw-r--r--uitest/src/com/vaadin/tests/applicationcontext/CloseSession.java105
-rw-r--r--uitest/src/com/vaadin/tests/components/datefield/DateFieldPrimaryStyleNames.html247
-rw-r--r--uitest/src/com/vaadin/tests/components/datefield/DateFieldPrimaryStyleNames.java42
-rw-r--r--uitest/src/com/vaadin/tests/components/form/FormPrimaryStyleName.html87
-rw-r--r--uitest/src/com/vaadin/tests/components/form/FormPrimaryStyleName.java47
-rw-r--r--uitest/src/com/vaadin/tests/components/tree/TreeIconUpdate.html42
-rw-r--r--uitest/src/com/vaadin/tests/components/tree/TreeIconUpdate.java71
-rw-r--r--uitest/src/com/vaadin/tests/requesthandlers/AppResource404.html24
-rw-r--r--uitest/src/com/vaadin/tests/requesthandlers/AppResource404.java13
65 files changed, 3544 insertions, 1861 deletions
diff --git a/WebContent/VAADIN/themes/base/base.scss b/WebContent/VAADIN/themes/base/base.scss
index 8a126476bc..7e2e20a969 100644
--- a/WebContent/VAADIN/themes/base/base.scss
+++ b/WebContent/VAADIN/themes/base/base.scss
@@ -10,6 +10,7 @@
@import "customcomponent/customcomponent.scss";
@import "customlayout/customlayout.scss";
@import "datefield/datefield.scss";
+@import "inlinedatefield/inlinedatefield.scss";
@import "dragwrapper/dragwrapper.scss";
@import "embedded/embedded.scss";
@import "formlayout/formlayout.scss";
@@ -60,6 +61,7 @@
@include base-customcomponent;
@include base-customlayout;
@include base-datefield;
+ @include base-inline-datefield;
@include base-dragwrapper;
@include base-embedded;
@include base-formlayout;
diff --git a/WebContent/VAADIN/themes/base/inlinedatefield/inlinedatefield.scss b/WebContent/VAADIN/themes/base/inlinedatefield/inlinedatefield.scss
new file mode 100644
index 0000000000..0c42979b6b
--- /dev/null
+++ b/WebContent/VAADIN/themes/base/inlinedatefield/inlinedatefield.scss
@@ -0,0 +1,5 @@
+@mixin base-inline-datefield($name : v-inline-datefield){
+
+ /* FIXME $name should be passed to the the mixing instead of the default. Fix when SASS compiler works. #9821 */
+ @include base-datefield(v-inline-datefield);
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/liferay/datefield/datefield.scss b/WebContent/VAADIN/themes/liferay/datefield/datefield.scss
index 4bfc810b52..ad26907a18 100644
--- a/WebContent/VAADIN/themes/liferay/datefield/datefield.scss
+++ b/WebContent/VAADIN/themes/liferay/datefield/datefield.scss
@@ -1,56 +1,56 @@
-@mixin liferay-datefield {
+@mixin liferay-datefield($name : v-datefield) {
-.v-datefield-popup {
+.#{$name}-popup {
padding: 3px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
-.v-datefield-calendarpanel-header {
+.#{$name}-calendarpanel-header {
height: 28px;
}
-.v-datefield-calendarpanel:focus {
+.#{$name}-calendarpanel:focus {
outline: none;
}
-.v-datefield-calendarpanel-body {
+.#{$name}-calendarpanel-body {
text-align: right;
vertical-align: top;
}
-.v-datefield-popupcalendar .v-datefield-button {
+.#{$name}-popupcalendar .#{$name}-button {
background: transparent url(../common/buttons_sprites.png) no-repeat 0 -48px;
width: 24px;
height: 24px;
border: none;
}
-.v-datefield-popupcalendar .v-datefield-button:hover {
+.#{$name}-popupcalendar .#{$name}-button:hover {
background-position: 0px -72px;
}
-.v-datefield-popupcalendar .v-datefield-button:focus {
+.#{$name}-popupcalendar .#{$name}-button:focus {
background-position: 0px -96px;
}
-.v-datefield-month .v-datefield-calendarpanel-month,
-.v-datefield-day .v-datefield-calendarpanel-month,
-.v-datefield-full .v-datefield-calendarpanel-month {
+.#{$name}-month .#{$name}-calendarpanel-month,
+.#{$name}-day .#{$name}-calendarpanel-month,
+.#{$name}-full .#{$name}-calendarpanel-month {
width: 124px;
}
-.v-datefield-year .v-datefield-calendarpanel-month {
+.#{$name}-year .#{$name}-calendarpanel-month {
width: 35px;
}
-.v-datefield-calendarpanel-month {
+.#{$name}-calendarpanel-month {
background: transparent url(datefield_sprites.png) repeat-x 0 -112px;
font-weight: bold;
}
-span.v-datefield-calendarpanel-month {
+span.#{$name}-calendarpanel-month {
display: block;
text-align: center;
background: transparent;
@@ -58,15 +58,15 @@ span.v-datefield-calendarpanel-month {
padding: 1px 3px 0;
}
-.v-datefield-calendarpanel-prevyear,
-.v-datefield-calendarpanel-nextyear {
+.#{$name}-calendarpanel-prevyear,
+.#{$name}-calendarpanel-nextyear {
width: 22px;
}
-.v-datefield-calendarpanel-prevyear button,
-.v-datefield-calendarpanel-prevmonth button,
-.v-datefield-calendarpanel-nextmonth button,
-.v-datefield-calendarpanel-nextyear button {
+.#{$name}-calendarpanel-prevyear button,
+.#{$name}-calendarpanel-prevmonth button,
+.#{$name}-calendarpanel-nextmonth button,
+.#{$name}-calendarpanel-nextyear button {
width: 22px;
height: 28px;
border: none;
@@ -83,42 +83,42 @@ span.v-datefield-calendarpanel-month {
border-radius: 0;
}
-.v-ie .v-datefield-calendarpanel-prevyear button,
-.v-ie .v-datefield-calendarpanel-nextyear button,
-.v-ie .v-datefield-calendarpanel-prevmonth button,
-.v-ie .v-datefield-calendarpanel-nextmonth button {
+.v-ie .#{$name}-calendarpanel-prevyear button,
+.v-ie .#{$name}-calendarpanel-nextyear button,
+.v-ie .#{$name}-calendarpanel-prevmonth button,
+.v-ie .#{$name}-calendarpanel-nextmonth button {
text-indent: 0;
font-size: 1px;
}
-.v-datefield-calendarpanel-prevmonth button {
+.#{$name}-calendarpanel-prevmonth button {
background-position: 0 -56px;
}
-.v-datefield-calendarpanel-prevmonth {
+.#{$name}-calendarpanel-prevmonth {
background: transparent url(datefield_sprites.png) repeat-x 0 -112px;
}
-.v-datefield-calendarpanel-nextyear button {
+.#{$name}-calendarpanel-nextyear button {
background-position: 0 -28px;
width: 100%;
min-width: 22px;
}
-.v-datefield-calendarpanel-nextmonth button {
+.#{$name}-calendarpanel-nextmonth button {
background-position: 0 -84px;
}
-.v-datefield-calendarpanel-nextmonth {
+.#{$name}-calendarpanel-nextmonth {
background: transparent url(datefield_sprites.png) repeat-x 0 -112px;
}
-.v-datefield-calendarpanel-prevyear button {
+.#{$name}-calendarpanel-prevyear button {
width: 100%;
min-width: 22px;
}
-.v-datefield-calendarpanel-day {
+.#{$name}-calendarpanel-day {
display: block;
width: 22px;
margin: 0 0 3px 3px;
@@ -132,37 +132,37 @@ span.v-datefield-calendarpanel-month {
border-radius: 4px;
}
-.v-datefield-calendarpanel-day-today {
+.#{$name}-calendarpanel-day-today {
font-weight: bold;
}
-.v-datefield-calendarpanel-day-selected {
+.#{$name}-calendarpanel-day-selected {
background: #b5b5b5 url(/html/themes/classic/images/application/state_active_bg.png) repeat-x 0 0;
color: #000;
border-color: #555;
}
-.v-datefield-calendarpanel-day-focused {
+.#{$name}-calendarpanel-day-focused {
outline: 1px dotted #555;
}
-.v-datefield-calendarpanel-weekdays {
+.#{$name}-calendarpanel-weekdays {
text-align: center;
}
-.v-datefield-calendarpanel-weekdays strong {
+.#{$name}-calendarpanel-weekdays strong {
font-weight: normal;
}
-.v-datefield-calendarpanel-weeknumber {
+.#{$name}-calendarpanel-weeknumber {
display: block;
border: none;
padding: 2px 0 2px 0;
margin: 0;
}
-.v-datefield-calendarpanel-body table {
+.#{$name}-calendarpanel-body table {
margin: 0 auto;
width: 200px;
}
diff --git a/WebContent/VAADIN/themes/liferay/inlinedatefield/inlinedatefield.scss b/WebContent/VAADIN/themes/liferay/inlinedatefield/inlinedatefield.scss
new file mode 100644
index 0000000000..58aa928ee8
--- /dev/null
+++ b/WebContent/VAADIN/themes/liferay/inlinedatefield/inlinedatefield.scss
@@ -0,0 +1,8 @@
+@mixin liferay-inlinedatefield ($name : v-inline-datefield) {
+
+ @include liferay-datefield(v-inline-datefield);
+
+ .#{$name} {
+ line-height:19px; /* Override popup datefields line-height:0 to get correct line heights */
+ }
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/liferay/liferay.scss b/WebContent/VAADIN/themes/liferay/liferay.scss
index 7ec561ffc9..3128e48c76 100644
--- a/WebContent/VAADIN/themes/liferay/liferay.scss
+++ b/WebContent/VAADIN/themes/liferay/liferay.scss
@@ -7,6 +7,7 @@
@import "contextmenu/contextmenu.scss";
@import "datefield/datefield.scss";
+@import "inlinedatefield/inlinedatefield.scss";
@import "formlayout/formlayout.scss";
@import "menubar/menubar.scss";
@import "notification/notification.scss";
@@ -32,6 +33,7 @@
@include liferay-common;
@include liferay-contextmenu;
@include liferay-datefield;
+ @include liferay-inlinedatefield;
@include liferay-formlayout;
@include liferay-menubar;
@include liferay-notification;
diff --git a/WebContent/VAADIN/themes/reindeer/inlinedatefield/inlinedatefield.scss b/WebContent/VAADIN/themes/reindeer/inlinedatefield/inlinedatefield.scss
new file mode 100644
index 0000000000..19402f8208
--- /dev/null
+++ b/WebContent/VAADIN/themes/reindeer/inlinedatefield/inlinedatefield.scss
@@ -0,0 +1,8 @@
+@mixin reindeer-inlinedatefield ($name : v-inline-datefield) {
+
+ @include reindeer-datefield(v-inline-datefield);
+
+ .#{$name} {
+ line-height:14px; /* Override popup datefields line-height:0 to get correct line heights */
+ }
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/reindeer/reindeer.scss b/WebContent/VAADIN/themes/reindeer/reindeer.scss
index e102e99bc5..ef827190b5 100644
--- a/WebContent/VAADIN/themes/reindeer/reindeer.scss
+++ b/WebContent/VAADIN/themes/reindeer/reindeer.scss
@@ -9,6 +9,7 @@
@import "common/common.scss";
@import "datefield/datefield.scss";
+@import "inlinedatefield/inlinedatefield.scss";
@import "formlayout/formlayout.scss";
@import "label/label.scss";
@import "layouts/layouts.scss";
@@ -39,6 +40,7 @@
@include reindeer-nativebutton;
@include reindeer-common;
@include reindeer-datefield;
+ @include reindeer-inlinedatefield;
@include reindeer-formlayout;
@include reindeer-label;
@include reindeer-layouts;
diff --git a/WebContent/VAADIN/themes/runo/datefield/datefield.scss b/WebContent/VAADIN/themes/runo/datefield/datefield.scss
index 57ad061b65..82dad4a0ac 100644
--- a/WebContent/VAADIN/themes/runo/datefield/datefield.scss
+++ b/WebContent/VAADIN/themes/runo/datefield/datefield.scss
@@ -1,10 +1,10 @@
-@mixin runo-datefield {
+@mixin runo-datefield($name : v-datefield) {
-.v-datefield input.v-textfield,
-.v-datefield input.v-textfield[type=text] {
+.#{$name} input.v-textfield,
+.#{$name} input.v-textfield[type=text] {
height: 18px;
}
-.v-datefield-button {
+.#{$name}-button {
font-size:13px;
width: 22px;
height: 24px;
@@ -14,7 +14,7 @@
background: transparent url(img/open-button.png) no-repeat right 0;
vertical-align: top;
}
-.v-datefield-popup {
+.#{$name}-popup {
font-family: "Trebuchet MS", geneva, helvetica, arial, tahoma, verdana, sans-serif;
color: #464f52;
font-size: 12px;
@@ -25,39 +25,39 @@
-moz-border-radius: 4px;
border-radius: 4px;
}
-.v-datefield-calendarpanel {
+.#{$name}-calendarpanel {
width: 230px;
}
-.v-datefield-popup .v-datefield-calendarpanel {
+.#{$name}-popup .#{$name}-calendarpanel {
width: 200px;
}
-.v-datefield-year .v-datefield-calendarpanel {
+.#{$name}-year .#{$name}-calendarpanel {
width: 100px;
}
-.v-datefield-calendarpanel td {
+.#{$name}-calendarpanel td {
text-align: right;
}
-.v-datefield-calendarpanel td span {
+.#{$name}-calendarpanel td span {
display: block;
}
-.v-datefield-calendarpanel-header {
+.#{$name}-calendarpanel-header {
height: 30px;
font-size: 13px;
}
-td.v-datefield-calendarpanel-month {
+td.#{$name}-calendarpanel-month {
font-weight: bold;
text-shadow: 0 1px 0 #fff;
width: 150px;
}
-.v-datefield-calendarpanel-prevyear,
-.v-datefield-calendarpanel-nextyear,
-.v-datefield-calendarpanel-prevmonth,
-.v-datefield-calendarpanel-nextmonth {
+.#{$name}-calendarpanel-prevyear,
+.#{$name}-calendarpanel-nextyear,
+.#{$name}-calendarpanel-prevmonth,
+.#{$name}-calendarpanel-nextmonth {
width: 16px;
}
/* Year buttons */
-.v-datefield-calendarpanel .v-button-prevyear,
-.v-datefield-calendarpanel .v-button-nextyear {
+.#{$name}-calendarpanel .v-button-prevyear,
+.#{$name}-calendarpanel .v-button-nextyear {
display: block;
width: 16px;
height: 16px;
@@ -67,16 +67,16 @@ td.v-datefield-calendarpanel-month {
text-indent: -90000px;
margin: 0 auto;
}
-.v-datefield-calendarpanel .v-button-nextyear {
+.#{$name}-calendarpanel .v-button-nextyear {
background: transparent url(img/nextyear.png) no-repeat;
}
-.v-datefield-calendarpanel .v-button-prevyear:hover,
-.v-datefield-calendarpanel .v-button-nextyear:hover {
+.#{$name}-calendarpanel .v-button-prevyear:hover,
+.#{$name}-calendarpanel .v-button-nextyear:hover {
background-position: left bottom;
}
/* Month buttons */
-.v-datefield-calendarpanel .v-button-prevmonth,
-.v-datefield-calendarpanel .v-button-nextmonth {
+.#{$name}-calendarpanel .v-button-prevmonth,
+.#{$name}-calendarpanel .v-button-nextmonth {
display: block;
width: 11px;
height: 16px;
@@ -86,42 +86,42 @@ td.v-datefield-calendarpanel-month {
text-indent: -90000px;
margin: 0 auto;
}
-.v-datefield-calendarpanel .v-button-nextmonth {
+.#{$name}-calendarpanel .v-button-nextmonth {
background: transparent url(img/nextmonth.png) no-repeat;
}
-.v-datefield-calendarpanel .v-button-prevmonth:hover,
-.v-datefield-calendarpanel .v-button-nextmonth:hover {
+.#{$name}-calendarpanel .v-button-prevmonth:hover,
+.#{$name}-calendarpanel .v-button-nextmonth:hover {
background-position: left bottom;
}
-.v-datefield-calendarpanel strong {
+.#{$name}-calendarpanel strong {
color: #ee5311;
display: block;
width: 20px;
font-size: 12px;
}
-.v-datefield-calendarpanel-day,
-.v-datefield-calendarpanel-weeknumber,
-.v-datefield-calendarpanel-day-today {
+.#{$name}-calendarpanel-day,
+.#{$name}-calendarpanel-weeknumber,
+.#{$name}-calendarpanel-day-today {
padding: 1px 3px;
width: 14px;
height: 16px;
}
-.v-datefield-calendarpanel-day-today {
+.#{$name}-calendarpanel-day-today {
border: 1px solid #429ce9;
width: 12px;
height: 14px;
}
-.v-datefield-calendarpanel-day-entry {
+.#{$name}-calendarpanel-day-entry {
color: #6a98b5;
}
-.v-datefield-calendarpanel-day-disabled {
+.#{$name}-calendarpanel-day-disabled {
font-weight: normal;
color: #dddddd;
}
-.v-datefield-calendarpanel-day-entry.v-datefield-calendarpanel-day-disabled {
+.#{$name}-calendarpanel-day-entry.#{$name}-calendarpanel-day-disabled {
color: #afd6f8;
}
-.v-datefield-calendarpanel-day-selected {
+.#{$name}-calendarpanel-day-selected {
font-weight: bold;
width: 14px;
height: 16px;
@@ -130,18 +130,18 @@ td.v-datefield-calendarpanel-month {
background: transparent url(img/selected-bg.png) no-repeat 50% 50%;
border: none;
}
-.v-datefield-time {
+.#{$name}-time {
font-size: 11px;
}
-.v-datefield-time .v-select {
+.#{$name}-time .v-select {
font-size: 10px;
padding: 0;
margin: 0;
}
-.v-datefield-rendererror .v-textfield {
+.#{$name}-rendererror .v-textfield {
background: #ff9999;
}
-.v-datefield-prompt .v-datefield-textfield {
+.#{$name}-prompt .#{$name}-textfield {
color: #999;
font-style: normal;
}
diff --git a/WebContent/VAADIN/themes/runo/inlinedatefield/inlinedatefield.scss b/WebContent/VAADIN/themes/runo/inlinedatefield/inlinedatefield.scss
new file mode 100644
index 0000000000..ada30fa40e
--- /dev/null
+++ b/WebContent/VAADIN/themes/runo/inlinedatefield/inlinedatefield.scss
@@ -0,0 +1,8 @@
+@mixin runo-inline-datefield($name : v-inline-datefield){
+
+ @include runo-datefield(v-inline-datefield);
+
+ .#{$name} {
+ line-height: 18px; /* Override inherited line-height: 0 needed for popup datefield */
+ }
+} \ No newline at end of file
diff --git a/WebContent/VAADIN/themes/runo/runo.scss b/WebContent/VAADIN/themes/runo/runo.scss
index 6db7c335cb..04f1ec5f13 100644
--- a/WebContent/VAADIN/themes/runo/runo.scss
+++ b/WebContent/VAADIN/themes/runo/runo.scss
@@ -6,6 +6,7 @@
@import "caption/caption.scss";
@import "common/common.scss";
@import "datefield/datefield.scss";
+@import "inlinedatefield/inlinedatefield.scss";
@import "formlayout/formlayout.scss";
@import "gridlayout/gridlayout.scss";
@import "label/label.scss";
@@ -38,6 +39,7 @@
@include runo-common;
@include runo-datefield;
+ @include runo-inline-datefield;
@include runo-formlayout;
@include runo-gridlayout;
@include runo-label;
diff --git a/client/src/com/vaadin/client/ui/datefield/AbstractDateFieldConnector.java b/client/src/com/vaadin/client/ui/datefield/AbstractDateFieldConnector.java
index 994a9e1d66..2f48d7411c 100644
--- a/client/src/com/vaadin/client/ui/datefield/AbstractDateFieldConnector.java
+++ b/client/src/com/vaadin/client/ui/datefield/AbstractDateFieldConnector.java
@@ -80,7 +80,7 @@ public class AbstractDateFieldConnector extends AbstractFieldConnector
// Remove old stylename that indicates current resolution
setWidgetStyleName(
- VDateField.CLASSNAME
+ getWidget().getStylePrimaryName()
+ "-"
+ VDateField
.resolutionToString(getWidget().currentResolution),
@@ -90,7 +90,7 @@ public class AbstractDateFieldConnector extends AbstractFieldConnector
// Add stylename that indicates current resolution
setWidgetStyleName(
- VDateField.CLASSNAME
+ getWidget().getStylePrimaryName()
+ "-"
+ VDateField
.resolutionToString(getWidget().currentResolution),
diff --git a/client/src/com/vaadin/client/ui/datefield/PopupDateFieldConnector.java b/client/src/com/vaadin/client/ui/datefield/PopupDateFieldConnector.java
index fbc7bcc88c..b2a5b49212 100644
--- a/client/src/com/vaadin/client/ui/datefield/PopupDateFieldConnector.java
+++ b/client/src/com/vaadin/client/ui/datefield/PopupDateFieldConnector.java
@@ -144,12 +144,12 @@ public class PopupDateFieldConnector extends TextualDateConnector {
// update the style change to popup calendar widget with the correct
// prefix
if (!styleName.startsWith("-")) {
- getWidget().popup.setStyleName(
- VPopupCalendar.POPUP_PRIMARY_STYLE_NAME + "-" + styleName,
+ getWidget().popup.setStyleName(getWidget().getStylePrimaryName()
+ + "-popup-" + styleName,
add);
} else {
- getWidget().popup.setStyleName(
- VPopupCalendar.POPUP_PRIMARY_STYLE_NAME + styleName, add);
+ getWidget().popup.setStyleName(getWidget().getStylePrimaryName()
+ + "-popup" + styleName, add);
}
}
diff --git a/client/src/com/vaadin/client/ui/datefield/VCalendarPanel.java b/client/src/com/vaadin/client/ui/datefield/VCalendarPanel.java
index 0d21638417..2323035e58 100644
--- a/client/src/com/vaadin/client/ui/datefield/VCalendarPanel.java
+++ b/client/src/com/vaadin/client/ui/datefield/VCalendarPanel.java
@@ -197,9 +197,11 @@ public class VCalendarPanel extends FocusableFlexTable implements
private boolean hasFocus = false;
- public VCalendarPanel() {
+ private VDateField parent;
+
+ private boolean initialRenderDone = false;
- setStyleName(VDateField.CLASSNAME + "-calendarpanel");
+ public VCalendarPanel() {
/*
* Firefox auto-repeat works correctly only if we use a key press
@@ -213,7 +215,10 @@ public class VCalendarPanel extends FocusableFlexTable implements
}
addFocusHandler(this);
addBlurHandler(this);
+ }
+ public void setParentField(VDateField parent) {
+ this.parent = parent;
}
/**
@@ -342,6 +347,26 @@ public class VCalendarPanel extends FocusableFlexTable implements
return enabled;
}
+ @Override
+ public void setStyleName(String style) {
+ super.setStyleName(style);
+ if (initialRenderDone) {
+ // Dynamic updates to the stylename needs to render the calendar to
+ // update the inner element stylenames
+ renderCalendar();
+ }
+ }
+
+ @Override
+ public void setStylePrimaryName(String style) {
+ super.setStylePrimaryName(style);
+ if (initialRenderDone) {
+ // Dynamic updates to the stylename needs to render the calendar to
+ // update the inner element stylenames
+ renderCalendar();
+ }
+ }
+
private void clearCalendarBody(boolean remove) {
if (!remove) {
// Leave the cells in place but clear their contents
@@ -368,7 +393,7 @@ public class VCalendarPanel extends FocusableFlexTable implements
private void buildCalendarHeader(boolean needsMonth) {
getRowFormatter().addStyleName(0,
- VDateField.CLASSNAME + "-calendarpanel-header");
+ parent.getStylePrimaryName() + "-calendarpanel-header");
if (prevMonth == null && needsMonth) {
prevMonth = new VEventButton();
@@ -379,10 +404,6 @@ public class VCalendarPanel extends FocusableFlexTable implements
nextMonth.setHTML("›");
nextMonth.setStyleName("v-button-nextmonth");
nextMonth.setTabIndex(-1);
- getFlexCellFormatter().setStyleName(0, 3,
- VDateField.CLASSNAME + "-calendarpanel-nextmonth");
- getFlexCellFormatter().setStyleName(0, 1,
- VDateField.CLASSNAME + "-calendarpanel-prevmonth");
setWidget(0, 3, nextMonth);
setWidget(0, 1, prevMonth);
@@ -405,18 +426,24 @@ public class VCalendarPanel extends FocusableFlexTable implements
nextYear.setTabIndex(-1);
setWidget(0, 0, prevYear);
setWidget(0, 4, nextYear);
- getFlexCellFormatter().setStyleName(0, 0,
- VDateField.CLASSNAME + "-calendarpanel-prevyear");
- getFlexCellFormatter().setStyleName(0, 4,
- VDateField.CLASSNAME + "-calendarpanel-nextyear");
}
final String monthName = needsMonth ? getDateTimeService().getMonth(
displayedMonth.getMonth()) : "";
final int year = displayedMonth.getYear() + 1900;
+
getFlexCellFormatter().setStyleName(0, 2,
- VDateField.CLASSNAME + "-calendarpanel-month");
- setHTML(0, 2, "<span class=\"" + VDateField.CLASSNAME
+ parent.getStylePrimaryName() + "-calendarpanel-month");
+ getFlexCellFormatter().setStyleName(0, 0,
+ parent.getStylePrimaryName() + "-calendarpanel-prevyear");
+ getFlexCellFormatter().setStyleName(0, 4,
+ parent.getStylePrimaryName() + "-calendarpanel-nextyear");
+ getFlexCellFormatter().setStyleName(0, 3,
+ parent.getStylePrimaryName() + "-calendarpanel-nextmonth");
+ getFlexCellFormatter().setStyleName(0, 1,
+ parent.getStylePrimaryName() + "-calendarpanel-prevmonth");
+
+ setHTML(0, 2, "<span class=\"" + parent.getStylePrimaryName()
+ "-calendarpanel-month\">" + monthName + " " + year
+ "</span>");
}
@@ -458,7 +485,7 @@ public class VCalendarPanel extends FocusableFlexTable implements
setCellSpacing(0);
getFlexCellFormatter().setColSpan(1, 0, 5);
getFlexCellFormatter().setStyleName(1, 0,
- VDateField.CLASSNAME + "-calendarpanel-body");
+ parent.getStylePrimaryName() + "-calendarpanel-body");
days.getFlexCellFormatter().setStyleName(headerRow, weekColumn,
"v-week");
@@ -468,7 +495,7 @@ public class VCalendarPanel extends FocusableFlexTable implements
isShowISOWeekNumbers());
days.getRowFormatter().setStyleName(headerRow,
- VDateField.CLASSNAME + "-calendarpanel-weekdays");
+ parent.getStylePrimaryName() + "-calendarpanel-weekdays");
if (isShowISOWeekNumbers()) {
days.getFlexCellFormatter().setStyleName(headerRow, weekColumn,
@@ -476,7 +503,8 @@ public class VCalendarPanel extends FocusableFlexTable implements
days.getFlexCellFormatter().setStyleName(headerRow,
firstWeekdayColumn, "");
days.getRowFormatter().addStyleName(headerRow,
- VDateField.CLASSNAME + "-calendarpanel-weeknumbers");
+ parent.getStylePrimaryName()
+ + "-calendarpanel-weeknumbers");
} else {
days.getFlexCellFormatter().setStyleName(headerRow, weekColumn, "");
days.getFlexCellFormatter().setStyleName(headerRow,
@@ -524,6 +552,8 @@ public class VCalendarPanel extends FocusableFlexTable implements
// Actually write the day of month
Day day = new Day((Date) curr.clone());
+ day.setStyleName(parent.getStylePrimaryName()
+ + "-calendarpanel-day");
if (curr.equals(selectedDate)) {
day.addStyleDependentName(CN_SELECTED);
@@ -549,7 +579,7 @@ public class VCalendarPanel extends FocusableFlexTable implements
days.getCellFormatter().setVisible(weekOfMonth, weekColumn,
isShowISOWeekNumbers());
if (isShowISOWeekNumbers()) {
- final String baseCssClass = VDateField.CLASSNAME
+ final String baseCssClass = parent.getStylePrimaryName()
+ "-calendarpanel-weeknumber";
String weekCssClass = baseCssClass;
@@ -605,12 +635,14 @@ public class VCalendarPanel extends FocusableFlexTable implements
setWidget(2, 0, time);
getFlexCellFormatter().setColSpan(2, 0, 5);
getFlexCellFormatter().setStyleName(2, 0,
- VDateField.CLASSNAME + "-calendarpanel-time");
+ parent.getStylePrimaryName() + "-calendarpanel-time");
} else if (isTimeSelectorNeeded()) {
time.updateTimes();
} else if (time != null) {
remove(time);
}
+
+ initialRenderDone = true;
}
/**
@@ -1539,13 +1571,10 @@ public class VCalendarPanel extends FocusableFlexTable implements
* A widget representing a single day in the calendar panel.
*/
private class Day extends InlineHTML {
- private static final String BASECLASS = VDateField.CLASSNAME
- + "-calendarpanel-day";
private final Date date;
Day(Date date) {
super("" + date.getDate());
- setStyleName(BASECLASS);
this.date = date;
addClickHandler(dayClickHandler);
}
diff --git a/client/src/com/vaadin/client/ui/datefield/VDateField.java b/client/src/com/vaadin/client/ui/datefield/VDateField.java
index 915ac4c54d..84fe061347 100644
--- a/client/src/com/vaadin/client/ui/datefield/VDateField.java
+++ b/client/src/com/vaadin/client/ui/datefield/VDateField.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2011 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
diff --git a/client/src/com/vaadin/client/ui/datefield/VDateFieldCalendar.java b/client/src/com/vaadin/client/ui/datefield/VDateFieldCalendar.java
index 41b7aedae6..2f2c3b3290 100644
--- a/client/src/com/vaadin/client/ui/datefield/VDateFieldCalendar.java
+++ b/client/src/com/vaadin/client/ui/datefield/VDateFieldCalendar.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2011 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
@@ -34,6 +34,7 @@ public class VDateFieldCalendar extends VDateField {
public VDateFieldCalendar() {
super();
calendarPanel = new VCalendarPanel();
+ calendarPanel.setParentField(this);
add(calendarPanel);
calendarPanel.setSubmitListener(new SubmitListener() {
@Override
@@ -55,7 +56,7 @@ public class VDateFieldCalendar extends VDateField {
}
});
}
-
+
/**
* TODO refactor: almost same method as in VPopupCalendar.updateValue
*/
diff --git a/client/src/com/vaadin/client/ui/datefield/VPopupCalendar.java b/client/src/com/vaadin/client/ui/datefield/VPopupCalendar.java
index 79ede5b013..0762b965e1 100644
--- a/client/src/com/vaadin/client/ui/datefield/VPopupCalendar.java
+++ b/client/src/com/vaadin/client/ui/datefield/VPopupCalendar.java
@@ -55,10 +55,7 @@ import com.vaadin.shared.ui.datefield.Resolution;
public class VPopupCalendar extends VTextualDate implements Field,
ClickHandler, CloseHandler<PopupPanel>, SubPartAware {
- protected static final String POPUP_PRIMARY_STYLE_NAME = VDateField.CLASSNAME
- + "-popup";
-
- protected final Button calendarToggle;
+ protected final Button calendarToggle = new Button();
protected VCalendarPanel calendar;
@@ -69,8 +66,6 @@ public class VPopupCalendar extends VTextualDate implements Field,
public VPopupCalendar() {
super();
- calendarToggle = new Button();
- calendarToggle.setStyleName(CLASSNAME + "-button");
calendarToggle.setText("");
calendarToggle.addClickHandler(this);
// -2 instead of -1 to avoid FocusWidget.onAttach to reset it
@@ -78,6 +73,7 @@ public class VPopupCalendar extends VTextualDate implements Field,
add(calendarToggle);
calendar = GWT.create(VCalendarPanel.class);
+ calendar.setParentField(this);
calendar.setFocusOutListener(new FocusOutListener() {
@Override
public boolean onFocusOut(DomEvent<?> event) {
@@ -106,7 +102,6 @@ public class VPopupCalendar extends VTextualDate implements Field,
});
popup = new VOverlay(true, true, true);
- popup.setStyleName(POPUP_PRIMARY_STYLE_NAME);
popup.setWidget(calendar);
popup.addCloseHandler(this);
@@ -115,6 +110,7 @@ public class VPopupCalendar extends VTextualDate implements Field,
sinkEvents(Event.ONKEYDOWN);
+ updateStyleNames();
}
@SuppressWarnings("deprecation")
@@ -163,8 +159,26 @@ public class VPopupCalendar extends VTextualDate implements Field,
*/
@Override
public void setStyleName(String style) {
- // make sure the style is there before size calculation
- super.setStyleName(style + " " + CLASSNAME + "-popupcalendar");
+ super.setStyleName(style);
+ updateStyleNames();
+ }
+
+ @Override
+ public void setStylePrimaryName(String style) {
+ removeStyleName(getStylePrimaryName() + "-popupcalendar");
+ super.setStylePrimaryName(style);
+ updateStyleNames();
+ }
+
+ @Override
+ protected void updateStyleNames() {
+ super.updateStyleNames();
+ if (getStylePrimaryName() != null && calendarToggle != null) {
+ addStyleName(getStylePrimaryName() + "-popupcalendar");
+ calendarToggle.setStyleName(getStylePrimaryName() + "-button");
+ popup.setStyleName(getStylePrimaryName() + "-popup");
+ calendar.setStyleName(getStylePrimaryName() + "-calendarpanel");
+ }
}
/**
diff --git a/client/src/com/vaadin/client/ui/datefield/VTextualDate.java b/client/src/com/vaadin/client/ui/datefield/VTextualDate.java
index e2d9962979..9bacfded13 100644
--- a/client/src/com/vaadin/client/ui/datefield/VTextualDate.java
+++ b/client/src/com/vaadin/client/ui/datefield/VTextualDate.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2011 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
@@ -39,8 +39,7 @@ import com.vaadin.shared.ui.datefield.Resolution;
public class VTextualDate extends VDateField implements Field, ChangeHandler,
Focusable, SubPartAware {
- private static final String PARSE_ERROR_CLASSNAME = CLASSNAME
- + "-parseerror";
+ private static final String PARSE_ERROR_CLASSNAME = "-parseerror";
protected final TextBox text;
@@ -54,13 +53,8 @@ public class VTextualDate extends VDateField implements Field, ChangeHandler,
private boolean prompting = false;
public VTextualDate() {
-
super();
text = new TextBox();
- // use normal textfield styles as a basis
- text.setStyleName(VTextField.CLASSNAME);
- // add datefield spesific style name also
- text.addStyleName(CLASSNAME + "-textfield");
text.addChangeHandler(this);
text.addFocusHandler(new FocusHandler() {
@Override
@@ -100,6 +94,13 @@ public class VTextualDate extends VDateField implements Field, ChangeHandler,
add(text);
}
+ protected void updateStyleNames() {
+ if (text != null) {
+ text.setStyleName(VTextField.CLASSNAME);
+ text.addStyleName(getStylePrimaryName() + "-textfield");
+ }
+ }
+
protected String getFormatString() {
if (formatStr == null) {
if (currentResolution == Resolution.YEAR) {
@@ -153,7 +154,7 @@ public class VTextualDate extends VDateField implements Field, ChangeHandler,
* is what usually is needed except for updateFromUIDL.
*/
protected void buildDate() {
- removeStyleName(PARSE_ERROR_CLASSNAME);
+ removeStyleName(getStylePrimaryName() + PARSE_ERROR_CLASSNAME);
// Create the initial text for the textfield
String dateText;
Date currentDate = getDate();
@@ -206,11 +207,11 @@ public class VTextualDate extends VDateField implements Field, ChangeHandler,
}
// remove possibly added invalid value indication
- removeStyleName(PARSE_ERROR_CLASSNAME);
+ removeStyleName(getStylePrimaryName() + PARSE_ERROR_CLASSNAME);
} catch (final Exception e) {
VConsole.log(e);
- addStyleName(PARSE_ERROR_CLASSNAME);
+ addStyleName(getStylePrimaryName() + PARSE_ERROR_CLASSNAME);
// this is a hack that may eventually be removed
getClient().updateVariable(getId(), "lastInvalidDateString",
text.getText(), false);
@@ -219,7 +220,7 @@ public class VTextualDate extends VDateField implements Field, ChangeHandler,
} else {
setDate(null);
// remove possibly added invalid value indication
- removeStyleName(PARSE_ERROR_CLASSNAME);
+ removeStyleName(getStylePrimaryName() + PARSE_ERROR_CLASSNAME);
}
// always send the date string
getClient()
diff --git a/client/src/com/vaadin/client/ui/form/VForm.java b/client/src/com/vaadin/client/ui/form/VForm.java
index 9b8dd80652..eb206e75b9 100644
--- a/client/src/com/vaadin/client/ui/form/VForm.java
+++ b/client/src/com/vaadin/client/ui/form/VForm.java
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright 2011 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
@@ -62,19 +62,38 @@ public class VForm extends ComplexPanel implements KeyDownHandler {
setStyleName(CLASSNAME);
fieldSet.appendChild(legend);
legend.appendChild(caption);
- desc.setClassName("v-form-description");
+
fieldSet.appendChild(desc); // Adding description for initial padding
// measurements, removed later if no
// description is set
- fieldContainer.setClassName(CLASSNAME + "-content");
+
fieldSet.appendChild(fieldContainer);
errorMessage.setVisible(false);
- errorMessage.setStyleName(CLASSNAME + "-errormessage");
+
fieldSet.appendChild(errorMessage.getElement());
fieldSet.appendChild(footerContainer);
}
@Override
+ public void setStyleName(String style) {
+ super.setStyleName(style);
+ updateStyleNames();
+ }
+
+ @Override
+ public void setStylePrimaryName(String style) {
+ super.setStylePrimaryName(style);
+ updateStyleNames();
+ }
+
+ protected void updateStyleNames() {
+ fieldContainer.setClassName(getStylePrimaryName() + "-content");
+ errorMessage.setStyleName(getStylePrimaryName() + "-errormessage");
+ desc.setClassName(getStylePrimaryName() + "-description");
+ footerContainer.setClassName(getStylePrimaryName() + "-footer");
+ }
+
+ @Override
public void onKeyDown(KeyDownEvent event) {
shortcutHandler.handleKeyboardEvent(Event.as(event.getNativeEvent()));
}
diff --git a/server/src/com/vaadin/navigator/Navigator.java b/server/src/com/vaadin/navigator/Navigator.java
index e4704bce6a..72d6c65fd2 100644
--- a/server/src/com/vaadin/navigator/Navigator.java
+++ b/server/src/com/vaadin/navigator/Navigator.java
@@ -28,7 +28,6 @@ import com.vaadin.server.Page.FragmentChangedListener;
import com.vaadin.ui.Component;
import com.vaadin.ui.ComponentContainer;
import com.vaadin.ui.CssLayout;
-import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.UI;
/**
@@ -147,38 +146,6 @@ public class Navigator implements Serializable {
}
/**
- * A ViewDisplay that is a component itself and replaces its contents with
- * the view.
- * <p>
- * This display only supports views that are {@link Component}s themselves.
- * Attempting to display a view that is not a component causes an exception
- * to be thrown.
- * <p>
- * By default, the view display has full size.
- */
- public static class SimpleViewDisplay extends CustomComponent implements
- ViewDisplay {
-
- /**
- * Create new {@link ViewDisplay} that is itself a component displaying
- * the view.
- */
- public SimpleViewDisplay() {
- setSizeFull();
- }
-
- @Override
- public void showView(View view) {
- if (view instanceof Component) {
- setCompositionRoot((Component) view);
- } else {
- throw new IllegalArgumentException("View is not a component: "
- + view);
- }
- }
- }
-
- /**
* A ViewDisplay that replaces the contents of a {@link ComponentContainer}
* with the active {@link View}.
* <p>
diff --git a/server/src/com/vaadin/server/AbstractCommunicationManager.java b/server/src/com/vaadin/server/AbstractCommunicationManager.java
index cb41f9338b..293fd002e5 100644
--- a/server/src/com/vaadin/server/AbstractCommunicationManager.java
+++ b/server/src/com/vaadin/server/AbstractCommunicationManager.java
@@ -2430,7 +2430,7 @@ public abstract class AbstractCommunicationManager implements Serializable {
response.setContentType("application/json; charset=UTF-8");
- UI uI = getBrowserDetailsUI(request);
+ UI uI = getBrowserDetailsUI(request, session);
JSONObject params = new JSONObject();
params.put(UIConstants.UI_ID_PARAMETER, uI.getUIId());
@@ -2456,10 +2456,9 @@ public abstract class AbstractCommunicationManager implements Serializable {
}
}
- private UI getBrowserDetailsUI(VaadinRequest request) {
+ private UI getBrowserDetailsUI(VaadinRequest request,
+ VaadinServiceSession session) {
VaadinService vaadinService = request.getService();
- VaadinServiceSession session = VaadinServiceSession.getForSession(
- vaadinService, request.getWrappedSession());
List<UIProvider> uiProviders = session.getUIProviders();
diff --git a/server/src/com/vaadin/server/ConnectorResourceHandler.java b/server/src/com/vaadin/server/ConnectorResourceHandler.java
index 6d375aaa50..dc112a2d5b 100644
--- a/server/src/com/vaadin/server/ConnectorResourceHandler.java
+++ b/server/src/com/vaadin/server/ConnectorResourceHandler.java
@@ -14,7 +14,7 @@ import com.vaadin.ui.UI;
public class ConnectorResourceHandler implements RequestHandler {
// APP/connector/[uiid]/[cid]/[filename.xyz]
private static final Pattern CONNECTOR_RESOURCE_PATTERN = Pattern
- .compile("^/?" + ApplicationConstants.APP_REQUEST_PATH
+ .compile("^/?" + ApplicationConstants.APP_REQUEST_PATH + '/'
+ ConnectorResource.CONNECTOR_REQUEST_PATH
+ "(\\d+)/(\\d+)/(.*)");
@@ -62,6 +62,15 @@ public class ConnectorResourceHandler implements RequestHandler {
}
return true;
+ } else if (requestPath.matches('/'
+ + ApplicationConstants.APP_REQUEST_PATH + "(/.*)?")) {
+ /*
+ * This should be the last request handler before we get to
+ * bootstrap logic. Prevent /APP requests from reaching bootstrap
+ * handlers to help protect the /APP name space for framework usage.
+ */
+ return error(request, response,
+ "Returning 404 for /APP request not yet handled.");
} else {
return false;
}
diff --git a/server/src/com/vaadin/server/GlobalResourceHandler.java b/server/src/com/vaadin/server/GlobalResourceHandler.java
index ad276dc77a..5b89408d01 100644
--- a/server/src/com/vaadin/server/GlobalResourceHandler.java
+++ b/server/src/com/vaadin/server/GlobalResourceHandler.java
@@ -60,7 +60,7 @@ public class GlobalResourceHandler implements RequestHandler {
// APP/global/[uiid]/[type]/[id]
private static final Matcher matcher = Pattern.compile(
- "^/?" + ApplicationConstants.APP_REQUEST_PATH
+ "^/?" + ApplicationConstants.APP_REQUEST_PATH + '/'
+ RESOURCE_REQUEST_PATH + "(\\d+)/(([^/]+)(/.*))").matcher(
"");
@@ -188,7 +188,7 @@ public class GlobalResourceHandler implements RequestHandler {
String uri = legacyResourceKeys.get(resource);
if (uri != null && !uri.isEmpty()) {
return ApplicationConstants.APP_PROTOCOL_PREFIX
- + ApplicationConstants.APP_REQUEST_PATH
+ + ApplicationConstants.APP_REQUEST_PATH + '/'
+ RESOURCE_REQUEST_PATH + connector.getUI().getUIId() + '/'
+ uri;
} else {
diff --git a/server/src/com/vaadin/server/ResourceReference.java b/server/src/com/vaadin/server/ResourceReference.java
index 815cbee275..b6a0cfda92 100644
--- a/server/src/com/vaadin/server/ResourceReference.java
+++ b/server/src/com/vaadin/server/ResourceReference.java
@@ -103,7 +103,7 @@ public class ResourceReference extends URLReference {
private static String getConnectorResourceBase(String filename,
ClientConnector connector) {
String uri = ApplicationConstants.APP_PROTOCOL_PREFIX
- + ApplicationConstants.APP_REQUEST_PATH
+ + ApplicationConstants.APP_REQUEST_PATH + '/'
+ ConnectorResource.CONNECTOR_REQUEST_PATH
+ connector.getUI().getUIId() + '/'
+ connector.getConnectorId() + '/' + encodeFileName(filename);
diff --git a/server/src/com/vaadin/server/ServletPortletHelper.java b/server/src/com/vaadin/server/ServletPortletHelper.java
index 59c0b382c9..15c3e18959 100644
--- a/server/src/com/vaadin/server/ServletPortletHelper.java
+++ b/server/src/com/vaadin/server/ServletPortletHelper.java
@@ -111,7 +111,8 @@ class ServletPortletHelper implements Serializable {
}
public static boolean isAppRequest(VaadinRequest request) {
- return hasPathPrefix(request, ApplicationConstants.APP_REQUEST_PATH);
+ return hasPathPrefix(request,
+ ApplicationConstants.APP_REQUEST_PATH + '/');
}
public static boolean isHeartbeatRequest(VaadinRequest request) {
diff --git a/server/src/com/vaadin/server/VaadinService.java b/server/src/com/vaadin/server/VaadinService.java
index 9d78d4c107..44e82b5898 100644
--- a/server/src/com/vaadin/server/VaadinService.java
+++ b/server/src/com/vaadin/server/VaadinService.java
@@ -737,4 +737,22 @@ public abstract class VaadinService implements Serializable {
*/
public abstract String getMainDivId(VaadinServiceSession session,
VaadinRequest request, Class<? extends UI> uiClass);
+
+ /**
+ * Closes the VaadinServiceSession and discards all associated UI state.
+ * After the session has been discarded, any UIs that have been left open
+ * will give an Out of sync error (
+ * {@link SystemMessages#getOutOfSyncCaption()}) error and a new session
+ * will be created for serving new UIs.
+ * <p>
+ * To avoid causing out of sync errors, you should typically redirect to
+ * some other page using {@link Page#setLocation(String)} to make the
+ * browser unload the invalidated UI.
+ *
+ * @param session
+ * the session to close
+ */
+ public void closeSession(VaadinServiceSession session) {
+ session.removeFromSession(this);
+ }
}
diff --git a/server/src/com/vaadin/server/VaadinServiceSession.java b/server/src/com/vaadin/server/VaadinServiceSession.java
index 62a11c710a..de5accbfd0 100644
--- a/server/src/com/vaadin/server/VaadinServiceSession.java
+++ b/server/src/com/vaadin/server/VaadinServiceSession.java
@@ -1036,4 +1036,24 @@ public class VaadinServiceSession implements HttpSessionBindingListener,
return service;
}
+ /**
+ * Closes this session and discards all associated UI state. After the
+ * session has been discarded, any UIs that have been left open will give an
+ * Out of sync error ({@link SystemMessages#getOutOfSyncCaption()}) error
+ * and a new session will be created for serving new UIs.
+ * <p>
+ * To avoid causing out of sync errors, you should typically redirect to
+ * some other page using {@link Page#setLocation(String)} to make the
+ * browser unload the invalidated UI.
+ * <p>
+ * This method is just a shorthand to
+ * {@link VaadinService#closeSession(VaadinServiceSession)}
+ *
+ * @see VaadinService#closeSession(VaadinServiceSession)
+ *
+ */
+ public void close() {
+ getService().closeSession(this);
+ }
+
}
diff --git a/server/src/com/vaadin/ui/AbstractSelect.java b/server/src/com/vaadin/ui/AbstractSelect.java
index 45df42a9be..78fab068dd 100644
--- a/server/src/com/vaadin/ui/AbstractSelect.java
+++ b/server/src/com/vaadin/ui/AbstractSelect.java
@@ -1858,6 +1858,15 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
break;
}
+ if (getItemIconPropertyId() != null) {
+ final Property p = getContainerProperty(itemId,
+ getItemIconPropertyId());
+ if (p != null && p instanceof Property.ValueChangeNotifier) {
+ ((Property.ValueChangeNotifier) p)
+ .addListener(getCaptionChangeListener());
+ captionChangeNotifiers.add(p);
+ }
+ }
}
public void clear() {
diff --git a/server/src/com/vaadin/ui/UI.java b/server/src/com/vaadin/ui/UI.java
index 31a7446e96..2878d10fa1 100644
--- a/server/src/com/vaadin/ui/UI.java
+++ b/server/src/com/vaadin/ui/UI.java
@@ -556,9 +556,13 @@ public abstract class UI extends AbstractComponentContainer implements
return this;
}
+ /**
+ * This implementation replaces a component in the content container (
+ * {@link #getContent()}) instead of in the actual UI.
+ */
@Override
public void replaceComponent(Component oldComponent, Component newComponent) {
- throw new UnsupportedOperationException();
+ getContent().replaceComponent(oldComponent, newComponent);
}
/**
diff --git a/server/tests/src/com/vaadin/tests/server/component/root/CustomUIClassLoader.java b/server/tests/src/com/vaadin/tests/server/component/ui/CustomUIClassLoader.java
index 405d3d1931..82b9944371 100644
--- a/server/tests/src/com/vaadin/tests/server/component/root/CustomUIClassLoader.java
+++ b/server/tests/src/com/vaadin/tests/server/component/ui/CustomUIClassLoader.java
@@ -1,4 +1,4 @@
-package com.vaadin.tests.server.component.root;
+package com.vaadin.tests.server.component.ui;
import java.util.ArrayList;
import java.util.List;
diff --git a/server/tests/src/com/vaadin/tests/server/component/ui/UIAddRemoveComponents.java b/server/tests/src/com/vaadin/tests/server/component/ui/UIAddRemoveComponents.java
new file mode 100644
index 0000000000..1b07321605
--- /dev/null
+++ b/server/tests/src/com/vaadin/tests/server/component/ui/UIAddRemoveComponents.java
@@ -0,0 +1,65 @@
+package com.vaadin.tests.server.component.ui;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertSame;
+
+import org.junit.Test;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.UI;
+
+public class UIAddRemoveComponents {
+
+ private static class TestUI extends UI {
+ @Override
+ protected void init(VaadinRequest request) {
+ }
+ }
+
+ @Test
+ public void addComponent() {
+ UI ui = new TestUI();
+ Component c = new Label("abc");
+
+ ui.addComponent(c);
+
+ assertSame(c, ui.iterator().next());
+ assertSame(c, ui.getContent().iterator().next());
+ assertEquals(1, ui.getComponentCount());
+ assertEquals(1, ui.getContent().getComponentCount());
+ }
+
+ @Test
+ public void removeComponent() {
+ UI ui = new TestUI();
+ Component c = new Label("abc");
+
+ ui.addComponent(c);
+
+ ui.removeComponent(c);
+
+ assertFalse(ui.iterator().hasNext());
+ assertFalse(ui.getContent().iterator().hasNext());
+ assertEquals(0, ui.getComponentCount());
+ assertEquals(0, ui.getContent().getComponentCount());
+ }
+
+ @Test
+ public void replaceComponent() {
+ UI ui = new TestUI();
+ Component c = new Label("abc");
+ Component d = new Label("def");
+
+ ui.addComponent(c);
+
+ ui.replaceComponent(c, d);
+
+ assertSame(d, ui.iterator().next());
+ assertSame(d, ui.getContent().iterator().next());
+ assertEquals(1, ui.getComponentCount());
+ assertEquals(1, ui.getContent().getComponentCount());
+ }
+}
diff --git a/server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java b/server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java
index cf8a2870a9..7e21b751dc 100644
--- a/server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java
+++ b/server/tests/src/com/vaadin/tests/server/navigator/NavigatorTest.java
@@ -33,7 +33,9 @@ import com.vaadin.navigator.ViewDisplay;
import com.vaadin.navigator.ViewProvider;
import com.vaadin.tests.server.navigator.ClassBasedViewProviderTest.TestView;
import com.vaadin.tests.server.navigator.ClassBasedViewProviderTest.TestView2;
+import com.vaadin.ui.Component;
import com.vaadin.ui.UI;
+import com.vaadin.ui.VerticalLayout;
public class NavigatorTest extends TestCase {
@@ -348,6 +350,34 @@ public class NavigatorTest extends TestCase {
}
}
+ public void testComponentContainerViewDisplay() {
+ abstract class TestView implements Component, View {
+ }
+
+ TestView tv1 = EasyMock.createNiceMock(TestView.class);
+ TestView tv2 = EasyMock.createNiceMock(TestView.class);
+ EasyMock.replay(tv1, tv2);
+
+ VerticalLayout container = new VerticalLayout();
+ ViewDisplay display = new Navigator.ComponentContainerViewDisplay(
+ container);
+ Navigator navigator = createNavigator(new NullFragmentManager(),
+ display);
+
+ navigator.addView("tv1", tv1);
+ navigator.addView("tv2", tv2);
+
+ navigator.navigateTo("tv1");
+
+ assertSame(tv1, container.getComponent(0));
+ assertEquals(1, container.getComponentCount());
+
+ navigator.navigateTo("tv2");
+
+ assertSame(tv2, container.getComponent(0));
+ assertEquals(1, container.getComponentCount());
+ }
+
public void testBlockNavigation() {
IMocksControl control = EasyMock.createControl();
NavigationStateManager manager = control
diff --git a/shared/src/com/vaadin/shared/ApplicationConstants.java b/shared/src/com/vaadin/shared/ApplicationConstants.java
index 61b57687bd..80b05d6021 100644
--- a/shared/src/com/vaadin/shared/ApplicationConstants.java
+++ b/shared/src/com/vaadin/shared/ApplicationConstants.java
@@ -20,14 +20,14 @@ public class ApplicationConstants {
// This indicates the whole page is generated by us (not embedded)
public static final String GENERATED_BODY_CLASSNAME = "v-generated-body";
- public static final String APP_REQUEST_PATH = "APP/";
+ public static final String APP_REQUEST_PATH = "APP";
public static final String UIDL_REQUEST_PATH = "UIDL/";
public static final String HEARTBEAT_REQUEST_PATH = "HEARTBEAT/";
public static final String DEPENDENCY_RESOURCE_PREFIX = APP_REQUEST_PATH
- + "DEPENDENCY";
+ + '/' + "DEPENDENCY";
public static final String APP_PROTOCOL_PREFIX = "app://";
public static final String DEPENDENCY_PROTOCOL_NAME = "dependency";
diff --git a/shared/src/com/vaadin/shared/ui/datefield/InlineDateFieldState.java b/shared/src/com/vaadin/shared/ui/datefield/InlineDateFieldState.java
index 879670effa..7a36c3c8e7 100644
--- a/shared/src/com/vaadin/shared/ui/datefield/InlineDateFieldState.java
+++ b/shared/src/com/vaadin/shared/ui/datefield/InlineDateFieldState.java
@@ -4,6 +4,6 @@ import com.vaadin.shared.AbstractFieldState;
public class InlineDateFieldState extends AbstractFieldState {
{
- primaryStyleName = "v-datefield";
+ primaryStyleName = "v-inline-datefield";
}
}
diff --git a/theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandler.java b/theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandler.java
index d3e53c5cd4..215abaa38b 100644
--- a/theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandler.java
+++ b/theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandler.java
@@ -82,4 +82,10 @@ public interface SCSSDocumentHandler extends DocumentHandler {
void removeDirective(String variable, String list, String remove,
String separator);
+ void appendDirective(String variable, String list, String remove,
+ String separator);
+
+ void containsDirective(String variable, String list, String contains,
+ String separator);
+
}
diff --git a/theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandlerImpl.java b/theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandlerImpl.java
index 4acbc8d4d6..333ca0319b 100644
--- a/theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandlerImpl.java
+++ b/theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandlerImpl.java
@@ -34,6 +34,8 @@ import com.vaadin.sass.tree.ExtendNode;
import com.vaadin.sass.tree.FontFaceNode;
import com.vaadin.sass.tree.ForNode;
import com.vaadin.sass.tree.ImportNode;
+import com.vaadin.sass.tree.ListAppendNode;
+import com.vaadin.sass.tree.ListContainsNode;
import com.vaadin.sass.tree.ListRemoveNode;
import com.vaadin.sass.tree.MediaNode;
import com.vaadin.sass.tree.MicrosoftRuleNode;
@@ -310,4 +312,20 @@ public class SCSSDocumentHandlerImpl implements SCSSDocumentHandler {
separator);
nodeStack.peek().appendChild(node);
}
+
+ @Override
+ public void appendDirective(String variable, String list, String append,
+ String separator) {
+ ListAppendNode node = new ListAppendNode(variable, list, append,
+ separator);
+ nodeStack.peek().appendChild(node);
+ }
+
+ @Override
+ public void containsDirective(String variable, String list,
+ String contains, String separator) {
+ ListContainsNode node = new ListContainsNode(variable, list, contains,
+ separator);
+ nodeStack.peek().appendChild(node);
+ }
}
diff --git a/theme-compiler/src/com/vaadin/sass/parser/LexicalUnitImpl.java b/theme-compiler/src/com/vaadin/sass/parser/LexicalUnitImpl.java
index 661dac6125..1548538a88 100644
--- a/theme-compiler/src/com/vaadin/sass/parser/LexicalUnitImpl.java
+++ b/theme-compiler/src/com/vaadin/sass/parser/LexicalUnitImpl.java
@@ -628,4 +628,22 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit,
public void setFunctionName(String functionName) {
fname = functionName;
}
+
+ public static LexicalUnitImpl createIdent(String s) {
+ return new LexicalUnitImpl(0, 0, null, SAC_IDENT, s);
+ }
+
+ public static void replaceValues(LexicalUnitImpl unit,
+ LexicalUnitImpl replaceWith) {
+ unit.setLexicalUnitType(replaceWith.getLexicalUnitType());
+ unit.setStringValue(replaceWith.getStringValue());
+ unit.setFloatValue(replaceWith.getFloatValue());
+ unit.setIntegerValue(replaceWith.getIntegerValue());
+ unit.setFunctionName(replaceWith.getFunctionName());
+
+ if (replaceWith.getParameters() != null) {
+ unit.setParameters(replaceWith.getParameters());
+ }
+
+ }
}
diff --git a/theme-compiler/src/com/vaadin/sass/parser/Parser.java b/theme-compiler/src/com/vaadin/sass/parser/Parser.java
index f5a2e4e432..33411bd57d 100644
--- a/theme-compiler/src/com/vaadin/sass/parser/Parser.java
+++ b/theme-compiler/src/com/vaadin/sass/parser/Parser.java
@@ -554,7 +554,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case VARIABLE:
if (jj_2_1(5)) {
- removeDirective();
+ listModifyDirective();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case VARIABLE:
@@ -567,6 +567,9 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
}
}
break;
+ case IF_SYM:
+ ifDirective();
+ break;
case MIXIN_SYM:
mixinDirective();
break;
@@ -1598,7 +1601,7 @@ char connector = ' ';
default:
jj_la1[61] = jj_gen;
if (jj_2_2(5)) {
- removeDirective();
+ listModifyDirective();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case INCLUDE_SYM:
@@ -2860,7 +2863,7 @@ boolean isPseudoElement = false;
default:
jj_la1[121] = jj_gen;
if (jj_2_7(5)) {
- removeDirective();
+ listModifyDirective();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case MEDIA_SYM:
@@ -3059,35 +3062,43 @@ boolean isPseudoElement = false;
case MEDIA_SYM:
media();
break;
- case EACH_SYM:
- eachDirective();
- break;
- case EXTEND_SYM:
- extendDirective();
- break;
- case VARIABLE:
- variable();
- break;
default:
jj_la1[134] = jj_gen;
- if (jj_2_9(3)) {
- declarationOrNestedProperties();
+ if (jj_2_9(5)) {
+ listModifyDirective();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case LBRACKET:
- case ANY:
- case PARENT:
- case DOT:
- case COLON:
- case INTERPOLATION:
- case IDENT:
- case HASH:
- styleRule();
+ case EACH_SYM:
+ eachDirective();
+ break;
+ case EXTEND_SYM:
+ extendDirective();
+ break;
+ case VARIABLE:
+ variable();
break;
default:
jj_la1[135] = jj_gen;
- jj_consume_token(-1);
- throw new ParseException();
+ if (jj_2_10(3)) {
+ declarationOrNestedProperties();
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LBRACKET:
+ case ANY:
+ case PARENT:
+ case DOT:
+ case COLON:
+ case INTERPOLATION:
+ case IDENT:
+ case HASH:
+ styleRule();
+ break;
+ default:
+ jj_la1[136] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
}
}
}
@@ -3100,7 +3111,7 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[136] = jj_gen;
+ jj_la1[137] = jj_gen;
break label_88;
}
jj_consume_token(S);
@@ -3120,7 +3131,7 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[137] = jj_gen;
+ jj_la1[138] = jj_gen;
break label_89;
}
jj_consume_token(COMMA);
@@ -3131,7 +3142,7 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[138] = jj_gen;
+ jj_la1[139] = jj_gen;
break label_90;
}
jj_consume_token(S);
@@ -3180,7 +3191,7 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[139] = jj_gen;
+ jj_la1[140] = jj_gen;
break label_91;
}
jj_consume_token(S);
@@ -3189,7 +3200,7 @@ boolean isPseudoElement = false;
prev = first;
label_92:
while (true) {
- if (jj_2_10(3)) {
+ if (jj_2_11(3)) {
;
} else {
break label_92;
@@ -3204,14 +3215,14 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[140] = jj_gen;
+ jj_la1[141] = jj_gen;
break label_93;
}
jj_consume_token(S);
}
break;
default:
- jj_la1[141] = jj_gen;
+ jj_la1[142] = jj_gen;
;
}
prev = nonVariableTerm(prev);
@@ -3223,13 +3234,13 @@ boolean isPseudoElement = false;
prev, variable.image);
break;
default:
- jj_la1[142] = jj_gen;
+ jj_la1[143] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
- jj_la1[143] = jj_gen;
+ jj_la1[144] = jj_gen;
;
}
VariableNode arg = new VariableNode(name, first, false);
@@ -3249,6 +3260,7 @@ boolean isPseudoElement = false;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PLUS:
case MINUS:
+ case DOT:
case COLON:
case STRING:
case IDENT:
@@ -3278,7 +3290,7 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[144] = jj_gen;
+ jj_la1[145] = jj_gen;
break label_94;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -3291,14 +3303,14 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[145] = jj_gen;
+ jj_la1[146] = jj_gen;
break label_95;
}
jj_consume_token(S);
}
break;
default:
- jj_la1[146] = jj_gen;
+ jj_la1[147] = jj_gen;
;
}
next = term(prev);
@@ -3311,7 +3323,7 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[147] = jj_gen;
+ jj_la1[148] = jj_gen;
break label_96;
}
jj_consume_token(COMMA);
@@ -3322,7 +3334,7 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[148] = jj_gen;
+ jj_la1[149] = jj_gen;
break label_97;
}
jj_consume_token(S);
@@ -3334,6 +3346,7 @@ boolean isPseudoElement = false;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PLUS:
case MINUS:
+ case DOT:
case COLON:
case STRING:
case IDENT:
@@ -3363,7 +3376,7 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[149] = jj_gen;
+ jj_la1[150] = jj_gen;
break label_98;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -3376,14 +3389,14 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[150] = jj_gen;
+ jj_la1[151] = jj_gen;
break label_99;
}
jj_consume_token(S);
}
break;
default:
- jj_la1[151] = jj_gen;
+ jj_la1[152] = jj_gen;
;
}
next = term(prev);
@@ -3405,7 +3418,7 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[152] = jj_gen;
+ jj_la1[153] = jj_gen;
break label_100;
}
jj_consume_token(S);
@@ -3420,7 +3433,7 @@ boolean isPseudoElement = false;
jj_consume_token(RPARAN);
break;
default:
- jj_la1[153] = jj_gen;
+ jj_la1[154] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -3434,7 +3447,7 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[154] = jj_gen;
+ jj_la1[155] = jj_gen;
break label_102;
}
jj_consume_token(S);
@@ -3444,17 +3457,30 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[155] = jj_gen;
+ jj_la1[156] = jj_gen;
break label_101;
}
}
documentHandler.includeDirective(name, args);
}
+ final public void listModifyDirective() throws ParseException {
+ if (jj_2_12(5)) {
+ removeDirective();
+ } else if (jj_2_13(5)) {
+ appendDirective();
+ } else if (jj_2_14(5)) {
+ containsDirective();
+ } else {
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
+
/**
* @exception ParseException exception during the parse
*/
- final public void removeDirective() throws ParseException {
+ final public void appendDirective() throws ParseException {
String list = null;
String remove = null;
String separator = null;
@@ -3469,7 +3495,7 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[156] = jj_gen;
+ jj_la1[157] = jj_gen;
break label_103;
}
jj_consume_token(S);
@@ -3482,12 +3508,12 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[157] = jj_gen;
+ jj_la1[158] = jj_gen;
break label_104;
}
jj_consume_token(S);
}
- jj_consume_token(REMOVE);
+ jj_consume_token(APPEND);
label_105:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -3495,18 +3521,18 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[158] = jj_gen;
+ jj_la1[159] = jj_gen;
break label_105;
}
jj_consume_token(S);
}
- list = removeDirectiveArgs(0);
+ list = listModifyDirectiveArgs(0);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case RPARAN:
jj_consume_token(RPARAN);
break;
default:
- jj_la1[159] = jj_gen;
+ jj_la1[160] = jj_gen;
;
}
jj_consume_token(COMMA);
@@ -3517,12 +3543,12 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[160] = jj_gen;
+ jj_la1[161] = jj_gen;
break label_106;
}
jj_consume_token(S);
}
- remove = removeDirectiveArgs(1);
+ remove = listModifyDirectiveArgs(1);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case COMMA:
jj_consume_token(COMMA);
@@ -3533,7 +3559,7 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[161] = jj_gen;
+ jj_la1[162] = jj_gen;
break label_107;
}
jj_consume_token(S);
@@ -3547,14 +3573,14 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[162] = jj_gen;
+ jj_la1[163] = jj_gen;
break label_108;
}
jj_consume_token(S);
}
break;
default:
- jj_la1[163] = jj_gen;
+ jj_la1[164] = jj_gen;
;
}
jj_consume_token(RPARAN);
@@ -3565,7 +3591,7 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[164] = jj_gen;
+ jj_la1[165] = jj_gen;
break label_109;
}
jj_consume_token(S);
@@ -3578,15 +3604,285 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[165] = jj_gen;
+ jj_la1[166] = jj_gen;
break label_110;
}
jj_consume_token(S);
}
+ documentHandler.appendDirective(variable,list,remove,separator);
+ }
+
+/**
+ * @exception ParseException exception during the parse
+ */
+ final public void removeDirective() throws ParseException {
+ String list = null;
+ String remove = null;
+ String separator = null;
+ String variable = null;
+ Token n = null;
+ n = jj_consume_token(VARIABLE);
+ variable = n.image;
+ label_111:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case S:
+ ;
+ break;
+ default:
+ jj_la1[167] = jj_gen;
+ break label_111;
+ }
+ jj_consume_token(S);
+ }
+ jj_consume_token(COLON);
+ label_112:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case S:
+ ;
+ break;
+ default:
+ jj_la1[168] = jj_gen;
+ break label_112;
+ }
+ jj_consume_token(S);
+ }
+ jj_consume_token(REMOVE);
+ label_113:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case S:
+ ;
+ break;
+ default:
+ jj_la1[169] = jj_gen;
+ break label_113;
+ }
+ jj_consume_token(S);
+ }
+ list = listModifyDirectiveArgs(0);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case RPARAN:
+ jj_consume_token(RPARAN);
+ break;
+ default:
+ jj_la1[170] = jj_gen;
+ ;
+ }
+ jj_consume_token(COMMA);
+ label_114:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case S:
+ ;
+ break;
+ default:
+ jj_la1[171] = jj_gen;
+ break label_114;
+ }
+ jj_consume_token(S);
+ }
+ remove = listModifyDirectiveArgs(1);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ jj_consume_token(COMMA);
+ label_115:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case S:
+ ;
+ break;
+ default:
+ jj_la1[172] = jj_gen;
+ break label_115;
+ }
+ jj_consume_token(S);
+ }
+ n = jj_consume_token(IDENT);
+ separator = n.image;
+ label_116:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case S:
+ ;
+ break;
+ default:
+ jj_la1[173] = jj_gen;
+ break label_116;
+ }
+ jj_consume_token(S);
+ }
+ break;
+ default:
+ jj_la1[174] = jj_gen;
+ ;
+ }
+ jj_consume_token(RPARAN);
+ label_117:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case S:
+ ;
+ break;
+ default:
+ jj_la1[175] = jj_gen;
+ break label_117;
+ }
+ jj_consume_token(S);
+ }
+ jj_consume_token(SEMICOLON);
+ label_118:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case S:
+ ;
+ break;
+ default:
+ jj_la1[176] = jj_gen;
+ break label_118;
+ }
+ jj_consume_token(S);
+ }
documentHandler.removeDirective(variable,list,remove,separator);
}
- String removeDirectiveArgs(int nest) throws ParseException {
+/**
+ * @exception ParseException exception during the parse
+ */
+ final public void containsDirective() throws ParseException {
+ String list = null;
+ String remove = null;
+ String separator = null;
+ String variable = null;
+ Token n = null;
+ n = jj_consume_token(VARIABLE);
+ variable = n.image;
+ label_119:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case S:
+ ;
+ break;
+ default:
+ jj_la1[177] = jj_gen;
+ break label_119;
+ }
+ jj_consume_token(S);
+ }
+ jj_consume_token(COLON);
+ label_120:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case S:
+ ;
+ break;
+ default:
+ jj_la1[178] = jj_gen;
+ break label_120;
+ }
+ jj_consume_token(S);
+ }
+ jj_consume_token(CONTAINS);
+ label_121:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case S:
+ ;
+ break;
+ default:
+ jj_la1[179] = jj_gen;
+ break label_121;
+ }
+ jj_consume_token(S);
+ }
+ list = listModifyDirectiveArgs(0);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case RPARAN:
+ jj_consume_token(RPARAN);
+ break;
+ default:
+ jj_la1[180] = jj_gen;
+ ;
+ }
+ jj_consume_token(COMMA);
+ label_122:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case S:
+ ;
+ break;
+ default:
+ jj_la1[181] = jj_gen;
+ break label_122;
+ }
+ jj_consume_token(S);
+ }
+ remove = listModifyDirectiveArgs(1);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COMMA:
+ jj_consume_token(COMMA);
+ label_123:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case S:
+ ;
+ break;
+ default:
+ jj_la1[182] = jj_gen;
+ break label_123;
+ }
+ jj_consume_token(S);
+ }
+ n = jj_consume_token(IDENT);
+ separator = n.image;
+ label_124:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case S:
+ ;
+ break;
+ default:
+ jj_la1[183] = jj_gen;
+ break label_124;
+ }
+ jj_consume_token(S);
+ }
+ break;
+ default:
+ jj_la1[184] = jj_gen;
+ ;
+ }
+ jj_consume_token(RPARAN);
+ label_125:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case S:
+ ;
+ break;
+ default:
+ jj_la1[185] = jj_gen;
+ break label_125;
+ }
+ jj_consume_token(S);
+ }
+ jj_consume_token(SEMICOLON);
+ label_126:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case S:
+ ;
+ break;
+ default:
+ jj_la1[186] = jj_gen;
+ break label_126;
+ }
+ jj_consume_token(S);
+ }
+ documentHandler.containsDirective(variable,list,remove,separator);
+ }
+
+ String listModifyDirectiveArgs(int nest) throws ParseException {
String list = "";
int nesting = nest;
Token t = null;
@@ -3691,20 +3987,20 @@ boolean isPseudoElement = false;
exclusive = false;
break;
default:
- jj_la1[166] = jj_gen;
+ jj_la1[187] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
to = skipStatementUntilLeftBrace();
- label_111:
+ label_127:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[167] = jj_gen;
- break label_111;
+ jj_la1[188] = jj_gen;
+ break label_127;
}
jj_consume_token(S);
}
@@ -3725,31 +4021,31 @@ boolean isPseudoElement = false;
final public void extendDirective() throws ParseException {
ArrayList<String> list;
jj_consume_token(EXTEND_SYM);
- label_112:
+ label_128:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[168] = jj_gen;
- break label_112;
+ jj_la1[189] = jj_gen;
+ break label_128;
}
jj_consume_token(S);
}
list = selectorList();
- label_113:
+ label_129:
while (true) {
jj_consume_token(SEMICOLON);
- label_114:
+ label_130:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[169] = jj_gen;
- break label_114;
+ jj_la1[190] = jj_gen;
+ break label_130;
}
jj_consume_token(S);
}
@@ -3758,8 +4054,8 @@ boolean isPseudoElement = false;
;
break;
default:
- jj_la1[170] = jj_gen;
- break label_113;
+ jj_la1[191] = jj_gen;
+ break label_129;
}
}
documentHandler.extendDirective(list);
@@ -3786,28 +4082,28 @@ boolean isPseudoElement = false;
LexicalUnit exp;
name = property();
jj_consume_token(COLON);
- label_115:
+ label_131:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[171] = jj_gen;
- break label_115;
+ jj_la1[192] = jj_gen;
+ break label_131;
}
jj_consume_token(S);
}
jj_consume_token(LBRACE);
- label_116:
+ label_132:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[172] = jj_gen;
- break label_116;
+ jj_la1[193] = jj_gen;
+ break label_132;
}
jj_consume_token(S);
}
@@ -3817,29 +4113,29 @@ LexicalUnit exp;
declaration();
break;
default:
- jj_la1[173] = jj_gen;
+ jj_la1[194] = jj_gen;
;
}
- label_117:
+ label_133:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case SEMICOLON:
;
break;
default:
- jj_la1[174] = jj_gen;
- break label_117;
+ jj_la1[195] = jj_gen;
+ break label_133;
}
jj_consume_token(SEMICOLON);
- label_118:
+ label_134:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[175] = jj_gen;
- break label_118;
+ jj_la1[196] = jj_gen;
+ break label_134;
}
jj_consume_token(S);
}
@@ -3848,21 +4144,21 @@ LexicalUnit exp;
declaration();
break;
default:
- jj_la1[176] = jj_gen;
+ jj_la1[197] = jj_gen;
;
}
}
jj_consume_token(RBRACE);
documentHandler.endNestedProperties(name);
- label_119:
+ label_135:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[177] = jj_gen;
- break label_119;
+ jj_la1[198] = jj_gen;
+ break label_135;
}
jj_consume_token(S);
}
@@ -3881,21 +4177,22 @@ LexicalUnit exp;
name = property();
save = token;
jj_consume_token(COLON);
- label_120:
+ label_136:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[178] = jj_gen;
- break label_120;
+ jj_la1[199] = jj_gen;
+ break label_136;
}
jj_consume_token(S);
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PLUS:
case MINUS:
+ case DOT:
case STRING:
case IDENT:
case NUMBER:
@@ -3927,7 +4224,7 @@ LexicalUnit exp;
important = prio();
break;
default:
- jj_la1[179] = jj_gen;
+ jj_la1[200] = jj_gen;
;
}
Token next = getToken(1);
@@ -3945,15 +4242,15 @@ LexicalUnit exp;
break;
case LBRACE:
jj_consume_token(LBRACE);
- label_121:
+ label_137:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[180] = jj_gen;
- break label_121;
+ jj_la1[201] = jj_gen;
+ break label_137;
}
jj_consume_token(S);
}
@@ -3963,29 +4260,29 @@ LexicalUnit exp;
declaration();
break;
default:
- jj_la1[181] = jj_gen;
+ jj_la1[202] = jj_gen;
;
}
- label_122:
+ label_138:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case SEMICOLON:
;
break;
default:
- jj_la1[182] = jj_gen;
- break label_122;
+ jj_la1[203] = jj_gen;
+ break label_138;
}
jj_consume_token(SEMICOLON);
- label_123:
+ label_139:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[183] = jj_gen;
- break label_123;
+ jj_la1[204] = jj_gen;
+ break label_139;
}
jj_consume_token(S);
}
@@ -3994,27 +4291,27 @@ LexicalUnit exp;
declaration();
break;
default:
- jj_la1[184] = jj_gen;
+ jj_la1[205] = jj_gen;
;
}
}
jj_consume_token(RBRACE);
- label_124:
+ label_140:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[185] = jj_gen;
- break label_124;
+ jj_la1[206] = jj_gen;
+ break label_140;
}
jj_consume_token(S);
}
documentHandler.endNestedProperties(name);
break;
default:
- jj_la1[186] = jj_gen;
+ jj_la1[207] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -4064,15 +4361,15 @@ LexicalUnit exp;
name = property();
save = token;
jj_consume_token(COLON);
- label_125:
+ label_141:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[187] = jj_gen;
- break label_125;
+ jj_la1[208] = jj_gen;
+ break label_141;
}
jj_consume_token(S);
}
@@ -4082,7 +4379,7 @@ LexicalUnit exp;
important = prio();
break;
default:
- jj_la1[188] = jj_gen;
+ jj_la1[209] = jj_gen;
;
}
documentHandler.property(name, exp, important);
@@ -4125,15 +4422,15 @@ LexicalUnit exp;
*/
final public boolean prio() throws ParseException {
jj_consume_token(IMPORTANT_SYM);
- label_126:
+ label_142:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[189] = jj_gen;
- break label_126;
+ jj_la1[210] = jj_gen;
+ break label_142;
}
jj_consume_token(S);
}
@@ -4143,15 +4440,15 @@ LexicalUnit exp;
final public boolean guarded() throws ParseException {
jj_consume_token(GUARDED_SYM);
- label_127:
+ label_143:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[190] = jj_gen;
- break label_127;
+ jj_la1[211] = jj_gen;
+ break label_143;
}
jj_consume_token(S);
}
@@ -4167,15 +4464,15 @@ LexicalUnit exp;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case DIV:
n = jj_consume_token(DIV);
- label_128:
+ label_144:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[191] = jj_gen;
- break label_128;
+ jj_la1[212] = jj_gen;
+ break label_144;
}
jj_consume_token(S);
}
@@ -4185,15 +4482,15 @@ LexicalUnit exp;
break;
case COMMA:
n = jj_consume_token(COMMA);
- label_129:
+ label_145:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[192] = jj_gen;
- break label_129;
+ jj_la1[213] = jj_gen;
+ break label_145;
}
jj_consume_token(S);
}
@@ -4202,7 +4499,7 @@ LexicalUnit exp;
prev);}
break;
default:
- jj_la1[193] = jj_gen;
+ jj_la1[214] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -4217,12 +4514,12 @@ LexicalUnit exp;
char op;
first = term(null);
res = first;
- label_130:
+ label_146:
while (true) {
- if (jj_2_11(2)) {
+ if (jj_2_15(2)) {
;
} else {
- break label_130;
+ break label_146;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case COMMA:
@@ -4230,7 +4527,7 @@ LexicalUnit exp;
res = operator(res);
break;
default:
- jj_la1[194] = jj_gen;
+ jj_la1[215] = jj_gen;
;
}
res = term(res);
@@ -4253,7 +4550,7 @@ LexicalUnit exp;
{if (true) return '+';}
break;
default:
- jj_la1[195] = jj_gen;
+ jj_la1[216] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -4270,6 +4567,7 @@ LexicalUnit exp;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PLUS:
case MINUS:
+ case DOT:
case STRING:
case IDENT:
case NUMBER:
@@ -4300,7 +4598,7 @@ LexicalUnit exp;
result = variableTerm(prev);
break;
default:
- jj_la1[196] = jj_gen;
+ jj_la1[217] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -4322,6 +4620,7 @@ LexicalUnitImpl result = null;
Token n = null;
char op = ' ';
String varName;
+ String s = "";
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PLUS:
case MINUS:
@@ -4350,7 +4649,7 @@ LexicalUnitImpl result = null;
op = unaryOperator();
break;
default:
- jj_la1[197] = jj_gen;
+ jj_la1[218] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -4441,7 +4740,7 @@ LexicalUnitImpl result = null;
break;
case DIMEN:
n = jj_consume_token(DIMEN);
- String s = n.image;
+ s = n.image;
int i = 0;
while (i < s.length()
&& (Character.isDigit(s.charAt(i)) || (s.charAt(i) == '.'))) {
@@ -4455,11 +4754,12 @@ LexicalUnitImpl result = null;
result = function(op, prev);
break;
default:
- jj_la1[198] = jj_gen;
+ jj_la1[219] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
+ case DOT:
case STRING:
case IDENT:
case URL:
@@ -4473,9 +4773,19 @@ LexicalUnitImpl result = null;
convertStringIndex(n.image, 1,
n.image.length() -1));
break;
+ case DOT:
case IDENT:
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case DOT:
+ jj_consume_token(DOT);
+ s+=".";
+ break;
+ default:
+ jj_la1[220] = jj_gen;
+ ;
+ }
n = jj_consume_token(IDENT);
- String s = convertIdent(n.image);
+ s += convertIdent(n.image);
if ("inherit".equals(s)) {
result = LexicalUnitImpl.createInherit(n.beginLine, n.beginColumn,
prev);
@@ -4518,25 +4828,25 @@ LexicalUnitImpl result = null;
result = unicode(prev);
break;
default:
- jj_la1[199] = jj_gen;
+ jj_la1[221] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
- jj_la1[200] = jj_gen;
+ jj_la1[222] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
- label_131:
+ label_147:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[201] = jj_gen;
- break label_131;
+ jj_la1[223] = jj_gen;
+ break label_147;
}
jj_consume_token(S);
}
@@ -4552,15 +4862,15 @@ LexicalUnitImpl result = null;
Token n;
LexicalUnit params = null;
n = jj_consume_token(FUNCTION);
- label_132:
+ label_148:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[202] = jj_gen;
- break label_132;
+ jj_la1[224] = jj_gen;
+ break label_148;
}
jj_consume_token(S);
}
@@ -4573,6 +4883,7 @@ LexicalUnitImpl result = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PLUS:
case MINUS:
+ case DOT:
case STRING:
case IDENT:
case NUMBER:
@@ -4601,7 +4912,7 @@ LexicalUnitImpl result = null;
params = expr();
break;
default:
- jj_la1[203] = jj_gen;
+ jj_la1[225] = jj_gen;
;
}
jj_consume_token(RPARAN);
@@ -5072,15 +5383,15 @@ LexicalUnitImpl result = null;
*/
final public void _parseRule() throws ParseException {
String ret = null;
- label_133:
+ label_149:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[204] = jj_gen;
- break label_133;
+ jj_la1[226] = jj_gen;
+ break label_149;
}
jj_consume_token(S);
}
@@ -5108,7 +5419,7 @@ LexicalUnitImpl result = null;
fontFace();
break;
default:
- jj_la1[205] = jj_gen;
+ jj_la1[227] = jj_gen;
ret = skipStatement();
if ((ret == null) || (ret.length() == 0)) {
{if (true) return;}
@@ -5123,15 +5434,15 @@ LexicalUnitImpl result = null;
}
final public void _parseImportRule() throws ParseException {
- label_134:
+ label_150:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[206] = jj_gen;
- break label_134;
+ jj_la1[228] = jj_gen;
+ break label_150;
}
jj_consume_token(S);
}
@@ -5139,15 +5450,15 @@ LexicalUnitImpl result = null;
}
final public void _parseMediaRule() throws ParseException {
- label_135:
+ label_151:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[207] = jj_gen;
- break label_135;
+ jj_la1[229] = jj_gen;
+ break label_151;
}
jj_consume_token(S);
}
@@ -5155,15 +5466,15 @@ LexicalUnitImpl result = null;
}
final public void _parseDeclarationBlock() throws ParseException {
- label_136:
+ label_152:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[208] = jj_gen;
- break label_136;
+ jj_la1[230] = jj_gen;
+ break label_152;
}
jj_consume_token(S);
}
@@ -5172,29 +5483,29 @@ LexicalUnitImpl result = null;
declaration();
break;
default:
- jj_la1[209] = jj_gen;
+ jj_la1[231] = jj_gen;
;
}
- label_137:
+ label_153:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case SEMICOLON:
;
break;
default:
- jj_la1[210] = jj_gen;
- break label_137;
+ jj_la1[232] = jj_gen;
+ break label_153;
}
jj_consume_token(SEMICOLON);
- label_138:
+ label_154:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[211] = jj_gen;
- break label_138;
+ jj_la1[233] = jj_gen;
+ break label_154;
}
jj_consume_token(S);
}
@@ -5203,7 +5514,7 @@ LexicalUnitImpl result = null;
declaration();
break;
default:
- jj_la1[212] = jj_gen;
+ jj_la1[234] = jj_gen;
;
}
}
@@ -5212,15 +5523,15 @@ LexicalUnitImpl result = null;
final public ArrayList<String> _parseSelectors() throws ParseException {
ArrayList<String> p = null;
try {
- label_139:
+ label_155:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case S:
;
break;
default:
- jj_la1[213] = jj_gen;
- break label_139;
+ jj_la1[235] = jj_gen;
+ break label_155;
}
jj_consume_token(S);
}
@@ -5309,228 +5620,172 @@ LexicalUnitImpl result = null;
finally { jj_save(10, xla); }
}
- private boolean jj_3_1() {
- if (jj_3R_140()) return true;
- return false;
- }
-
- private boolean jj_3R_196() {
- if (jj_scan_token(IDENT)) return true;
- return false;
- }
-
- private boolean jj_3R_195() {
- if (jj_scan_token(STRING)) return true;
- return false;
- }
-
- private boolean jj_3R_194() {
- if (jj_3R_218()) return true;
- return false;
- }
-
- private boolean jj_3R_163() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_195()) {
- jj_scanpos = xsp;
- if (jj_3R_196()) {
- jj_scanpos = xsp;
- if (jj_3R_197()) {
- jj_scanpos = xsp;
- if (jj_3R_198()) {
- jj_scanpos = xsp;
- if (jj_3R_199()) return true;
- }
- }
- }
- }
- return false;
- }
-
- private boolean jj_3_4() {
- if (jj_3R_143()) return true;
- if (jj_3R_144()) return true;
- return false;
- }
-
- private boolean jj_3_7() {
- if (jj_3R_140()) return true;
- return false;
- }
-
- private boolean jj_3R_193() {
- if (jj_scan_token(DIMEN)) return true;
- return false;
- }
-
- private boolean jj_3R_172() {
- if (jj_scan_token(COLON)) return true;
- return false;
- }
-
- private boolean jj_3_6() {
- if (jj_3R_145()) return true;
- return false;
- }
-
- private boolean jj_3R_192() {
- if (jj_scan_token(KHZ)) return true;
- return false;
- }
-
- private boolean jj_3R_191() {
- if (jj_scan_token(HZ)) return true;
- return false;
- }
-
- private boolean jj_3R_190() {
- if (jj_scan_token(MS)) return true;
- return false;
- }
-
- private boolean jj_3R_189() {
- if (jj_scan_token(SECOND)) return true;
- return false;
+ private boolean jj_2_12(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_12(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(11, xla); }
}
- private boolean jj_3R_188() {
- if (jj_scan_token(GRAD)) return true;
- return false;
+ private boolean jj_2_13(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_13(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(12, xla); }
}
- private boolean jj_3R_187() {
- if (jj_scan_token(RAD)) return true;
- return false;
+ private boolean jj_2_14(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_14(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(13, xla); }
}
- private boolean jj_3_5() {
- if (jj_3R_145()) return true;
- return false;
+ private boolean jj_2_15(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_15(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(14, xla); }
}
- private boolean jj_3R_186() {
+ private boolean jj_3R_205() {
if (jj_scan_token(DEG)) return true;
return false;
}
- private boolean jj_3R_185() {
+ private boolean jj_3R_204() {
if (jj_scan_token(EXS)) return true;
return false;
}
- private boolean jj_3_2() {
- if (jj_3R_140()) return true;
+ private boolean jj_3R_203() {
+ if (jj_scan_token(EMS)) return true;
return false;
}
- private boolean jj_3R_184() {
- if (jj_scan_token(EMS)) return true;
+ private boolean jj_3_1() {
+ if (jj_3R_156()) return true;
return false;
}
- private boolean jj_3R_183() {
+ private boolean jj_3R_202() {
if (jj_scan_token(PX)) return true;
return false;
}
- private boolean jj_3R_182() {
+ private boolean jj_3R_201() {
if (jj_scan_token(IN)) return true;
return false;
}
- private boolean jj_3R_181() {
+ private boolean jj_3R_200() {
if (jj_scan_token(PC)) return true;
return false;
}
- private boolean jj_3R_180() {
+ private boolean jj_3R_199() {
if (jj_scan_token(MM)) return true;
return false;
}
- private boolean jj_3R_179() {
+ private boolean jj_3R_198() {
if (jj_scan_token(CM)) return true;
return false;
}
- private boolean jj_3R_161() {
+ private boolean jj_3R_180() {
if (jj_scan_token(LBRACE)) return true;
return false;
}
- private boolean jj_3R_178() {
+ private boolean jj_3R_197() {
if (jj_scan_token(PT)) return true;
return false;
}
- private boolean jj_3R_177() {
+ private boolean jj_3R_196() {
if (jj_scan_token(PERCENTAGE)) return true;
return false;
}
- private boolean jj_3R_166() {
- if (jj_3R_202()) return true;
+ private boolean jj_3_4() {
+ if (jj_3R_159()) return true;
+ if (jj_3R_160()) return true;
return false;
}
- private boolean jj_3R_176() {
+ private boolean jj_3R_185() {
+ if (jj_3R_221()) return true;
+ return false;
+ }
+
+ private boolean jj_3_7() {
+ if (jj_3R_156()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_195() {
if (jj_scan_token(NUMBER)) return true;
return false;
}
- private boolean jj_3R_228() {
- if (jj_scan_token(INTERPOLATION)) return true;
+ private boolean jj_3R_194() {
+ if (jj_3R_236()) return true;
return false;
}
- private boolean jj_3R_175() {
- if (jj_3R_217()) return true;
+ private boolean jj_3R_191() {
+ if (jj_scan_token(COLON)) return true;
return false;
}
- private boolean jj_3R_162() {
+ private boolean jj_3_6() {
+ if (jj_3R_161()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_181() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_175()) jj_scanpos = xsp;
+ if (jj_3R_194()) jj_scanpos = xsp;
xsp = jj_scanpos;
- if (jj_3R_176()) {
+ if (jj_3R_195()) {
jj_scanpos = xsp;
- if (jj_3R_177()) {
+ if (jj_3R_196()) {
jj_scanpos = xsp;
- if (jj_3R_178()) {
+ if (jj_3R_197()) {
jj_scanpos = xsp;
- if (jj_3R_179()) {
+ if (jj_3R_198()) {
jj_scanpos = xsp;
- if (jj_3R_180()) {
+ if (jj_3R_199()) {
jj_scanpos = xsp;
- if (jj_3R_181()) {
+ if (jj_3R_200()) {
jj_scanpos = xsp;
- if (jj_3R_182()) {
+ if (jj_3R_201()) {
jj_scanpos = xsp;
- if (jj_3R_183()) {
+ if (jj_3R_202()) {
jj_scanpos = xsp;
- if (jj_3R_184()) {
+ if (jj_3R_203()) {
jj_scanpos = xsp;
- if (jj_3R_185()) {
+ if (jj_3R_204()) {
jj_scanpos = xsp;
- if (jj_3R_186()) {
+ if (jj_3R_205()) {
jj_scanpos = xsp;
- if (jj_3R_187()) {
+ if (jj_3R_206()) {
jj_scanpos = xsp;
- if (jj_3R_188()) {
+ if (jj_3R_207()) {
jj_scanpos = xsp;
- if (jj_3R_189()) {
+ if (jj_3R_208()) {
jj_scanpos = xsp;
- if (jj_3R_190()) {
+ if (jj_3R_209()) {
jj_scanpos = xsp;
- if (jj_3R_191()) {
+ if (jj_3R_210()) {
jj_scanpos = xsp;
- if (jj_3R_192()) {
+ if (jj_3R_211()) {
jj_scanpos = xsp;
- if (jj_3R_193()) {
+ if (jj_3R_212()) {
jj_scanpos = xsp;
- if (jj_3R_194()) return true;
+ if (jj_3R_213()) return true;
}
}
}
@@ -5552,17 +5807,17 @@ LexicalUnitImpl result = null;
return false;
}
- private boolean jj_3R_160() {
- if (jj_3R_174()) return true;
+ private boolean jj_3R_179() {
+ if (jj_3R_193()) return true;
return false;
}
- private boolean jj_3R_147() {
+ private boolean jj_3R_163() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_162()) {
+ if (jj_3R_181()) {
jj_scanpos = xsp;
- if (jj_3R_163()) return true;
+ if (jj_3R_182()) return true;
}
while (true) {
xsp = jj_scanpos;
@@ -5571,63 +5826,178 @@ LexicalUnitImpl result = null;
return false;
}
- private boolean jj_3R_173() {
- if (jj_scan_token(LBRACKET)) return true;
+ private boolean jj_3R_161() {
+ if (jj_3R_178()) return true;
+ if (jj_scan_token(COLON)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+ }
+ xsp = jj_scanpos;
+ if (jj_3R_179()) {
+ jj_scanpos = xsp;
+ if (jj_3R_180()) return true;
+ }
return false;
}
- private boolean jj_3R_159() {
- if (jj_scan_token(IDENT)) return true;
+ private boolean jj_3R_239() {
+ if (jj_scan_token(HASH)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_221() {
+ if (jj_3R_242()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_166() {
+ if (jj_scan_token(VARIABLE)) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
}
+ if (jj_scan_token(COLON)) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(CONTAINS)) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+ }
+ if (true) { jj_la = 0; jj_scanpos = jj_lastpos; return false;}
return false;
}
- private boolean jj_3R_145() {
- if (jj_3R_159()) return true;
- if (jj_scan_token(COLON)) return true;
+ private boolean jj_3_5() {
+ if (jj_3R_161()) return true;
+ return false;
+ }
+
+ private boolean jj_3_14() {
+ if (jj_3R_166()) return true;
+ return false;
+ }
+
+ private boolean jj_3_2() {
+ if (jj_3R_156()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_240() {
+ if (jj_scan_token(URL)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_184() {
+ if (jj_3R_163()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_168() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_184()) {
+ jj_scanpos = xsp;
+ if (jj_3R_185()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_167() {
+ if (jj_3R_183()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_164() {
+ if (jj_scan_token(VARIABLE)) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
}
+ if (jj_scan_token(COLON)) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+ }
+ if (jj_scan_token(REMOVE)) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+ }
+ if (true) { jj_la = 0; jj_scanpos = jj_lastpos; return false;}
+ return false;
+ }
+
+ private boolean jj_3R_245() {
+ if (jj_scan_token(PLUS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_244() {
+ if (jj_scan_token(MINUS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_236() {
+ Token xsp;
xsp = jj_scanpos;
- if (jj_3R_160()) {
+ if (jj_3R_244()) {
jj_scanpos = xsp;
- if (jj_3R_161()) return true;
+ if (jj_3R_245()) return true;
}
return false;
}
- private boolean jj_3R_142() {
- if (jj_3R_145()) return true;
+ private boolean jj_3_15() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_167()) jj_scanpos = xsp;
+ if (jj_3R_168()) return true;
return false;
}
- private boolean jj_3R_222() {
- if (jj_scan_token(VARIABLE)) return true;
+ private boolean jj_3_13() {
+ if (jj_3R_165()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_193() {
+ if (jj_3R_168()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+ if (jj_3_15()) { jj_scanpos = xsp; break; }
}
return false;
}
- private boolean jj_3R_219() {
- if (jj_scan_token(HASH)) return true;
+ private boolean jj_3R_248() {
+ if (jj_scan_token(INTERPOLATION)) return true;
return false;
}
- private boolean jj_3R_202() {
- if (jj_3R_222()) return true;
+ private boolean jj_3R_241() {
+ if (jj_scan_token(UNICODERANGE)) return true;
return false;
}
- private boolean jj_3R_140() {
+ private boolean jj_3R_246() {
+ if (jj_3R_193()) return true;
+ return false;
+ }
+
+ private boolean jj_3_10() {
+ if (jj_3R_161()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_165() {
if (jj_scan_token(VARIABLE)) return true;
Token xsp;
while (true) {
@@ -5639,7 +6009,7 @@ LexicalUnitImpl result = null;
xsp = jj_scanpos;
if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
}
- if (jj_scan_token(REMOVE)) return true;
+ if (jj_scan_token(APPEND)) return true;
while (true) {
xsp = jj_scanpos;
if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
@@ -5648,154 +6018,230 @@ LexicalUnitImpl result = null;
return false;
}
- private boolean jj_3R_216() {
- if (jj_scan_token(PARENT)) return true;
+ private boolean jj_3R_192() {
+ if (jj_scan_token(LBRACKET)) return true;
return false;
}
- private boolean jj_3R_215() {
- if (jj_scan_token(ANY)) return true;
+ private boolean jj_3R_158() {
+ if (jj_3R_161()) return true;
return false;
}
- private boolean jj_3R_227() {
+ private boolean jj_3R_220() {
+ if (jj_scan_token(COMMA)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_178() {
if (jj_scan_token(IDENT)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+ }
return false;
}
- private boolean jj_3R_223() {
+ private boolean jj_3R_237() {
+ if (jj_scan_token(FUNCTION)) return true;
Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+ }
xsp = jj_scanpos;
- if (jj_3R_227()) {
- jj_scanpos = xsp;
- if (jj_3R_228()) return true;
+ if (jj_3R_246()) jj_scanpos = xsp;
+ if (jj_scan_token(RPARAN)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_242() {
+ if (jj_scan_token(VARIABLE)) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
}
return false;
}
- private boolean jj_3R_214() {
+ private boolean jj_3R_219() {
+ if (jj_scan_token(DIV)) return true;
Token xsp;
- if (jj_3R_223()) return true;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_223()) { jj_scanpos = xsp; break; }
+ if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
}
return false;
}
- private boolean jj_3R_169() {
+ private boolean jj_3R_183() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_214()) {
+ if (jj_3R_219()) {
jj_scanpos = xsp;
- if (jj_3R_215()) {
+ if (jj_3R_220()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_235() {
+ if (jj_scan_token(PARENT)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_234() {
+ if (jj_scan_token(ANY)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_218() {
+ if (jj_3R_241()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_217() {
+ if (jj_3R_240()) return true;
+ return false;
+ }
+
+ private boolean jj_3_12() {
+ if (jj_3R_164()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_156() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3_12()) {
+ jj_scanpos = xsp;
+ if (jj_3_13()) {
jj_scanpos = xsp;
- if (jj_3R_216()) return true;
+ if (jj_3_14()) return true;
}
}
return false;
}
- private boolean jj_3R_165() {
- if (jj_3R_147()) return true;
+ private boolean jj_3R_247() {
+ if (jj_scan_token(IDENT)) return true;
return false;
}
- private boolean jj_3R_220() {
- if (jj_scan_token(URL)) return true;
+ private boolean jj_3R_243() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_247()) {
+ jj_scanpos = xsp;
+ if (jj_3R_248()) return true;
+ }
+ return false;
+ }
+
+ private boolean jj_3R_216() {
+ if (jj_3R_239()) return true;
return false;
}
- private boolean jj_3R_149() {
+ private boolean jj_3R_233() {
+ Token xsp;
+ if (jj_3R_243()) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_243()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_188() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_165()) {
+ if (jj_3R_233()) {
jj_scanpos = xsp;
- if (jj_3R_166()) return true;
+ if (jj_3R_234()) {
+ jj_scanpos = xsp;
+ if (jj_3R_235()) return true;
+ }
}
return false;
}
- private boolean jj_3R_211() {
+ private boolean jj_3R_230() {
if (jj_scan_token(S)) return true;
return false;
}
- private boolean jj_3R_210() {
+ private boolean jj_3R_229() {
if (jj_scan_token(DOT)) return true;
return false;
}
- private boolean jj_3R_209() {
- if (jj_scan_token(EQ)) return true;
+ private boolean jj_3R_157() {
+ if (jj_3R_169()) return true;
return false;
}
- private boolean jj_3R_148() {
- if (jj_3R_164()) return true;
+ private boolean jj_3R_228() {
+ if (jj_scan_token(EQ)) return true;
return false;
}
- private boolean jj_3R_208() {
+ private boolean jj_3R_227() {
if (jj_scan_token(RPARAN)) return true;
return false;
}
- private boolean jj_3R_207() {
+ private boolean jj_3R_226() {
if (jj_scan_token(FUNCTION)) return true;
return false;
}
- private boolean jj_3R_206() {
+ private boolean jj_3R_225() {
if (jj_scan_token(COLON)) return true;
return false;
}
- private boolean jj_3R_141() {
- if (jj_3R_150()) return true;
- return false;
- }
-
- private boolean jj_3R_205() {
+ private boolean jj_3R_224() {
if (jj_scan_token(INTERPOLATION)) return true;
return false;
}
- private boolean jj_3R_204() {
+ private boolean jj_3R_223() {
if (jj_scan_token(NUMBER)) return true;
return false;
}
- private boolean jj_3_9() {
- if (jj_3R_145()) return true;
- return false;
- }
-
- private boolean jj_3R_203() {
+ private boolean jj_3R_222() {
if (jj_scan_token(IDENT)) return true;
return false;
}
- private boolean jj_3R_167() {
+ private boolean jj_3R_186() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_203()) {
+ if (jj_3R_222()) {
jj_scanpos = xsp;
- if (jj_3R_204()) {
+ if (jj_3R_223()) {
jj_scanpos = xsp;
- if (jj_3R_205()) {
+ if (jj_3R_224()) {
jj_scanpos = xsp;
- if (jj_3R_206()) {
+ if (jj_3R_225()) {
jj_scanpos = xsp;
- if (jj_3R_207()) {
+ if (jj_3R_226()) {
jj_scanpos = xsp;
- if (jj_3R_208()) {
+ if (jj_3R_227()) {
jj_scanpos = xsp;
- if (jj_3R_209()) {
+ if (jj_3R_228()) {
jj_scanpos = xsp;
- if (jj_3R_210()) {
+ if (jj_3R_229()) {
jj_scanpos = xsp;
- if (jj_3R_211()) return true;
+ if (jj_3R_230()) return true;
}
}
}
@@ -5807,40 +6253,22 @@ LexicalUnitImpl result = null;
return false;
}
- private boolean jj_3R_225() {
- if (jj_scan_token(PLUS)) return true;
- return false;
- }
-
- private boolean jj_3R_224() {
- if (jj_scan_token(MINUS)) return true;
- return false;
- }
-
- private boolean jj_3R_217() {
+ private boolean jj_3_3() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_224()) {
+ if (jj_3R_157()) {
jj_scanpos = xsp;
- if (jj_3R_225()) return true;
+ if (jj_3R_158()) return true;
}
return false;
}
- private boolean jj_3R_171() {
+ private boolean jj_3R_190() {
if (jj_scan_token(DOT)) return true;
return false;
}
- private boolean jj_3_11() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_148()) jj_scanpos = xsp;
- if (jj_3R_149()) return true;
- return false;
- }
-
- private boolean jj_3R_150() {
+ private boolean jj_3R_169() {
if (jj_scan_token(MICROSOFT_RULE)) return true;
Token xsp;
while (true) {
@@ -5848,15 +6276,15 @@ LexicalUnitImpl result = null;
if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
}
if (jj_scan_token(COLON)) return true;
- if (jj_3R_167()) return true;
+ if (jj_3R_186()) return true;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_167()) { jj_scanpos = xsp; break; }
+ if (jj_3R_186()) { jj_scanpos = xsp; break; }
}
return false;
}
- private boolean jj_3R_146() {
+ private boolean jj_3R_162() {
if (jj_scan_token(COMMA)) return true;
Token xsp;
while (true) {
@@ -5866,52 +6294,32 @@ LexicalUnitImpl result = null;
return false;
}
- private boolean jj_3R_213() {
+ private boolean jj_3R_232() {
if (jj_scan_token(PRECEDES)) return true;
return false;
}
- private boolean jj_3_3() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_141()) {
- jj_scanpos = xsp;
- if (jj_3R_142()) return true;
- }
- return false;
- }
-
- private boolean jj_3R_174() {
- if (jj_3R_149()) return true;
- Token xsp;
- while (true) {
- xsp = jj_scanpos;
- if (jj_3_11()) { jj_scanpos = xsp; break; }
- }
- return false;
- }
-
- private boolean jj_3R_212() {
+ private boolean jj_3R_231() {
if (jj_scan_token(PLUS)) return true;
return false;
}
- private boolean jj_3R_168() {
+ private boolean jj_3R_187() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_212()) {
+ if (jj_3R_231()) {
jj_scanpos = xsp;
- if (jj_3R_213()) return true;
+ if (jj_3R_232()) return true;
}
return false;
}
- private boolean jj_3R_221() {
- if (jj_scan_token(UNICODERANGE)) return true;
+ private boolean jj_3_8() {
+ if (jj_3R_161()) return true;
return false;
}
- private boolean jj_3R_152() {
+ private boolean jj_3R_171() {
if (jj_scan_token(PRECEDES)) return true;
Token xsp;
while (true) {
@@ -5921,25 +6329,28 @@ LexicalUnitImpl result = null;
return false;
}
- private boolean jj_3_8() {
- if (jj_3R_145()) return true;
+ private boolean jj_3R_238() {
+ if (jj_scan_token(DOT)) return true;
return false;
}
- private boolean jj_3R_226() {
- if (jj_3R_174()) return true;
+ private boolean jj_3R_215() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_238()) jj_scanpos = xsp;
+ if (jj_scan_token(IDENT)) return true;
return false;
}
- private boolean jj_3R_153() {
+ private boolean jj_3R_172() {
if (jj_scan_token(S)) return true;
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_168()) jj_scanpos = xsp;
+ if (jj_3R_187()) jj_scanpos = xsp;
return false;
}
- private boolean jj_3R_151() {
+ private boolean jj_3R_170() {
if (jj_scan_token(PLUS)) return true;
Token xsp;
while (true) {
@@ -5949,122 +6360,123 @@ LexicalUnitImpl result = null;
return false;
}
- private boolean jj_3R_143() {
+ private boolean jj_3R_159() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_151()) {
+ if (jj_3R_170()) {
jj_scanpos = xsp;
- if (jj_3R_152()) {
+ if (jj_3R_171()) {
jj_scanpos = xsp;
- if (jj_3R_153()) return true;
+ if (jj_3R_172()) return true;
}
}
return false;
}
- private boolean jj_3_10() {
+ private boolean jj_3_11() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_146()) jj_scanpos = xsp;
- if (jj_3R_147()) return true;
+ if (jj_3R_162()) jj_scanpos = xsp;
+ if (jj_3R_163()) return true;
return false;
}
- private boolean jj_3R_201() {
- if (jj_scan_token(COMMA)) return true;
- Token xsp;
- while (true) {
- xsp = jj_scanpos;
- if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
- }
+ private boolean jj_3R_214() {
+ if (jj_scan_token(STRING)) return true;
return false;
}
- private boolean jj_3R_218() {
- if (jj_scan_token(FUNCTION)) return true;
- Token xsp;
- while (true) {
- xsp = jj_scanpos;
- if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
- }
- xsp = jj_scanpos;
- if (jj_3R_226()) jj_scanpos = xsp;
- if (jj_scan_token(RPARAN)) return true;
+ private boolean jj_3R_213() {
+ if (jj_3R_237()) return true;
return false;
}
- private boolean jj_3R_200() {
- if (jj_scan_token(DIV)) return true;
+ private boolean jj_3R_182() {
Token xsp;
- while (true) {
- xsp = jj_scanpos;
- if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+ xsp = jj_scanpos;
+ if (jj_3R_214()) {
+ jj_scanpos = xsp;
+ if (jj_3R_215()) {
+ jj_scanpos = xsp;
+ if (jj_3R_216()) {
+ jj_scanpos = xsp;
+ if (jj_3R_217()) {
+ jj_scanpos = xsp;
+ if (jj_3R_218()) return true;
+ }
+ }
+ }
}
return false;
}
- private boolean jj_3R_164() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_200()) {
- jj_scanpos = xsp;
- if (jj_3R_201()) return true;
- }
+ private boolean jj_3R_212() {
+ if (jj_scan_token(DIMEN)) return true;
return false;
}
- private boolean jj_3R_199() {
- if (jj_3R_221()) return true;
+ private boolean jj_3R_177() {
+ if (jj_3R_192()) return true;
return false;
}
- private boolean jj_3R_198() {
- if (jj_3R_220()) return true;
+ private boolean jj_3R_176() {
+ if (jj_3R_191()) return true;
return false;
}
- private boolean jj_3R_158() {
- if (jj_3R_173()) return true;
+ private boolean jj_3R_211() {
+ if (jj_scan_token(KHZ)) return true;
return false;
}
- private boolean jj_3R_197() {
- if (jj_3R_219()) return true;
+ private boolean jj_3R_175() {
+ if (jj_3R_190()) return true;
return false;
}
- private boolean jj_3R_157() {
- if (jj_3R_172()) return true;
+ private boolean jj_3R_210() {
+ if (jj_scan_token(HZ)) return true;
return false;
}
- private boolean jj_3R_156() {
- if (jj_3R_171()) return true;
+ private boolean jj_3R_174() {
+ if (jj_3R_189()) return true;
return false;
}
- private boolean jj_3R_155() {
- if (jj_3R_170()) return true;
+ private boolean jj_3_9() {
+ if (jj_3R_156()) return true;
return false;
}
- private boolean jj_3R_154() {
- if (jj_3R_169()) return true;
+ private boolean jj_3R_209() {
+ if (jj_scan_token(MS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_173() {
+ if (jj_3R_188()) return true;
return false;
}
- private boolean jj_3R_144() {
+ private boolean jj_3R_208() {
+ if (jj_scan_token(SECOND)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_160() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_154()) {
+ if (jj_3R_173()) {
jj_scanpos = xsp;
- if (jj_3R_155()) {
+ if (jj_3R_174()) {
jj_scanpos = xsp;
- if (jj_3R_156()) {
+ if (jj_3R_175()) {
jj_scanpos = xsp;
- if (jj_3R_157()) {
+ if (jj_3R_176()) {
jj_scanpos = xsp;
- if (jj_3R_158()) return true;
+ if (jj_3R_177()) return true;
}
}
}
@@ -6072,11 +6484,21 @@ LexicalUnitImpl result = null;
return false;
}
- private boolean jj_3R_170() {
+ private boolean jj_3R_189() {
if (jj_scan_token(HASH)) return true;
return false;
}
+ private boolean jj_3R_207() {
+ if (jj_scan_token(GRAD)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_206() {
+ if (jj_scan_token(RAD)) return true;
+ return false;
+ }
+
/** Generated Token Manager. */
public ParserTokenManager token_source;
/** Current token. */
@@ -6087,7 +6509,7 @@ LexicalUnitImpl result = null;
private Token jj_scanpos, jj_lastpos;
private int jj_la;
private int jj_gen;
- final private int[] jj_la1 = new int[214];
+ final private int[] jj_la1 = new int[236];
static private int[] jj_la1_0;
static private int[] jj_la1_1;
static private int[] jj_la1_2;
@@ -6099,18 +6521,18 @@ LexicalUnitImpl result = null;
jj_la1_init_3();
}
private static void jj_la1_init_0() {
- jj_la1_0 = new int[] {0x0,0xc02,0xc02,0x0,0xc00,0x2,0x2,0x2,0x0,0xe8000000,0xc00,0x2,0xc00,0x2,0x0,0x2,0x0,0x2,0x2,0x2,0xe9f45400,0xe9f45400,0x2,0x400000,0x2,0x2,0x2,0x2,0x0,0x0,0x2,0x0,0x800000,0x2,0x0,0x2,0x2,0x2,0x2,0x0,0x800000,0x2,0x0,0x2,0x1f45400,0x2,0x2,0x1100000,0x2,0x1100000,0x1100002,0x2,0x80080002,0x80080002,0x2,0x2,0x2,0x2,0x2,0xe8000000,0x0,0x0,0x0,0xe8000000,0x2,0x400000,0x2,0x2,0x88000000,0x88000000,0x88000000,0x88000000,0x88000000,0x88000000,0x88000000,0x88000000,0x88000000,0x88000000,0xe8000000,0x0,0x0,0x0,0x0,0x60000000,0x2,0x2,0xfc000,0x2,0x0,0x2,0xfc000,0x0,0x2,0x2,0x0,0x2,0x0,0x2,0x800000,0x27380002,0x2,0xe8000000,0x0,0xe8000000,0x2,0x0,0x2,0x27380002,0x0,0x2,0xe8000000,0x0,0xe8000000,0x2,0x27380002,0x2,0x2,0x2,0x0,0x2,0xe8000000,0x0,0x0,0xe8000000,0x2,0x2,0x400000,0x2,0x2,0x2,0x2,0x0,0x2,0xe8000000,0x0,0xe8000000,0x2,0x400000,0x2,0x2,0x2,0x400000,0x0,0x0,0x300000,0x2,0x0,0x400000,0x2,0x300000,0x2,0x0,0x2,0x0,0x2,0x800000,0x2,0x2,0x2,0x0,0x2,0x2,0x2,0x400000,0x2,0x2,0x0,0x2,0x2,0x2,0x800000,0x2,0x2,0x0,0x800000,0x2,0x0,0x2,0x2,0x0,0x2,0x0,0x800000,0x2,0x0,0x2,0x301000,0x2,0x0,0x2,0x2,0x2,0x2,0x4400000,0x4400000,0x300000,0x300000,0x300000,0x0,0x0,0x300000,0x2,0x2,0x300000,0x2,0xe8000000,0x2,0x2,0x2,0x0,0x800000,0x2,0x0,0x2,};
+ jj_la1_0 = new int[] {0x0,0xc02,0xc02,0x0,0xc00,0x2,0x2,0x2,0x0,0xe8000000,0xc00,0x2,0xc00,0x2,0x0,0x2,0x0,0x2,0x2,0x2,0xe9f45400,0xe9f45400,0x2,0x400000,0x2,0x2,0x2,0x2,0x0,0x0,0x2,0x0,0x800000,0x2,0x0,0x2,0x2,0x2,0x2,0x0,0x800000,0x2,0x0,0x2,0x1f45400,0x2,0x2,0x1100000,0x2,0x1100000,0x1100002,0x2,0x80080002,0x80080002,0x2,0x2,0x2,0x2,0x2,0xe8000000,0x0,0x0,0x0,0xe8000000,0x2,0x400000,0x2,0x2,0x88000000,0x88000000,0x88000000,0x88000000,0x88000000,0x88000000,0x88000000,0x88000000,0x88000000,0x88000000,0xe8000000,0x0,0x0,0x0,0x0,0x60000000,0x2,0x2,0xfc000,0x2,0x0,0x2,0xfc000,0x0,0x2,0x2,0x0,0x2,0x0,0x2,0x800000,0x27380002,0x2,0xe8000000,0x0,0xe8000000,0x2,0x0,0x2,0x27380002,0x0,0x2,0xe8000000,0x0,0xe8000000,0x2,0x27380002,0x2,0x2,0x2,0x0,0x2,0xe8000000,0x0,0x0,0xe8000000,0x2,0x2,0x400000,0x2,0x2,0x2,0x2,0x0,0x2,0xe8000000,0x0,0x0,0xe8000000,0x2,0x400000,0x2,0x2,0x2,0x400000,0x0,0x0,0x80300000,0x2,0x0,0x400000,0x2,0x80300000,0x2,0x0,0x2,0x0,0x2,0x800000,0x2,0x2,0x2,0x0,0x2,0x2,0x2,0x400000,0x2,0x2,0x2,0x2,0x2,0x0,0x2,0x2,0x2,0x400000,0x2,0x2,0x2,0x2,0x2,0x0,0x2,0x2,0x2,0x400000,0x2,0x2,0x0,0x2,0x2,0x2,0x800000,0x2,0x2,0x0,0x800000,0x2,0x0,0x2,0x2,0x0,0x2,0x0,0x800000,0x2,0x0,0x2,0x80301000,0x2,0x0,0x2,0x2,0x2,0x2,0x4400000,0x4400000,0x300000,0x80300000,0x300000,0x0,0x80000000,0x80000000,0x80300000,0x2,0x2,0x80300000,0x2,0xe8000000,0x2,0x2,0x2,0x0,0x800000,0x2,0x0,0x2,};
}
private static void jj_la1_init_1() {
- jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x83000c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc2,0xc2,0x0,0x0,0x0,0x0,0x0,0xa82000c0,0x0,0x20000000,0x88200000,0xc0,0x0,0x0,0x0,0x0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xc0,0x80,0x80,0x80,0x80,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3f,0x0,0x802000c0,0x80200000,0xc0,0x0,0x40000000,0x0,0x3f,0x0,0x0,0x802000c0,0x80200000,0xc0,0x0,0x3f,0x0,0x0,0x0,0x0,0x0,0x802000c0,0x200000,0x80000000,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x882000c0,0x88200000,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x40,0x40,0x0,0x40,0x0,0x0,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x60000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
+ jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x283000c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc2,0xc2,0x0,0x0,0x0,0x0,0x0,0xa82000c0,0x0,0x20000000,0x88200000,0xc0,0x0,0x0,0x0,0x0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xc0,0x80,0x80,0x80,0x80,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3f,0x0,0x802000c0,0x80200000,0xc0,0x0,0x40000000,0x0,0x3f,0x0,0x0,0x802000c0,0x80200000,0xc0,0x0,0x3f,0x0,0x0,0x0,0x0,0x0,0x802000c0,0x200000,0x80000000,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x882000c0,0x200000,0x88000000,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x40,0x40,0x0,0x40,0x0,0x0,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x60000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
}
private static void jj_la1_init_2() {
- jj_la1_2 = new int[] {0x80000000,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x400,0x50000440,0x0,0x0,0x0,0x0,0x220,0x0,0x40,0x0,0x0,0x0,0xf0000ae0,0xf0000ae0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x40,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x40,0x0,0xe0000aa0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0xc0,0x0,0x0,0x0,0x0,0x0,0x50000444,0x44,0x0,0x40000400,0x10000040,0x0,0x0,0x0,0x0,0x10000000,0x10000000,0x0,0x0,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000040,0x40,0x40,0x40,0x40,0x40,0x0,0x0,0x0,0x0,0x60,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x10,0x0,0x0,0x4c0,0x0,0x50000440,0x40000400,0x10000040,0x0,0x0,0x0,0x4c0,0x8,0x0,0x50000440,0x40000400,0x10000040,0x0,0x4c0,0x0,0x0,0x0,0x440,0x0,0x50000440,0x0,0x40000400,0x10000040,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x50000440,0x40000400,0x10000040,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x400,0x1ffffee0,0x0,0x0,0x0,0x0,0x1ffffee0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x40,0x0,0x1ffffee0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1ffffee0,0x0,0xffff880,0x10000260,0x1ffffae0,0x0,0x0,0x1ffffee0,0x0,0x70000040,0x0,0x0,0x0,0x40,0x0,0x0,0x40,0x0,};
+ jj_la1_2 = new int[] {0x80000000,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x400,0x50000440,0x0,0x0,0x0,0x0,0x220,0x0,0x40,0x0,0x0,0x0,0xf0000ae0,0xf0000ae0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x40,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x40,0x0,0xe0000aa0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0,0xc0,0x0,0x0,0x0,0x0,0x0,0x50000444,0x44,0x0,0x40000400,0x10000040,0x0,0x0,0x0,0x0,0x10000000,0x10000000,0x0,0x0,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000040,0x40,0x40,0x40,0x40,0x40,0x0,0x0,0x0,0x0,0x60,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x10,0x0,0x0,0x4c0,0x0,0x50000440,0x40000400,0x10000040,0x0,0x0,0x0,0x4c0,0x8,0x0,0x50000440,0x40000400,0x10000040,0x0,0x4c0,0x0,0x0,0x0,0x440,0x0,0x50000440,0x0,0x40000400,0x10000040,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x50000440,0x40000000,0x400,0x10000040,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x400,0x1ffffee0,0x0,0x0,0x0,0x0,0x1ffffee0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x40,0x0,0x1ffffee0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1ffffee0,0x0,0xffff880,0x0,0x10000260,0x1ffffae0,0x0,0x0,0x1ffffee0,0x0,0x70000040,0x0,0x0,0x0,0x40,0x0,0x0,0x40,0x0,};
}
private static void jj_la1_init_3() {
- jj_la1_3 = new int[] {0x0,0x4,0x4,0x0,0x4,0x0,0x0,0x0,0x0,0x3,0x4,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1a00f,0x1a00f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1a00f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa000,0x0,0x0,0x0,0x0,0xa000,0x0,0x0,0x0,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0xa000,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa000,0x0,0x8000,0x2000,0xa000,0x0,0x0,0xa000,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
+ jj_la1_3 = new int[] {0x0,0x4,0x4,0x0,0x4,0x0,0x0,0x0,0x0,0x3,0x4,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6200f,0x6200f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6200f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x22000,0x0,0x0,0x0,0x0,0x22000,0x0,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x22000,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x22000,0x0,0x20000,0x0,0x2000,0x22000,0x0,0x0,0x22000,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
}
- final private JJCalls[] jj_2_rtns = new JJCalls[11];
+ final private JJCalls[] jj_2_rtns = new JJCalls[15];
private boolean jj_rescan = false;
private int jj_gc = 0;
@@ -6120,7 +6542,7 @@ LexicalUnitImpl result = null;
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 214; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 236; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -6130,7 +6552,7 @@ LexicalUnitImpl result = null;
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 214; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 236; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -6140,7 +6562,7 @@ LexicalUnitImpl result = null;
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 214; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 236; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -6150,7 +6572,7 @@ LexicalUnitImpl result = null;
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 214; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 236; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -6262,12 +6684,12 @@ LexicalUnitImpl result = null;
/** Generate ParseException. */
public ParseException generateParseException() {
jj_expentries.clear();
- boolean[] la1tokens = new boolean[113];
+ boolean[] la1tokens = new boolean[115];
if (jj_kind >= 0) {
la1tokens[jj_kind] = true;
jj_kind = -1;
}
- for (int i = 0; i < 214; i++) {
+ for (int i = 0; i < 236; i++) {
if (jj_la1[i] == jj_gen) {
for (int j = 0; j < 32; j++) {
if ((jj_la1_0[i] & (1<<j)) != 0) {
@@ -6285,7 +6707,7 @@ LexicalUnitImpl result = null;
}
}
}
- for (int i = 0; i < 113; i++) {
+ for (int i = 0; i < 115; i++) {
if (la1tokens[i]) {
jj_expentry = new int[1];
jj_expentry[0] = i;
@@ -6312,7 +6734,7 @@ LexicalUnitImpl result = null;
private void jj_rescan_token() {
jj_rescan = true;
- for (int i = 0; i < 11; i++) {
+ for (int i = 0; i < 15; i++) {
try {
JJCalls p = jj_2_rtns[i];
do {
@@ -6330,6 +6752,10 @@ LexicalUnitImpl result = null;
case 8: jj_3_9(); break;
case 9: jj_3_10(); break;
case 10: jj_3_11(); break;
+ case 11: jj_3_12(); break;
+ case 12: jj_3_13(); break;
+ case 13: jj_3_14(); break;
+ case 14: jj_3_15(); break;
}
}
p = p.next;
diff --git a/theme-compiler/src/com/vaadin/sass/parser/Parser.jj b/theme-compiler/src/com/vaadin/sass/parser/Parser.jj
index ac022413e2..92cb3e46c1 100644
--- a/theme-compiler/src/com/vaadin/sass/parser/Parser.jj
+++ b/theme-compiler/src/com/vaadin/sass/parser/Parser.jj
@@ -679,6 +679,8 @@ TOKEN :
TOKEN :
{
< REMOVE : "remove" (< S >)? "(" >
+ | < APPEND : "append" (< S >)? "(" >
+ | < CONTAINS : "contains" (< S >)? "(" >
}
<DEFAULT>
@@ -740,7 +742,7 @@ void afterImportDeclaration() :
}
{
(
- ( (LOOKAHEAD(5)removeDirective()|variable()) | mixinDirective()| eachDirective() | includeDirective() | styleRule() | media()| page() | fontFace()
+ ( (LOOKAHEAD(5)listModifyDirective()|variable()) | ifDirective()|mixinDirective()| eachDirective() | includeDirective() | styleRule() | media()| page() | fontFace()
| { l = getLocator(); } ret=skipStatement()
{
if ((ret == null) || (ret.length() == 0)) {
@@ -1054,7 +1056,7 @@ void styleRule() :
start = true;
documentHandler.startSelector(l);
}
- ( ifDirective() | LOOKAHEAD(5)removeDirective() | includeDirective() | media() | extendDirective()| eachDirective() | variable() | LOOKAHEAD(3) (microsoftExtension()|declarationOrNestedProperties()) | styleRule())*
+ ( ifDirective() | LOOKAHEAD(5)listModifyDirective() | includeDirective() | media() | extendDirective()| eachDirective() | variable() | LOOKAHEAD(3) (microsoftExtension()|declarationOrNestedProperties()) | styleRule())*
<RBRACE> (<S>)*
} catch (ThrowedParseException e) {
if (errorHandler != null) {
@@ -1442,7 +1444,7 @@ Token booleanExpressionToken() :
|n = < OR >
|n = < AND >
|n = < S >
- |n = < NOT_EQ >
+ |n = < NOT_EQ >
){
return n;
}
@@ -1464,7 +1466,7 @@ void eachDirective() :
{documentHandler.startEachDirective(var.image, listVariable);}
)
< LBRACE >(< S >)*
- ( includeDirective() | LOOKAHEAD(5)removeDirective() | media() | extendDirective()| variable() | LOOKAHEAD(3) declarationOrNestedProperties() | styleRule())*
+ ( includeDirective() | LOOKAHEAD(5)listModifyDirective() | media() | extendDirective()| variable() | LOOKAHEAD(3) declarationOrNestedProperties() | styleRule())*
< RBRACE >(< S >)*
{ documentHandler.endEachDirective();}
}
@@ -1496,7 +1498,7 @@ void mixinDirective() :
|(name = functionName()
args = arglist()) <RPARAN> (<S>)*) <LBRACE> (<S>)*
{documentHandler.startMixinDirective(name, args);}
- ( includeDirective() | media() | eachDirective() | extendDirective()| variable() | LOOKAHEAD(3) declarationOrNestedProperties() | styleRule())*
+ ( includeDirective() | media() | LOOKAHEAD(5)listModifyDirective()|eachDirective() | extendDirective()| variable() | LOOKAHEAD(3) declarationOrNestedProperties() | styleRule())*
<RBRACE>(<S>)*
{documentHandler.endMixinDirective(name, args);}
}
@@ -1580,6 +1582,37 @@ void includeDirective() :
{documentHandler.includeDirective(name, args);}
}
+
+void listModifyDirective() : {
+}
+{
+LOOKAHEAD(5)removeDirective()|LOOKAHEAD(5)appendDirective()|LOOKAHEAD(5)containsDirective()
+}
+
+
+/**
+ * @exception ParseException exception during the parse
+ */
+void appendDirective() :
+{
+ String list = null;
+ String remove = null;
+ String separator = null;
+ String variable = null;
+ Token n = null;
+}
+{
+ n = < VARIABLE >{ variable = n.image; }(< S >)* ":" (< S >)*
+ < APPEND >(< S >)*
+ (list = listModifyDirectiveArgs(0))
+ (< RPARAN >)? < COMMA >(< S >)*
+ (remove = listModifyDirectiveArgs(1))
+ ( < COMMA >(< S >)* n = < IDENT >{ separator = n.image; } (< S >)*)?
+ < RPARAN >(< S >)* < SEMICOLON >(< S >)*
+
+ { documentHandler.appendDirective(variable,list,remove,separator); }
+}
+
/**
* @exception ParseException exception during the parse
*/
@@ -1592,17 +1625,40 @@ void removeDirective() : { String list = null;
{
n = < VARIABLE >{ variable = n.image; }(< S >)* ":" (< S >)*
< REMOVE >(< S >)*
- (list = removeDirectiveArgs(0))
+ (list = listModifyDirectiveArgs(0))
(< RPARAN >)? < COMMA >(< S >)*
- (remove = removeDirectiveArgs(1))
+ (remove = listModifyDirectiveArgs(1))
( < COMMA >(< S >)* n = < IDENT >{ separator = n.image; } (< S >)*)?
< RPARAN >(< S >)* < SEMICOLON >(< S >)*
{ documentHandler.removeDirective(variable,list,remove,separator); }
}
+/**
+ * @exception ParseException exception during the parse
+ */
+void containsDirective() :
+{
+ String list = null;
+ String remove = null;
+ String separator = null;
+ String variable = null;
+ Token n = null;
+}
+{
+ n = < VARIABLE >{ variable = n.image; }(< S >)* ":" (< S >)*
+ < CONTAINS >(< S >)*
+ (list = listModifyDirectiveArgs(0))
+ (< RPARAN >)? < COMMA >(< S >)*
+ (remove = listModifyDirectiveArgs(1))
+ ( < COMMA >(< S >)* n = < IDENT >{ separator = n.image; } (< S >)*)?
+ < RPARAN >(< S >)* < SEMICOLON >(< S >)*
+
+ { documentHandler.containsDirective(variable,list,remove,separator); }
+}
+
JAVACODE
-String removeDirectiveArgs(int nest) {
+String listModifyDirectiveArgs(int nest) {
String list = "";
int nesting = nest;
Token t = null;
@@ -1947,6 +2003,7 @@ LexicalUnitImpl nonVariableTerm(LexicalUnitImpl prev) : { LexicalUnitImpl result
Token n = null;
char op = ' ';
String varName;
+ String s = "";
}
{
( ( ( op=unaryOperator() )?
@@ -2004,7 +2061,7 @@ LexicalUnitImpl nonVariableTerm(LexicalUnitImpl prev) : { LexicalUnitImpl result
prev, number(op, n, 3)); }
| n=<DIMEN>
{
- String s = n.image;
+ s = n.image;
int i = 0;
while (i < s.length()
&& (Character.isDigit(s.charAt(i)) || (s.charAt(i) == '.'))) {
@@ -2020,8 +2077,8 @@ LexicalUnitImpl nonVariableTerm(LexicalUnitImpl prev) : { LexicalUnitImpl result
LexicalUnitImpl.createString(n.beginLine, n.beginColumn, prev,
convertStringIndex(n.image, 1,
n.image.length() -1));}
- | n=<IDENT>
- { String s = convertIdent(n.image);
+ | (< DOT >{ s+="."; })?n=<IDENT>
+ { s += convertIdent(n.image);
if ("inherit".equals(s)) {
result = LexicalUnitImpl.createInherit(n.beginLine, n.beginColumn,
prev);
diff --git a/theme-compiler/src/com/vaadin/sass/parser/ParserConstants.java b/theme-compiler/src/com/vaadin/sass/parser/ParserConstants.java
index 62b7bb490c..f8d5a96722 100644
--- a/theme-compiler/src/com/vaadin/sass/parser/ParserConstants.java
+++ b/theme-compiler/src/com/vaadin/sass/parser/ParserConstants.java
@@ -219,9 +219,13 @@ public interface ParserConstants {
/** RegularExpression Id. */
int REMOVE = 110;
/** RegularExpression Id. */
- int FUNCTION = 111;
+ int APPEND = 111;
/** RegularExpression Id. */
- int UNKNOWN = 112;
+ int CONTAINS = 112;
+ /** RegularExpression Id. */
+ int FUNCTION = 113;
+ /** RegularExpression Id. */
+ int UNKNOWN = 114;
/** Lexical state. */
int DEFAULT = 0;
@@ -345,6 +349,8 @@ public interface ParserConstants {
"<UNI>",
"<UNICODERANGE>",
"<REMOVE>",
+ "<APPEND>",
+ "<CONTAINS>",
"<FUNCTION>",
"<UNKNOWN>",
};
diff --git a/theme-compiler/src/com/vaadin/sass/parser/ParserTokenManager.java b/theme-compiler/src/com/vaadin/sass/parser/ParserTokenManager.java
index e3029206a6..39b74b9a7f 100644
--- a/theme-compiler/src/com/vaadin/sass/parser/ParserTokenManager.java
+++ b/theme-compiler/src/com/vaadin/sass/parser/ParserTokenManager.java
@@ -39,38 +39,38 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1)
case 0:
if ((active0 & 0xfff0000000000000L) != 0L || (active1 & 0x3e0000003L) != 0L)
return 111;
- if ((active0 & 0x2000000000L) != 0L)
- return 423;
- if ((active0 & 0x200800L) != 0L)
- return 42;
if ((active0 & 0x10000L) != 0L)
return 79;
- if ((active0 & 0x80000000L) != 0L)
- return 424;
- if ((active0 & 0x4000044L) != 0L)
- return 3;
if ((active0 & 0xe000000000000L) != 0L || (active1 & 0x8L) != 0L)
{
jjmatchedKind = 70;
- return 425;
+ return 441;
}
+ if ((active0 & 0x80000000L) != 0L)
+ return 442;
+ if ((active0 & 0x2000000000L) != 0L)
+ return 443;
+ if ((active0 & 0x4000044L) != 0L)
+ return 3;
+ if ((active0 & 0x200800L) != 0L)
+ return 42;
return -1;
case 1:
if ((active0 & 0x4000000000000L) != 0L)
{
jjmatchedKind = 70;
jjmatchedPos = 1;
- return 425;
+ return 441;
}
if ((active1 & 0x1L) != 0L)
return 112;
if ((active0 & 0xa000000000000L) != 0L || (active1 & 0x8L) != 0L)
- return 425;
+ return 441;
if ((active0 & 0xfff0000000000000L) != 0L || (active1 & 0x3e0000002L) != 0L)
{
jjmatchedKind = 98;
jjmatchedPos = 1;
- return 426;
+ return 444;
}
if ((active0 & 0x40L) != 0L)
return 1;
@@ -80,85 +80,85 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1)
{
jjmatchedKind = 98;
jjmatchedPos = 2;
- return 426;
+ return 444;
}
if ((active0 & 0x2000000000000000L) != 0L)
- return 426;
+ return 444;
if ((active0 & 0x4000000000000L) != 0L)
{
jjmatchedKind = 70;
jjmatchedPos = 2;
- return 425;
+ return 441;
}
return -1;
case 3:
- if ((active0 & 0xdbf0000000000000L) != 0L || (active1 & 0x3e0000003L) != 0L)
+ if ((active0 & 0x4000000000000L) != 0L)
{
- jjmatchedKind = 98;
+ jjmatchedKind = 70;
jjmatchedPos = 3;
- return 426;
+ return 441;
}
- if ((active0 & 0x4000000000000L) != 0L)
+ if ((active0 & 0xdbf0000000000000L) != 0L || (active1 & 0x3e0000003L) != 0L)
{
- jjmatchedKind = 70;
+ jjmatchedKind = 98;
jjmatchedPos = 3;
- return 425;
+ return 444;
}
if ((active0 & 0x400000000000000L) != 0L)
- return 426;
+ return 444;
return -1;
case 4:
if ((active0 & 0x91f0000000000000L) != 0L || (active1 & 0x2e0000003L) != 0L)
{
jjmatchedKind = 98;
jjmatchedPos = 4;
- return 426;
+ return 444;
}
if ((active0 & 0x4a00000000000000L) != 0L || (active1 & 0x100000000L) != 0L)
- return 426;
+ return 444;
if ((active0 & 0x4000000000000L) != 0L)
{
jjmatchedKind = 70;
jjmatchedPos = 4;
- return 425;
+ return 441;
}
return -1;
case 5:
- if ((active0 & 0x4000000000000L) != 0L)
- {
- jjmatchedKind = 70;
- jjmatchedPos = 5;
- return 425;
- }
if ((active0 & 0x1110000000000000L) != 0L || (active1 & 0x40000000L) != 0L)
- return 426;
+ return 444;
if ((active0 & 0x80e0000000000000L) != 0L || (active1 & 0x2a0000003L) != 0L)
{
jjmatchedKind = 98;
jjmatchedPos = 5;
- return 426;
+ return 444;
+ }
+ if ((active0 & 0x4000000000000L) != 0L)
+ {
+ jjmatchedKind = 70;
+ jjmatchedPos = 5;
+ return 441;
}
return -1;
case 6:
if ((active0 & 0x4000000000000L) != 0L)
- return 425;
+ return 441;
if ((active0 & 0x8080000000000000L) != 0L || (active1 & 0x20000000L) != 0L)
- return 426;
+ return 444;
if ((active0 & 0x60000000000000L) != 0L || (active1 & 0x280000003L) != 0L)
{
jjmatchedKind = 98;
jjmatchedPos = 6;
- return 426;
+ return 444;
}
return -1;
case 7:
if ((active0 & 0x20000000000000L) != 0L || (active1 & 0x80000000L) != 0L)
- return 426;
+ return 444;
if ((active0 & 0x40000000000000L) != 0L || (active1 & 0x200000003L) != 0L)
{
jjmatchedKind = 98;
jjmatchedPos = 7;
- return 426;
+ return 444;
}
return -1;
case 8:
@@ -166,27 +166,27 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1)
{
jjmatchedKind = 98;
jjmatchedPos = 8;
- return 426;
+ return 444;
}
if ((active0 & 0x40000000000000L) != 0L || (active1 & 0x2L) != 0L)
- return 426;
+ return 444;
return -1;
case 9:
if ((active1 & 0x1L) != 0L)
{
jjmatchedKind = 98;
jjmatchedPos = 9;
- return 426;
+ return 444;
}
if ((active1 & 0x200000000L) != 0L)
- return 426;
+ return 444;
return -1;
case 10:
if ((active1 & 0x1L) != 0L)
{
jjmatchedKind = 98;
jjmatchedPos = 10;
- return 426;
+ return 444;
}
return -1;
case 11:
@@ -194,7 +194,7 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1)
{
jjmatchedKind = 98;
jjmatchedPos = 11;
- return 426;
+ return 444;
}
return -1;
case 12:
@@ -202,7 +202,7 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1)
{
jjmatchedKind = 98;
jjmatchedPos = 12;
- return 426;
+ return 444;
}
return -1;
default :
@@ -245,7 +245,7 @@ private int jjMoveStringLiteralDfa0_0()
jjmatchedKind = 21;
return jjMoveStringLiteralDfa1_0(0x800L, 0x0L);
case 46:
- return jjStartNfaWithStates_0(0, 31, 424);
+ return jjStartNfaWithStates_0(0, 31, 442);
case 47:
jjmatchedKind = 26;
return jjMoveStringLiteralDfa1_0(0x44L, 0x0L);
@@ -340,7 +340,7 @@ private int jjMoveStringLiteralDfa1_0(long active0, long active1)
case 70:
case 102:
if ((active1 & 0x8L) != 0L)
- return jjStartNfaWithStates_0(1, 67, 425);
+ return jjStartNfaWithStates_0(1, 67, 441);
return jjMoveStringLiteralDfa2_0(active0, 0x440000000000000L, active1, 0x200000000L);
case 72:
case 104:
@@ -354,12 +354,12 @@ private int jjMoveStringLiteralDfa1_0(long active0, long active1)
case 78:
case 110:
if ((active0 & 0x8000000000000L) != 0L)
- return jjStartNfaWithStates_0(1, 51, 425);
+ return jjStartNfaWithStates_0(1, 51, 441);
break;
case 79:
case 111:
if ((active0 & 0x2000000000000L) != 0L)
- return jjStartNfaWithStates_0(1, 49, 425);
+ return jjStartNfaWithStates_0(1, 49, 441);
break;
case 80:
case 112:
@@ -408,7 +408,7 @@ private int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, long a
case 70:
case 102:
if ((active0 & 0x2000000000000000L) != 0L)
- return jjStartNfaWithStates_0(2, 61, 426);
+ return jjStartNfaWithStates_0(2, 61, 444);
break;
case 72:
case 104:
@@ -487,7 +487,7 @@ private int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, long a
case 82:
case 114:
if ((active0 & 0x400000000000000L) != 0L)
- return jjStartNfaWithStates_0(3, 58, 426);
+ return jjStartNfaWithStates_0(3, 58, 444);
return jjMoveStringLiteralDfa4_0(active0, 0x200000000000000L, active1, 0L);
case 83:
case 115:
@@ -520,14 +520,14 @@ private int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, long a
case 69:
case 101:
if ((active0 & 0x4000000000000000L) != 0L)
- return jjStartNfaWithStates_0(4, 62, 426);
+ return jjStartNfaWithStates_0(4, 62, 444);
else if ((active1 & 0x100000000L) != 0L)
- return jjStartNfaWithStates_0(4, 96, 426);
+ return jjStartNfaWithStates_0(4, 96, 444);
return jjMoveStringLiteralDfa5_0(active0, 0x8000000000000000L, active1, 0L);
case 72:
case 104:
if ((active0 & 0x800000000000000L) != 0L)
- return jjStartNfaWithStates_0(4, 59, 426);
+ return jjStartNfaWithStates_0(4, 59, 444);
break;
case 73:
case 105:
@@ -538,7 +538,7 @@ private int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, long a
case 78:
case 110:
if ((active0 & 0x200000000000000L) != 0L)
- return jjStartNfaWithStates_0(4, 57, 426);
+ return jjStartNfaWithStates_0(4, 57, 444);
break;
case 79:
case 111:
@@ -579,22 +579,22 @@ private int jjMoveStringLiteralDfa5_0(long old0, long active0, long old1, long a
case 65:
case 97:
if ((active1 & 0x40000000L) != 0L)
- return jjStartNfaWithStates_0(5, 94, 426);
+ return jjStartNfaWithStates_0(5, 94, 444);
break;
case 69:
case 101:
if ((active0 & 0x1000000000000000L) != 0L)
- return jjStartNfaWithStates_0(5, 60, 426);
+ return jjStartNfaWithStates_0(5, 60, 444);
break;
case 71:
case 103:
if ((active0 & 0x100000000000000L) != 0L)
- return jjStartNfaWithStates_0(5, 56, 426);
+ return jjStartNfaWithStates_0(5, 56, 444);
return jjMoveStringLiteralDfa6_0(active0, 0x4000000000000L, active1, 0L);
case 78:
case 110:
if ((active0 & 0x10000000000000L) != 0L)
- return jjStartNfaWithStates_0(5, 52, 426);
+ return jjStartNfaWithStates_0(5, 52, 444);
return jjMoveStringLiteralDfa6_0(active0, 0x8000000000000000L, active1, 0L);
case 79:
case 111:
@@ -630,7 +630,7 @@ private int jjMoveStringLiteralDfa6_0(long old0, long active0, long old1, long a
case 68:
case 100:
if ((active0 & 0x8000000000000000L) != 0L)
- return jjStartNfaWithStates_0(6, 63, 426);
+ return jjStartNfaWithStates_0(6, 63, 444);
return jjMoveStringLiteralDfa7_0(active0, 0x20000000000000L, active1, 0x1L);
case 69:
case 101:
@@ -641,7 +641,7 @@ private int jjMoveStringLiteralDfa6_0(long old0, long active0, long old1, long a
case 72:
case 104:
if ((active0 & 0x4000000000000L) != 0L)
- return jjStartNfaWithStates_0(6, 50, 425);
+ return jjStartNfaWithStates_0(6, 50, 441);
break;
case 73:
case 105:
@@ -649,7 +649,7 @@ private int jjMoveStringLiteralDfa6_0(long old0, long active0, long old1, long a
case 78:
case 110:
if ((active0 & 0x80000000000000L) != 0L)
- return jjStartNfaWithStates_0(6, 55, 426);
+ return jjStartNfaWithStates_0(6, 55, 444);
break;
case 82:
case 114:
@@ -657,7 +657,7 @@ private int jjMoveStringLiteralDfa6_0(long old0, long active0, long old1, long a
case 84:
case 116:
if ((active1 & 0x20000000L) != 0L)
- return jjStartNfaWithStates_0(6, 93, 426);
+ return jjStartNfaWithStates_0(6, 93, 444);
break;
default :
break;
@@ -681,7 +681,7 @@ private int jjMoveStringLiteralDfa7_0(long old0, long active0, long old1, long a
case 69:
case 101:
if ((active0 & 0x20000000000000L) != 0L)
- return jjStartNfaWithStates_0(7, 53, 426);
+ return jjStartNfaWithStates_0(7, 53, 444);
break;
case 79:
case 111:
@@ -689,7 +689,7 @@ private int jjMoveStringLiteralDfa7_0(long old0, long active0, long old1, long a
case 84:
case 116:
if ((active1 & 0x80000000L) != 0L)
- return jjStartNfaWithStates_0(7, 95, 426);
+ return jjStartNfaWithStates_0(7, 95, 444);
return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x2L);
default :
break;
@@ -713,12 +713,12 @@ private int jjMoveStringLiteralDfa8_0(long old0, long active0, long old1, long a
case 78:
case 110:
if ((active0 & 0x40000000000000L) != 0L)
- return jjStartNfaWithStates_0(8, 54, 426);
+ return jjStartNfaWithStates_0(8, 54, 444);
break;
case 83:
case 115:
if ((active1 & 0x2L) != 0L)
- return jjStartNfaWithStates_0(8, 65, 426);
+ return jjStartNfaWithStates_0(8, 65, 444);
break;
default :
break;
@@ -739,7 +739,7 @@ private int jjMoveStringLiteralDfa9_0(long old0, long active0, long old1, long a
case 69:
case 101:
if ((active1 & 0x200000000L) != 0L)
- return jjStartNfaWithStates_0(9, 97, 426);
+ return jjStartNfaWithStates_0(9, 97, 444);
break;
case 85:
case 117:
@@ -820,7 +820,7 @@ private int jjMoveStringLiteralDfa13_0(long old1, long active1)
case 84:
case 116:
if ((active1 & 0x1L) != 0L)
- return jjStartNfaWithStates_0(13, 64, 426);
+ return jjStartNfaWithStates_0(13, 64, 444);
break;
default :
break;
@@ -841,7 +841,7 @@ static final long[] jjbitVec0 = {
private int jjMoveNfa_0(int startState, int curPos)
{
int startsAt = 0;
- jjnewStateCnt = 423;
+ jjnewStateCnt = 441;
int i = 1;
jjstateSet[0] = startState;
int kind = 0x7fffffff;
@@ -856,87 +856,59 @@ private int jjMoveNfa_0(int startState, int curPos)
{
switch(jjstateSet[--i])
{
- case 4:
+ case 442:
if ((0x3ff000000000000L & l) != 0L)
- {
- if (kind > 71)
- kind = 71;
- jjCheckNAddStates(0, 73);
- }
- else if ((0x100003600L & l) != 0L)
- {
- if (kind > 1)
- kind = 1;
- jjCheckNAdd(0);
- }
- else if (curChar == 46)
- jjCheckNAddStates(74, 91);
- else if (curChar == 45)
- jjAddStates(92, 93);
- else if (curChar == 33)
- jjCheckNAddStates(94, 97);
- else if (curChar == 35)
- jjCheckNAddTwoStates(100, 101);
- else if (curChar == 36)
- jjCheckNAddStates(98, 101);
- else if (curChar == 39)
- jjCheckNAddStates(102, 105);
- else if (curChar == 34)
- jjCheckNAddStates(106, 109);
- else if (curChar == 47)
- jjstateSet[jjnewStateCnt++] = 3;
- if (curChar == 45)
- jjstateSet[jjnewStateCnt++] = 42;
- else if (curChar == 35)
- jjstateSet[jjnewStateCnt++] = 5;
- break;
- case 79:
- if (curChar == 45)
- jjCheckNAdd(80);
- break;
- case 424:
+ jjCheckNAddStates(0, 4);
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(110, 114);
+ jjCheckNAddTwoStates(252, 255);
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(234, 237);
+ jjCheckNAddTwoStates(249, 251);
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(231, 233);
+ jjCheckNAddTwoStates(247, 248);
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(229, 230);
+ jjCheckNAddTwoStates(244, 246);
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(226, 228);
+ jjCheckNAddTwoStates(239, 243);
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(221, 225);
+ jjCheckNAddTwoStates(235, 238);
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(217, 220);
+ jjCheckNAddTwoStates(231, 234);
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(213, 216);
+ jjCheckNAddTwoStates(228, 230);
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(210, 212);
- if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(207, 209);
+ jjCheckNAddTwoStates(225, 227);
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(204, 206);
+ jjCheckNAddTwoStates(222, 224);
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(201, 203);
+ jjCheckNAddTwoStates(219, 221);
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(198, 200);
+ jjCheckNAddTwoStates(216, 218);
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(195, 197);
+ jjCheckNAddTwoStates(213, 215);
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(192, 194);
+ jjCheckNAddTwoStates(210, 212);
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(189, 191);
+ jjCheckNAddTwoStates(207, 209);
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(187, 188);
+ jjCheckNAddTwoStates(205, 206);
if ((0x3ff000000000000L & l) != 0L)
{
if (kind > 71)
kind = 71;
- jjCheckNAdd(186);
+ jjCheckNAdd(204);
}
break;
- case 426:
+ case 79:
+ if (curChar == 45)
+ jjCheckNAdd(80);
+ break;
+ case 443:
+ if ((0x100003600L & l) != 0L)
+ jjCheckNAddTwoStates(189, 198);
+ if ((0x100003600L & l) != 0L)
+ jjCheckNAddTwoStates(181, 188);
+ break;
+ case 444:
case 113:
if ((0x3ff200000000000L & l) == 0L)
break;
@@ -944,33 +916,61 @@ private int jjMoveNfa_0(int startState, int curPos)
kind = 98;
jjCheckNAddTwoStates(113, 114);
break;
- case 425:
+ case 441:
if ((0x3ff200000000000L & l) != 0L)
- jjCheckNAddStates(115, 118);
+ jjCheckNAddStates(5, 8);
else if ((0x100003600L & l) != 0L)
- jjCheckNAddTwoStates(151, 152);
+ jjCheckNAddTwoStates(169, 170);
else if (curChar == 40)
{
- if (kind > 111)
- kind = 111;
+ if (kind > 113)
+ kind = 113;
}
if ((0x3ff200000000000L & l) != 0L)
{
if (kind > 70)
kind = 70;
- jjCheckNAddTwoStates(140, 141);
+ jjCheckNAddTwoStates(158, 159);
}
break;
- case 423:
- if ((0x100003600L & l) != 0L)
- jjCheckNAddTwoStates(171, 180);
- if ((0x100003600L & l) != 0L)
- jjCheckNAddTwoStates(163, 170);
- break;
case 111:
if (curChar == 45)
jjstateSet[jjnewStateCnt++] = 112;
break;
+ case 4:
+ if ((0x3ff000000000000L & l) != 0L)
+ {
+ if (kind > 71)
+ kind = 71;
+ jjCheckNAddStates(9, 82);
+ }
+ else if ((0x100003600L & l) != 0L)
+ {
+ if (kind > 1)
+ kind = 1;
+ jjCheckNAdd(0);
+ }
+ else if (curChar == 46)
+ jjCheckNAddStates(83, 100);
+ else if (curChar == 45)
+ jjAddStates(101, 102);
+ else if (curChar == 33)
+ jjCheckNAddStates(103, 106);
+ else if (curChar == 35)
+ jjCheckNAddTwoStates(100, 101);
+ else if (curChar == 36)
+ jjCheckNAddStates(107, 110);
+ else if (curChar == 39)
+ jjCheckNAddStates(111, 114);
+ else if (curChar == 34)
+ jjCheckNAddStates(115, 118);
+ else if (curChar == 47)
+ jjstateSet[jjnewStateCnt++] = 3;
+ if (curChar == 45)
+ jjstateSet[jjnewStateCnt++] = 42;
+ else if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 5;
+ break;
case 0:
if ((0x100003600L & l) == 0L)
break;
@@ -1072,11 +1072,11 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 44:
if (curChar == 34)
- jjCheckNAddStates(106, 109);
+ jjCheckNAddStates(115, 118);
break;
case 45:
if ((0xfffffffb00000200L & l) != 0L)
- jjCheckNAddStates(106, 109);
+ jjCheckNAddStates(115, 118);
break;
case 46:
if (curChar == 34 && kind > 69)
@@ -1084,11 +1084,11 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 48:
if (curChar == 12)
- jjCheckNAddStates(106, 109);
+ jjCheckNAddStates(115, 118);
break;
case 50:
if ((0xffffffff00000000L & l) != 0L)
- jjCheckNAddStates(106, 109);
+ jjCheckNAddStates(115, 118);
break;
case 51:
if ((0x3ff000000000000L & l) != 0L)
@@ -1096,7 +1096,7 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 52:
if ((0x100003600L & l) != 0L)
- jjCheckNAddStates(106, 109);
+ jjCheckNAddStates(115, 118);
break;
case 53:
if ((0x3ff000000000000L & l) != 0L)
@@ -1120,11 +1120,11 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 58:
if (curChar == 13)
- jjCheckNAddStates(106, 109);
+ jjCheckNAddStates(115, 118);
break;
case 59:
if (curChar == 10)
- jjCheckNAddStates(106, 109);
+ jjCheckNAddStates(115, 118);
break;
case 60:
if (curChar == 13)
@@ -1132,11 +1132,11 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 61:
if (curChar == 39)
- jjCheckNAddStates(102, 105);
+ jjCheckNAddStates(111, 114);
break;
case 62:
if ((0xffffff7f00000200L & l) != 0L)
- jjCheckNAddStates(102, 105);
+ jjCheckNAddStates(111, 114);
break;
case 63:
if (curChar == 39 && kind > 69)
@@ -1144,11 +1144,11 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 65:
if (curChar == 12)
- jjCheckNAddStates(102, 105);
+ jjCheckNAddStates(111, 114);
break;
case 67:
if ((0xffffffff00000000L & l) != 0L)
- jjCheckNAddStates(102, 105);
+ jjCheckNAddStates(111, 114);
break;
case 68:
if ((0x3ff000000000000L & l) != 0L)
@@ -1156,7 +1156,7 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 69:
if ((0x100003600L & l) != 0L)
- jjCheckNAddStates(102, 105);
+ jjCheckNAddStates(111, 114);
break;
case 70:
if ((0x3ff000000000000L & l) != 0L)
@@ -1180,11 +1180,11 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 75:
if (curChar == 13)
- jjCheckNAddStates(102, 105);
+ jjCheckNAddStates(111, 114);
break;
case 76:
if (curChar == 10)
- jjCheckNAddStates(102, 105);
+ jjCheckNAddStates(111, 114);
break;
case 77:
if (curChar == 13)
@@ -1192,7 +1192,7 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 78:
if (curChar == 36)
- jjCheckNAddStates(98, 101);
+ jjCheckNAddStates(107, 110);
break;
case 81:
if ((0x3ff200000000000L & l) == 0L)
@@ -1473,871 +1473,815 @@ private int jjMoveNfa_0(int startState, int curPos)
kind = 110;
break;
case 140:
+ if ((0x100003600L & l) != 0L)
+ jjAddStates(425, 426);
+ break;
+ case 141:
+ if (curChar == 40 && kind > 111)
+ kind = 111;
+ break;
+ case 148:
+ if ((0x100003600L & l) != 0L)
+ jjAddStates(427, 428);
+ break;
+ case 149:
+ if (curChar == 40 && kind > 112)
+ kind = 112;
+ break;
+ case 158:
if ((0x3ff200000000000L & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddTwoStates(140, 141);
+ jjCheckNAddTwoStates(158, 159);
break;
- case 142:
+ case 160:
if ((0xffffffff00000000L & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddTwoStates(140, 141);
+ jjCheckNAddTwoStates(158, 159);
break;
- case 143:
+ case 161:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(425, 428);
+ jjCheckNAddStates(429, 432);
break;
- case 144:
+ case 162:
if ((0x100003600L & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddTwoStates(140, 141);
+ jjCheckNAddTwoStates(158, 159);
break;
- case 145:
+ case 163:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(429, 435);
+ jjCheckNAddStates(433, 439);
break;
- case 146:
+ case 164:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(436, 438);
+ jjCheckNAddStates(440, 442);
break;
- case 147:
+ case 165:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(439, 442);
+ jjCheckNAddStates(443, 446);
break;
- case 148:
+ case 166:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(443, 447);
+ jjCheckNAddStates(447, 451);
break;
- case 149:
+ case 167:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(448, 453);
+ jjCheckNAddStates(452, 457);
break;
- case 150:
+ case 168:
if ((0x3ff200000000000L & l) != 0L)
- jjCheckNAddStates(115, 118);
+ jjCheckNAddStates(5, 8);
break;
- case 151:
+ case 169:
if ((0x100003600L & l) != 0L)
- jjCheckNAddTwoStates(151, 152);
+ jjCheckNAddTwoStates(169, 170);
break;
- case 152:
- if (curChar == 40 && kind > 111)
- kind = 111;
+ case 170:
+ if (curChar == 40 && kind > 113)
+ kind = 113;
break;
- case 154:
+ case 172:
if ((0xffffffff00000000L & l) != 0L)
- jjCheckNAddStates(115, 118);
+ jjCheckNAddStates(5, 8);
break;
- case 155:
+ case 173:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(454, 458);
+ jjCheckNAddStates(458, 462);
break;
- case 156:
+ case 174:
if ((0x100003600L & l) != 0L)
- jjCheckNAddStates(115, 118);
+ jjCheckNAddStates(5, 8);
break;
- case 157:
+ case 175:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(459, 466);
+ jjCheckNAddStates(463, 470);
break;
- case 158:
- case 364:
+ case 176:
+ case 382:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(467, 470);
+ jjCheckNAddStates(471, 474);
break;
- case 159:
+ case 177:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(471, 475);
+ jjCheckNAddStates(475, 479);
break;
- case 160:
+ case 178:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(476, 481);
+ jjCheckNAddStates(480, 485);
break;
- case 161:
+ case 179:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(482, 488);
+ jjCheckNAddStates(486, 492);
break;
- case 162:
+ case 180:
if (curChar == 33)
- jjCheckNAddStates(94, 97);
+ jjCheckNAddStates(103, 106);
break;
- case 163:
+ case 181:
if ((0x100003600L & l) != 0L)
- jjCheckNAddTwoStates(163, 170);
+ jjCheckNAddTwoStates(181, 188);
break;
- case 171:
+ case 189:
if ((0x100003600L & l) != 0L)
- jjCheckNAddTwoStates(171, 180);
+ jjCheckNAddTwoStates(189, 198);
break;
- case 181:
+ case 199:
if (curChar == 45)
- jjAddStates(92, 93);
+ jjAddStates(101, 102);
break;
- case 185:
+ case 203:
if (curChar == 46)
- jjCheckNAddStates(74, 91);
+ jjCheckNAddStates(83, 100);
break;
- case 186:
+ case 204:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 71)
kind = 71;
- jjCheckNAdd(186);
+ jjCheckNAdd(204);
break;
- case 187:
+ case 205:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(187, 188);
+ jjCheckNAddTwoStates(205, 206);
break;
- case 188:
+ case 206:
if (curChar == 37 && kind > 75)
kind = 75;
break;
- case 189:
+ case 207:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(189, 191);
+ jjCheckNAddTwoStates(207, 209);
break;
- case 192:
+ case 210:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(192, 194);
+ jjCheckNAddTwoStates(210, 212);
break;
- case 195:
+ case 213:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(195, 197);
+ jjCheckNAddTwoStates(213, 215);
break;
- case 198:
+ case 216:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(198, 200);
+ jjCheckNAddTwoStates(216, 218);
break;
- case 201:
+ case 219:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(201, 203);
+ jjCheckNAddTwoStates(219, 221);
break;
- case 204:
+ case 222:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(204, 206);
+ jjCheckNAddTwoStates(222, 224);
break;
- case 207:
+ case 225:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(207, 209);
+ jjCheckNAddTwoStates(225, 227);
break;
- case 210:
+ case 228:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(210, 212);
+ jjCheckNAddTwoStates(228, 230);
break;
- case 213:
+ case 231:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(213, 216);
+ jjCheckNAddTwoStates(231, 234);
break;
- case 217:
+ case 235:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(217, 220);
+ jjCheckNAddTwoStates(235, 238);
break;
- case 221:
+ case 239:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(221, 225);
+ jjCheckNAddTwoStates(239, 243);
break;
- case 226:
+ case 244:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(226, 228);
+ jjCheckNAddTwoStates(244, 246);
break;
- case 229:
+ case 247:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(229, 230);
+ jjCheckNAddTwoStates(247, 248);
break;
- case 231:
+ case 249:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(231, 233);
+ jjCheckNAddTwoStates(249, 251);
break;
- case 234:
+ case 252:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(234, 237);
+ jjCheckNAddTwoStates(252, 255);
break;
- case 238:
+ case 256:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(110, 114);
+ jjCheckNAddStates(0, 4);
break;
- case 239:
+ case 257:
if (curChar == 45)
- jjCheckNAdd(240);
+ jjCheckNAdd(258);
break;
- case 241:
+ case 259:
if ((0x3ff200000000000L & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddTwoStates(241, 242);
+ jjCheckNAddTwoStates(259, 260);
break;
- case 243:
+ case 261:
if ((0xffffffff00000000L & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddTwoStates(241, 242);
+ jjCheckNAddTwoStates(259, 260);
break;
- case 244:
+ case 262:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(489, 492);
+ jjCheckNAddStates(493, 496);
break;
- case 245:
+ case 263:
if ((0x100003600L & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddTwoStates(241, 242);
+ jjCheckNAddTwoStates(259, 260);
break;
- case 246:
+ case 264:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(493, 499);
+ jjCheckNAddStates(497, 503);
break;
- case 247:
+ case 265:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(500, 502);
+ jjCheckNAddStates(504, 506);
break;
- case 248:
+ case 266:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(503, 506);
+ jjCheckNAddStates(507, 510);
break;
- case 249:
+ case 267:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(507, 511);
+ jjCheckNAddStates(511, 515);
break;
- case 250:
+ case 268:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(512, 517);
+ jjCheckNAddStates(516, 521);
break;
- case 253:
+ case 271:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(518, 521);
+ jjCheckNAddStates(522, 525);
break;
- case 254:
+ case 272:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(522, 528);
+ jjCheckNAddStates(526, 532);
break;
- case 255:
+ case 273:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(529, 531);
+ jjCheckNAddStates(533, 535);
break;
- case 256:
+ case 274:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(532, 535);
+ jjCheckNAddStates(536, 539);
break;
- case 257:
+ case 275:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(536, 540);
+ jjCheckNAddStates(540, 544);
break;
- case 258:
+ case 276:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(541, 546);
+ jjCheckNAddStates(545, 550);
break;
- case 260:
+ case 278:
if (curChar == 40)
- jjCheckNAddStates(547, 552);
+ jjCheckNAddStates(551, 556);
break;
- case 261:
+ case 279:
if ((0xfffffc7a00000000L & l) != 0L)
- jjCheckNAddStates(553, 556);
+ jjCheckNAddStates(557, 560);
break;
- case 262:
+ case 280:
if ((0x100003600L & l) != 0L)
- jjCheckNAddTwoStates(262, 263);
+ jjCheckNAddTwoStates(280, 281);
break;
- case 263:
+ case 281:
if (curChar == 41 && kind > 73)
kind = 73;
break;
- case 265:
+ case 283:
if ((0xffffffff00000000L & l) != 0L)
- jjCheckNAddStates(553, 556);
+ jjCheckNAddStates(557, 560);
break;
- case 266:
+ case 284:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(557, 561);
+ jjCheckNAddStates(561, 565);
break;
- case 267:
+ case 285:
if ((0x100003600L & l) != 0L)
- jjCheckNAddStates(553, 556);
+ jjCheckNAddStates(557, 560);
break;
- case 268:
+ case 286:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(562, 569);
+ jjCheckNAddStates(566, 573);
break;
- case 269:
+ case 287:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(570, 573);
+ jjCheckNAddStates(574, 577);
break;
- case 270:
+ case 288:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(574, 578);
+ jjCheckNAddStates(578, 582);
break;
- case 271:
+ case 289:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(579, 584);
+ jjCheckNAddStates(583, 588);
break;
- case 272:
+ case 290:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(585, 591);
+ jjCheckNAddStates(589, 595);
break;
- case 273:
+ case 291:
if (curChar == 39)
- jjCheckNAddStates(592, 595);
+ jjCheckNAddStates(596, 599);
break;
- case 274:
+ case 292:
if ((0xffffff7f00000200L & l) != 0L)
- jjCheckNAddStates(592, 595);
+ jjCheckNAddStates(596, 599);
break;
- case 275:
+ case 293:
if (curChar == 39)
- jjCheckNAddTwoStates(262, 263);
+ jjCheckNAddTwoStates(280, 281);
break;
- case 277:
+ case 295:
if (curChar == 12)
- jjCheckNAddStates(592, 595);
+ jjCheckNAddStates(596, 599);
break;
- case 279:
+ case 297:
if ((0xffffffff00000000L & l) != 0L)
- jjCheckNAddStates(592, 595);
+ jjCheckNAddStates(596, 599);
break;
- case 280:
+ case 298:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(596, 601);
+ jjCheckNAddStates(600, 605);
break;
- case 281:
+ case 299:
if ((0x100003600L & l) != 0L)
- jjCheckNAddStates(592, 595);
+ jjCheckNAddStates(596, 599);
break;
- case 282:
+ case 300:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(602, 610);
+ jjCheckNAddStates(606, 614);
break;
- case 283:
+ case 301:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(611, 615);
+ jjCheckNAddStates(615, 619);
break;
- case 284:
+ case 302:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(616, 621);
+ jjCheckNAddStates(620, 625);
break;
- case 285:
+ case 303:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(622, 628);
+ jjCheckNAddStates(626, 632);
break;
- case 286:
+ case 304:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(629, 636);
+ jjCheckNAddStates(633, 640);
break;
- case 287:
+ case 305:
if (curChar == 13)
- jjCheckNAddStates(592, 595);
+ jjCheckNAddStates(596, 599);
break;
- case 288:
+ case 306:
if (curChar == 10)
- jjCheckNAddStates(592, 595);
+ jjCheckNAddStates(596, 599);
break;
- case 289:
+ case 307:
if (curChar == 13)
- jjstateSet[jjnewStateCnt++] = 288;
+ jjstateSet[jjnewStateCnt++] = 306;
break;
- case 290:
+ case 308:
if (curChar == 34)
- jjCheckNAddStates(637, 640);
+ jjCheckNAddStates(641, 644);
break;
- case 291:
+ case 309:
if ((0xfffffffb00000200L & l) != 0L)
- jjCheckNAddStates(637, 640);
+ jjCheckNAddStates(641, 644);
break;
- case 292:
+ case 310:
if (curChar == 34)
- jjCheckNAddTwoStates(262, 263);
+ jjCheckNAddTwoStates(280, 281);
break;
- case 294:
+ case 312:
if (curChar == 12)
- jjCheckNAddStates(637, 640);
+ jjCheckNAddStates(641, 644);
break;
- case 296:
+ case 314:
if ((0xffffffff00000000L & l) != 0L)
- jjCheckNAddStates(637, 640);
+ jjCheckNAddStates(641, 644);
break;
- case 297:
+ case 315:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(641, 646);
+ jjCheckNAddStates(645, 650);
break;
- case 298:
+ case 316:
if ((0x100003600L & l) != 0L)
- jjCheckNAddStates(637, 640);
+ jjCheckNAddStates(641, 644);
break;
- case 299:
+ case 317:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(647, 655);
+ jjCheckNAddStates(651, 659);
break;
- case 300:
+ case 318:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(656, 660);
+ jjCheckNAddStates(660, 664);
break;
- case 301:
+ case 319:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(661, 666);
+ jjCheckNAddStates(665, 670);
break;
- case 302:
+ case 320:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(667, 673);
+ jjCheckNAddStates(671, 677);
break;
- case 303:
+ case 321:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(674, 681);
+ jjCheckNAddStates(678, 685);
break;
- case 304:
+ case 322:
if (curChar == 13)
- jjCheckNAddStates(637, 640);
+ jjCheckNAddStates(641, 644);
break;
- case 305:
+ case 323:
if (curChar == 10)
- jjCheckNAddStates(637, 640);
+ jjCheckNAddStates(641, 644);
break;
- case 306:
+ case 324:
if (curChar == 13)
- jjstateSet[jjnewStateCnt++] = 305;
+ jjstateSet[jjnewStateCnt++] = 323;
break;
- case 307:
+ case 325:
if ((0x100003600L & l) != 0L)
- jjCheckNAddStates(682, 688);
+ jjCheckNAddStates(686, 692);
break;
- case 310:
+ case 328:
if (curChar == 43)
- jjAddStates(689, 690);
+ jjAddStates(693, 694);
break;
- case 311:
+ case 329:
if (curChar != 63)
break;
if (kind > 109)
kind = 109;
- jjstateSet[jjnewStateCnt++] = 312;
+ jjstateSet[jjnewStateCnt++] = 330;
break;
- case 312:
+ case 330:
if (curChar != 63)
break;
if (kind > 109)
kind = 109;
- jjCheckNAddStates(691, 694);
+ jjCheckNAddStates(695, 698);
break;
- case 313:
+ case 331:
if (curChar == 63 && kind > 109)
kind = 109;
break;
- case 314:
- case 329:
- case 333:
- case 336:
- case 339:
+ case 332:
+ case 347:
+ case 351:
+ case 354:
+ case 357:
if (curChar != 63)
break;
if (kind > 109)
kind = 109;
- jjCheckNAdd(313);
+ jjCheckNAdd(331);
break;
- case 315:
+ case 333:
if (curChar != 63)
break;
if (kind > 109)
kind = 109;
- jjCheckNAddTwoStates(313, 314);
+ jjCheckNAddTwoStates(331, 332);
break;
- case 316:
+ case 334:
if (curChar != 63)
break;
if (kind > 109)
kind = 109;
- jjCheckNAddStates(695, 697);
+ jjCheckNAddStates(699, 701);
break;
- case 317:
+ case 335:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjAddStates(698, 703);
+ jjAddStates(702, 707);
break;
- case 318:
+ case 336:
if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 319;
+ jjstateSet[jjnewStateCnt++] = 337;
break;
- case 319:
+ case 337:
if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 320;
+ jjstateSet[jjnewStateCnt++] = 338;
break;
- case 320:
+ case 338:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAdd(321);
+ jjCheckNAdd(339);
break;
- case 321:
+ case 339:
if ((0x3ff000000000000L & l) != 0L && kind > 109)
kind = 109;
break;
- case 322:
+ case 340:
if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 323;
+ jjstateSet[jjnewStateCnt++] = 341;
break;
- case 323:
+ case 341:
if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 324;
+ jjstateSet[jjnewStateCnt++] = 342;
break;
- case 324:
+ case 342:
if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 325;
+ jjstateSet[jjnewStateCnt++] = 343;
break;
- case 325:
+ case 343:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjCheckNAdd(313);
+ jjCheckNAdd(331);
break;
- case 326:
+ case 344:
if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 327;
+ jjstateSet[jjnewStateCnt++] = 345;
break;
- case 327:
+ case 345:
if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 328;
+ jjstateSet[jjnewStateCnt++] = 346;
break;
- case 328:
+ case 346:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjstateSet[jjnewStateCnt++] = 329;
+ jjstateSet[jjnewStateCnt++] = 347;
break;
- case 330:
+ case 348:
if ((0x3ff000000000000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 331;
+ jjstateSet[jjnewStateCnt++] = 349;
break;
- case 331:
+ case 349:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjstateSet[jjnewStateCnt++] = 332;
+ jjstateSet[jjnewStateCnt++] = 350;
break;
- case 332:
+ case 350:
if (curChar != 63)
break;
if (kind > 109)
kind = 109;
- jjCheckNAddTwoStates(313, 333);
+ jjCheckNAddTwoStates(331, 351);
break;
- case 334:
+ case 352:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjstateSet[jjnewStateCnt++] = 335;
+ jjstateSet[jjnewStateCnt++] = 353;
break;
- case 335:
+ case 353:
if (curChar != 63)
break;
if (kind > 109)
kind = 109;
- jjCheckNAddStates(704, 706);
+ jjCheckNAddStates(708, 710);
break;
- case 337:
+ case 355:
if (curChar != 63)
break;
if (kind > 109)
kind = 109;
- jjCheckNAddTwoStates(313, 336);
+ jjCheckNAddTwoStates(331, 354);
break;
- case 338:
+ case 356:
if (curChar != 63)
break;
if (kind > 109)
kind = 109;
- jjCheckNAddStates(707, 710);
+ jjCheckNAddStates(711, 714);
break;
- case 340:
+ case 358:
if (curChar != 63)
break;
if (kind > 109)
kind = 109;
- jjCheckNAddTwoStates(313, 339);
+ jjCheckNAddTwoStates(331, 357);
break;
- case 341:
+ case 359:
if (curChar != 63)
break;
if (kind > 109)
kind = 109;
- jjCheckNAddStates(711, 713);
+ jjCheckNAddStates(715, 717);
break;
- case 342:
+ case 360:
if (curChar == 43)
- jjstateSet[jjnewStateCnt++] = 343;
+ jjstateSet[jjnewStateCnt++] = 361;
break;
- case 343:
+ case 361:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(344, 350);
+ jjCheckNAddTwoStates(362, 368);
break;
- case 344:
+ case 362:
if (curChar == 45)
- jjstateSet[jjnewStateCnt++] = 345;
+ jjstateSet[jjnewStateCnt++] = 363;
break;
- case 345:
+ case 363:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjstateSet[jjnewStateCnt++] = 346;
+ jjstateSet[jjnewStateCnt++] = 364;
break;
- case 346:
+ case 364:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjCheckNAddStates(714, 717);
+ jjCheckNAddStates(718, 721);
break;
- case 347:
+ case 365:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjCheckNAdd(321);
+ jjCheckNAdd(339);
break;
- case 348:
+ case 366:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjCheckNAddTwoStates(321, 347);
+ jjCheckNAddTwoStates(339, 365);
break;
- case 349:
+ case 367:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjCheckNAddStates(718, 720);
+ jjCheckNAddStates(722, 724);
break;
- case 350:
+ case 368:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(721, 725);
+ jjCheckNAddStates(725, 729);
break;
- case 351:
+ case 369:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAdd(344);
+ jjCheckNAdd(362);
break;
- case 352:
+ case 370:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(351, 344);
+ jjCheckNAddTwoStates(369, 362);
break;
- case 353:
+ case 371:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(726, 728);
+ jjCheckNAddStates(730, 732);
break;
- case 354:
+ case 372:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(729, 732);
+ jjCheckNAddStates(733, 736);
break;
- case 356:
+ case 374:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(733, 736);
+ jjCheckNAddStates(737, 740);
break;
- case 357:
+ case 375:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(737, 743);
+ jjCheckNAddStates(741, 747);
break;
- case 358:
+ case 376:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(744, 746);
+ jjCheckNAddStates(748, 750);
break;
- case 359:
+ case 377:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(747, 750);
+ jjCheckNAddStates(751, 754);
break;
- case 360:
+ case 378:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(751, 755);
+ jjCheckNAddStates(755, 759);
break;
- case 361:
+ case 379:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(756, 761);
+ jjCheckNAddStates(760, 765);
break;
- case 362:
+ case 380:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(762, 766);
+ jjCheckNAddStates(766, 770);
break;
- case 363:
+ case 381:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(767, 774);
+ jjCheckNAddStates(771, 778);
break;
- case 365:
+ case 383:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(775, 779);
+ jjCheckNAddStates(779, 783);
break;
- case 366:
+ case 384:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(780, 785);
+ jjCheckNAddStates(784, 789);
break;
- case 367:
+ case 385:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(786, 792);
+ jjCheckNAddStates(790, 796);
break;
- case 368:
+ case 386:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 71)
kind = 71;
- jjCheckNAddStates(0, 73);
+ jjCheckNAddStates(9, 82);
break;
- case 369:
+ case 387:
if ((0x3ff000000000000L & l) == 0L)
break;
if (kind > 71)
kind = 71;
- jjCheckNAdd(369);
- break;
- case 370:
- if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(370, 371);
- break;
- case 371:
- if (curChar == 46)
- jjCheckNAdd(186);
- break;
- case 372:
- if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(372, 188);
- break;
- case 373:
- if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(373, 374);
- break;
- case 374:
- if (curChar == 46)
- jjCheckNAdd(187);
- break;
- case 375:
- if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(375, 191);
- break;
- case 376:
- if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(376, 377);
- break;
- case 377:
- if (curChar == 46)
- jjCheckNAdd(189);
- break;
- case 378:
- if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(378, 194);
- break;
- case 379:
- if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(379, 380);
- break;
- case 380:
- if (curChar == 46)
- jjCheckNAdd(192);
- break;
- case 381:
- if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(381, 197);
- break;
- case 382:
- if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(382, 383);
- break;
- case 383:
- if (curChar == 46)
- jjCheckNAdd(195);
- break;
- case 384:
- if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(384, 200);
- break;
- case 385:
- if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(385, 386);
- break;
- case 386:
- if (curChar == 46)
- jjCheckNAdd(198);
- break;
- case 387:
- if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(387, 203);
+ jjCheckNAdd(387);
break;
case 388:
if ((0x3ff000000000000L & l) != 0L)
@@ -2345,7 +2289,7 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 389:
if (curChar == 46)
- jjCheckNAdd(201);
+ jjCheckNAdd(204);
break;
case 390:
if ((0x3ff000000000000L & l) != 0L)
@@ -2357,7 +2301,7 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 392:
if (curChar == 46)
- jjCheckNAdd(204);
+ jjCheckNAdd(205);
break;
case 393:
if ((0x3ff000000000000L & l) != 0L)
@@ -2385,7 +2329,7 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 399:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(399, 216);
+ jjCheckNAddTwoStates(399, 215);
break;
case 400:
if ((0x3ff000000000000L & l) != 0L)
@@ -2397,7 +2341,7 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 402:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(402, 220);
+ jjCheckNAddTwoStates(402, 218);
break;
case 403:
if ((0x3ff000000000000L & l) != 0L)
@@ -2405,11 +2349,11 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 404:
if (curChar == 46)
- jjCheckNAdd(217);
+ jjCheckNAdd(216);
break;
case 405:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(405, 225);
+ jjCheckNAddTwoStates(405, 221);
break;
case 406:
if ((0x3ff000000000000L & l) != 0L)
@@ -2417,11 +2361,11 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 407:
if (curChar == 46)
- jjCheckNAdd(221);
+ jjCheckNAdd(219);
break;
case 408:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(408, 228);
+ jjCheckNAddTwoStates(408, 224);
break;
case 409:
if ((0x3ff000000000000L & l) != 0L)
@@ -2429,11 +2373,11 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 410:
if (curChar == 46)
- jjCheckNAdd(226);
+ jjCheckNAdd(222);
break;
case 411:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(411, 230);
+ jjCheckNAddTwoStates(411, 227);
break;
case 412:
if ((0x3ff000000000000L & l) != 0L)
@@ -2441,11 +2385,11 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 413:
if (curChar == 46)
- jjCheckNAdd(229);
+ jjCheckNAdd(225);
break;
case 414:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(414, 233);
+ jjCheckNAddTwoStates(414, 230);
break;
case 415:
if ((0x3ff000000000000L & l) != 0L)
@@ -2453,11 +2397,11 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 416:
if (curChar == 46)
- jjCheckNAdd(231);
+ jjCheckNAdd(228);
break;
case 417:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddTwoStates(417, 237);
+ jjCheckNAddTwoStates(417, 234);
break;
case 418:
if ((0x3ff000000000000L & l) != 0L)
@@ -2465,11 +2409,11 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 419:
if (curChar == 46)
- jjCheckNAdd(234);
+ jjCheckNAdd(231);
break;
case 420:
if ((0x3ff000000000000L & l) != 0L)
- jjCheckNAddStates(793, 797);
+ jjCheckNAddTwoStates(420, 238);
break;
case 421:
if ((0x3ff000000000000L & l) != 0L)
@@ -2477,7 +2421,79 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 422:
if (curChar == 46)
- jjCheckNAdd(238);
+ jjCheckNAdd(235);
+ break;
+ case 423:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(423, 243);
+ break;
+ case 424:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(424, 425);
+ break;
+ case 425:
+ if (curChar == 46)
+ jjCheckNAdd(239);
+ break;
+ case 426:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(426, 246);
+ break;
+ case 427:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(427, 428);
+ break;
+ case 428:
+ if (curChar == 46)
+ jjCheckNAdd(244);
+ break;
+ case 429:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(429, 248);
+ break;
+ case 430:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(430, 431);
+ break;
+ case 431:
+ if (curChar == 46)
+ jjCheckNAdd(247);
+ break;
+ case 432:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(432, 251);
+ break;
+ case 433:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(433, 434);
+ break;
+ case 434:
+ if (curChar == 46)
+ jjCheckNAdd(249);
+ break;
+ case 435:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(435, 255);
+ break;
+ case 436:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(436, 437);
+ break;
+ case 437:
+ if (curChar == 46)
+ jjCheckNAdd(252);
+ break;
+ case 438:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddStates(797, 801);
+ break;
+ case 439:
+ if ((0x3ff000000000000L & l) != 0L)
+ jjCheckNAddTwoStates(439, 440);
+ break;
+ case 440:
+ if (curChar == 46)
+ jjCheckNAdd(256);
break;
default : break;
}
@@ -2490,23 +2506,17 @@ private int jjMoveNfa_0(int startState, int curPos)
{
switch(jjstateSet[--i])
{
- case 4:
+ case 42:
+ if ((0x7fffffe07fffffeL & l) != 0L)
+ jjCheckNAddStates(5, 8);
if ((0x7fffffe07fffffeL & l) != 0L)
{
if (kind > 70)
kind = 70;
- jjCheckNAddStates(798, 803);
+ jjCheckNAddTwoStates(158, 159);
}
- else if (curChar == 92)
- jjCheckNAddStates(804, 807);
- else if (curChar == 64)
- jjAddStates(808, 811);
- if ((0x20000000200000L & l) != 0L)
- jjAddStates(812, 814);
- else if ((0x4000000040000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 137;
- else if ((0x4000000040L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 33;
+ if ((0x200000002000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 41;
break;
case 79:
if ((0x7fffffe07fffffeL & l) != 0L)
@@ -2518,19 +2528,13 @@ private int jjMoveNfa_0(int startState, int curPos)
else if (curChar == 92)
jjCheckNAddTwoStates(83, 93);
break;
- case 42:
- if ((0x7fffffe07fffffeL & l) != 0L)
- jjCheckNAddStates(115, 118);
- if ((0x7fffffe07fffffeL & l) != 0L)
- {
- if (kind > 70)
- kind = 70;
- jjCheckNAddTwoStates(140, 141);
- }
- if ((0x200000002000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 41;
+ case 443:
+ if ((0x20000000200L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 197;
+ else if ((0x1000000010L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 187;
break;
- case 426:
+ case 444:
if ((0x7fffffe87fffffeL & l) != 0L)
{
if (kind > 98)
@@ -2540,25 +2544,19 @@ private int jjMoveNfa_0(int startState, int curPos)
else if (curChar == 92)
jjCheckNAddTwoStates(115, 116);
break;
- case 425:
+ case 441:
if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(115, 118);
+ jjCheckNAddStates(5, 8);
else if (curChar == 92)
- jjCheckNAddTwoStates(142, 143);
+ jjCheckNAddTwoStates(160, 161);
if ((0x7fffffe87fffffeL & l) != 0L)
{
if (kind > 70)
kind = 70;
- jjCheckNAddTwoStates(140, 141);
+ jjCheckNAddTwoStates(158, 159);
}
else if (curChar == 92)
- jjCheckNAddTwoStates(154, 155);
- break;
- case 423:
- if ((0x20000000200L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 179;
- else if ((0x1000000010L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 169;
+ jjCheckNAddTwoStates(172, 173);
break;
case 111:
if ((0x7fffffe07fffffeL & l) != 0L)
@@ -2570,6 +2568,28 @@ private int jjMoveNfa_0(int startState, int curPos)
else if (curChar == 92)
jjCheckNAddTwoStates(115, 125);
break;
+ case 4:
+ if ((0x7fffffe07fffffeL & l) != 0L)
+ {
+ if (kind > 70)
+ kind = 70;
+ jjCheckNAddStates(802, 807);
+ }
+ else if (curChar == 92)
+ jjCheckNAddStates(808, 811);
+ else if (curChar == 64)
+ jjAddStates(812, 815);
+ if ((0x20000000200000L & l) != 0L)
+ jjAddStates(816, 818);
+ else if ((0x800000008L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 155;
+ else if ((0x200000002L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 145;
+ else if ((0x4000000040000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 137;
+ else if ((0x4000000040L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 33;
+ break;
case 2:
if (kind > 5)
kind = 5;
@@ -2698,15 +2718,15 @@ private int jjMoveNfa_0(int startState, int curPos)
case 45:
case 50:
if ((0x7fffffffffffffffL & l) != 0L)
- jjCheckNAddStates(106, 109);
+ jjCheckNAddStates(115, 118);
break;
case 47:
if (curChar == 92)
- jjAddStates(815, 818);
+ jjAddStates(819, 822);
break;
case 49:
if (curChar == 92)
- jjAddStates(819, 820);
+ jjAddStates(823, 824);
break;
case 51:
if ((0x7e0000007eL & l) != 0L)
@@ -2735,15 +2755,15 @@ private int jjMoveNfa_0(int startState, int curPos)
case 62:
case 67:
if ((0x7fffffffffffffffL & l) != 0L)
- jjCheckNAddStates(102, 105);
+ jjCheckNAddStates(111, 114);
break;
case 64:
if (curChar == 92)
- jjAddStates(821, 824);
+ jjAddStates(825, 828);
break;
case 66:
if (curChar == 92)
- jjAddStates(825, 826);
+ jjAddStates(829, 830);
break;
case 68:
if ((0x7e0000007eL & l) != 0L)
@@ -2891,7 +2911,7 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 101:
if (curChar == 92)
- jjAddStates(827, 828);
+ jjAddStates(831, 832);
break;
case 102:
if ((0x7fffffffffffffffL & l) == 0L)
@@ -2944,7 +2964,7 @@ private int jjMoveNfa_0(int startState, int curPos)
break;
case 110:
if (curChar == 64)
- jjAddStates(808, 811);
+ jjAddStates(812, 815);
break;
case 112:
if ((0x7fffffe07fffffeL & l) == 0L)
@@ -3083,752 +3103,808 @@ private int jjMoveNfa_0(int startState, int curPos)
if ((0x4000000040000L & l) != 0L)
jjstateSet[jjnewStateCnt++] = 137;
break;
- case 140:
+ case 139:
+ if ((0x1000000010L & l) != 0L)
+ jjAddStates(425, 426);
+ break;
+ case 142:
+ if ((0x400000004000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 139;
+ break;
+ case 143:
+ if ((0x2000000020L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 142;
+ break;
+ case 144:
+ if ((0x1000000010000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 143;
+ break;
+ case 145:
+ if ((0x1000000010000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 144;
+ break;
+ case 146:
+ if ((0x200000002L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 145;
+ break;
+ case 147:
+ if ((0x8000000080000L & l) != 0L)
+ jjAddStates(427, 428);
+ break;
+ case 150:
+ if ((0x400000004000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 147;
+ break;
+ case 151:
+ if ((0x20000000200L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 150;
+ break;
+ case 152:
+ if ((0x200000002L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 151;
+ break;
+ case 153:
+ if ((0x10000000100000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 152;
+ break;
+ case 154:
+ if ((0x400000004000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 153;
+ break;
+ case 155:
+ if ((0x800000008000L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 154;
+ break;
+ case 156:
+ if ((0x800000008L & l) != 0L)
+ jjstateSet[jjnewStateCnt++] = 155;
+ break;
+ case 158:
if ((0x7fffffe87fffffeL & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddTwoStates(140, 141);
+ jjCheckNAddTwoStates(158, 159);
break;
- case 141:
+ case 159:
if (curChar == 92)
- jjCheckNAddTwoStates(142, 143);
+ jjCheckNAddTwoStates(160, 161);
break;
- case 142:
+ case 160:
if ((0x7fffffffffffffffL & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddTwoStates(140, 141);
+ jjCheckNAddTwoStates(158, 159);
break;
- case 143:
+ case 161:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(425, 428);
+ jjCheckNAddStates(429, 432);
break;
- case 145:
+ case 163:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(429, 435);
+ jjCheckNAddStates(433, 439);
break;
- case 146:
+ case 164:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(436, 438);
+ jjCheckNAddStates(440, 442);
break;
- case 147:
+ case 165:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(439, 442);
+ jjCheckNAddStates(443, 446);
break;
- case 148:
+ case 166:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(443, 447);
+ jjCheckNAddStates(447, 451);
break;
- case 149:
+ case 167:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(448, 453);
+ jjCheckNAddStates(452, 457);
break;
- case 150:
+ case 168:
if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(115, 118);
+ jjCheckNAddStates(5, 8);
break;
- case 153:
+ case 171:
if (curChar == 92)
- jjCheckNAddTwoStates(154, 155);
+ jjCheckNAddTwoStates(172, 173);
break;
- case 154:
+ case 172:
if ((0x7fffffffffffffffL & l) != 0L)
- jjCheckNAddStates(115, 118);
+ jjCheckNAddStates(5, 8);
break;
- case 155:
+ case 173:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(454, 458);
+ jjCheckNAddStates(458, 462);
break;
- case 157:
+ case 175:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(459, 466);
+ jjCheckNAddStates(463, 470);
break;
- case 158:
- case 364:
+ case 176:
+ case 382:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(467, 470);
+ jjCheckNAddStates(471, 474);
break;
- case 159:
+ case 177:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(471, 475);
+ jjCheckNAddStates(475, 479);
break;
- case 160:
+ case 178:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(476, 481);
+ jjCheckNAddStates(480, 485);
break;
- case 161:
+ case 179:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(482, 488);
+ jjCheckNAddStates(486, 492);
break;
- case 164:
+ case 182:
if ((0x10000000100000L & l) != 0L && kind > 68)
kind = 68;
break;
- case 165:
+ case 183:
if ((0x100000001000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 164;
+ jjstateSet[jjnewStateCnt++] = 182;
break;
- case 166:
+ case 184:
if ((0x20000000200000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 165;
+ jjstateSet[jjnewStateCnt++] = 183;
break;
- case 167:
+ case 185:
if ((0x200000002L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 166;
+ jjstateSet[jjnewStateCnt++] = 184;
break;
- case 168:
+ case 186:
if ((0x4000000040L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 167;
+ jjstateSet[jjnewStateCnt++] = 185;
break;
- case 169:
+ case 187:
if ((0x2000000020L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 168;
+ jjstateSet[jjnewStateCnt++] = 186;
break;
- case 170:
+ case 188:
if ((0x1000000010L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 169;
+ jjstateSet[jjnewStateCnt++] = 187;
break;
- case 172:
+ case 190:
if ((0x10000000100000L & l) != 0L && kind > 99)
kind = 99;
break;
- case 173:
+ case 191:
if ((0x400000004000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 172;
+ jjstateSet[jjnewStateCnt++] = 190;
break;
- case 174:
+ case 192:
if ((0x200000002L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 173;
+ jjstateSet[jjnewStateCnt++] = 191;
break;
- case 175:
+ case 193:
if ((0x10000000100000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 174;
+ jjstateSet[jjnewStateCnt++] = 192;
break;
- case 176:
+ case 194:
if ((0x4000000040000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 175;
+ jjstateSet[jjnewStateCnt++] = 193;
break;
- case 177:
+ case 195:
if ((0x800000008000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 176;
+ jjstateSet[jjnewStateCnt++] = 194;
break;
- case 178:
+ case 196:
if ((0x1000000010000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 177;
+ jjstateSet[jjnewStateCnt++] = 195;
break;
- case 179:
+ case 197:
if ((0x200000002000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 178;
+ jjstateSet[jjnewStateCnt++] = 196;
break;
- case 180:
+ case 198:
if ((0x20000000200L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 179;
+ jjstateSet[jjnewStateCnt++] = 197;
break;
- case 182:
+ case 200:
if ((0x7fffffe07fffffeL & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddTwoStates(140, 141);
+ jjCheckNAddTwoStates(158, 159);
break;
- case 183:
+ case 201:
if ((0x7fffffe07fffffeL & l) != 0L)
- jjCheckNAddStates(115, 118);
+ jjCheckNAddStates(5, 8);
break;
- case 184:
+ case 202:
if ((0x7fffffe07fffffeL & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(798, 803);
+ jjCheckNAddStates(802, 807);
break;
- case 190:
+ case 208:
if ((0x10000000100000L & l) != 0L && kind > 76)
kind = 76;
break;
- case 191:
+ case 209:
if ((0x1000000010000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 190;
+ jjstateSet[jjnewStateCnt++] = 208;
break;
- case 193:
+ case 211:
if ((0x200000002000L & l) != 0L && kind > 77)
kind = 77;
break;
- case 194:
+ case 212:
if ((0x200000002000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 193;
+ jjstateSet[jjnewStateCnt++] = 211;
break;
- case 196:
+ case 214:
if ((0x200000002000L & l) != 0L && kind > 78)
kind = 78;
break;
- case 197:
+ case 215:
if ((0x800000008L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 196;
+ jjstateSet[jjnewStateCnt++] = 214;
break;
- case 199:
+ case 217:
if ((0x800000008L & l) != 0L && kind > 79)
kind = 79;
break;
- case 200:
+ case 218:
if ((0x1000000010000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 199;
+ jjstateSet[jjnewStateCnt++] = 217;
break;
- case 202:
+ case 220:
if ((0x400000004000L & l) != 0L && kind > 80)
kind = 80;
break;
- case 203:
+ case 221:
if ((0x20000000200L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 202;
+ jjstateSet[jjnewStateCnt++] = 220;
break;
- case 205:
+ case 223:
if ((0x100000001000000L & l) != 0L && kind > 81)
kind = 81;
break;
- case 206:
+ case 224:
if ((0x1000000010000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 205;
+ jjstateSet[jjnewStateCnt++] = 223;
break;
- case 208:
+ case 226:
if ((0x200000002000L & l) != 0L && kind > 82)
kind = 82;
break;
- case 209:
+ case 227:
if ((0x2000000020L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 208;
+ jjstateSet[jjnewStateCnt++] = 226;
break;
- case 211:
+ case 229:
if ((0x100000001000000L & l) != 0L && kind > 83)
kind = 83;
break;
- case 212:
+ case 230:
if ((0x2000000020L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 211;
+ jjstateSet[jjnewStateCnt++] = 229;
break;
- case 214:
+ case 232:
if ((0x8000000080L & l) != 0L && kind > 84)
kind = 84;
break;
- case 215:
+ case 233:
if ((0x2000000020L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 214;
+ jjstateSet[jjnewStateCnt++] = 232;
break;
- case 216:
+ case 234:
if ((0x1000000010L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 215;
+ jjstateSet[jjnewStateCnt++] = 233;
break;
- case 218:
+ case 236:
if ((0x1000000010L & l) != 0L && kind > 85)
kind = 85;
break;
- case 219:
+ case 237:
if ((0x200000002L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 218;
+ jjstateSet[jjnewStateCnt++] = 236;
break;
- case 220:
+ case 238:
if ((0x4000000040000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 219;
+ jjstateSet[jjnewStateCnt++] = 237;
break;
- case 222:
+ case 240:
if ((0x1000000010L & l) != 0L && kind > 86)
kind = 86;
break;
- case 223:
+ case 241:
if ((0x200000002L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 222;
+ jjstateSet[jjnewStateCnt++] = 240;
break;
- case 224:
+ case 242:
if ((0x4000000040000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 223;
+ jjstateSet[jjnewStateCnt++] = 241;
break;
- case 225:
+ case 243:
if ((0x8000000080L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 224;
+ jjstateSet[jjnewStateCnt++] = 242;
break;
- case 227:
+ case 245:
if ((0x8000000080000L & l) != 0L && kind > 87)
kind = 87;
break;
- case 228:
+ case 246:
if ((0x200000002000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 227;
+ jjstateSet[jjnewStateCnt++] = 245;
break;
- case 230:
+ case 248:
if ((0x8000000080000L & l) != 0L && kind > 88)
kind = 88;
break;
- case 232:
+ case 250:
if ((0x400000004000000L & l) != 0L && kind > 89)
kind = 89;
break;
- case 233:
+ case 251:
if ((0x10000000100L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 232;
+ jjstateSet[jjnewStateCnt++] = 250;
break;
- case 235:
+ case 253:
if ((0x400000004000000L & l) != 0L && kind > 90)
kind = 90;
break;
- case 236:
+ case 254:
if ((0x10000000100L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 235;
+ jjstateSet[jjnewStateCnt++] = 253;
break;
- case 237:
+ case 255:
if ((0x80000000800L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 236;
+ jjstateSet[jjnewStateCnt++] = 254;
break;
- case 240:
+ case 258:
if ((0x7fffffe07fffffeL & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddTwoStates(241, 242);
+ jjCheckNAddTwoStates(259, 260);
break;
- case 241:
+ case 259:
if ((0x7fffffe87fffffeL & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddTwoStates(241, 242);
+ jjCheckNAddTwoStates(259, 260);
break;
- case 242:
+ case 260:
if (curChar == 92)
- jjCheckNAddTwoStates(243, 244);
+ jjCheckNAddTwoStates(261, 262);
break;
- case 243:
+ case 261:
if ((0x7fffffffffffffffL & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddTwoStates(241, 242);
+ jjCheckNAddTwoStates(259, 260);
break;
- case 244:
+ case 262:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(489, 492);
+ jjCheckNAddStates(493, 496);
break;
- case 246:
+ case 264:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(493, 499);
+ jjCheckNAddStates(497, 503);
break;
- case 247:
+ case 265:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(500, 502);
+ jjCheckNAddStates(504, 506);
break;
- case 248:
+ case 266:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(503, 506);
+ jjCheckNAddStates(507, 510);
break;
- case 249:
+ case 267:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(507, 511);
+ jjCheckNAddStates(511, 515);
break;
- case 250:
+ case 268:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(512, 517);
+ jjCheckNAddStates(516, 521);
break;
- case 252:
+ case 270:
if (curChar == 92)
- jjCheckNAddTwoStates(243, 253);
+ jjCheckNAddTwoStates(261, 271);
break;
- case 253:
+ case 271:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(518, 521);
+ jjCheckNAddStates(522, 525);
break;
- case 254:
+ case 272:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(522, 528);
+ jjCheckNAddStates(526, 532);
break;
- case 255:
+ case 273:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(529, 531);
+ jjCheckNAddStates(533, 535);
break;
- case 256:
+ case 274:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(532, 535);
+ jjCheckNAddStates(536, 539);
break;
- case 257:
+ case 275:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(536, 540);
+ jjCheckNAddStates(540, 544);
break;
- case 258:
+ case 276:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddStates(541, 546);
+ jjCheckNAddStates(545, 550);
break;
- case 259:
+ case 277:
if ((0x20000000200000L & l) != 0L)
- jjAddStates(812, 814);
+ jjAddStates(816, 818);
break;
- case 261:
- case 265:
+ case 279:
+ case 283:
if ((0x7fffffffffffffffL & l) != 0L)
- jjCheckNAddStates(553, 556);
+ jjCheckNAddStates(557, 560);
break;
- case 264:
+ case 282:
if (curChar == 92)
- jjAddStates(829, 830);
+ jjAddStates(833, 834);
break;
- case 266:
+ case 284:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(557, 561);
+ jjCheckNAddStates(561, 565);
break;
- case 268:
+ case 286:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(562, 569);
+ jjCheckNAddStates(566, 573);
break;
- case 269:
+ case 287:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(570, 573);
+ jjCheckNAddStates(574, 577);
break;
- case 270:
+ case 288:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(574, 578);
+ jjCheckNAddStates(578, 582);
break;
- case 271:
+ case 289:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(579, 584);
+ jjCheckNAddStates(583, 588);
break;
- case 272:
+ case 290:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(585, 591);
+ jjCheckNAddStates(589, 595);
break;
- case 274:
- case 279:
+ case 292:
+ case 297:
if ((0x7fffffffffffffffL & l) != 0L)
- jjCheckNAddStates(592, 595);
+ jjCheckNAddStates(596, 599);
break;
- case 276:
+ case 294:
if (curChar == 92)
- jjAddStates(831, 834);
+ jjAddStates(835, 838);
break;
- case 278:
+ case 296:
if (curChar == 92)
- jjAddStates(835, 836);
+ jjAddStates(839, 840);
break;
- case 280:
+ case 298:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(596, 601);
+ jjCheckNAddStates(600, 605);
break;
- case 282:
+ case 300:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(602, 610);
+ jjCheckNAddStates(606, 614);
break;
- case 283:
+ case 301:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(611, 615);
+ jjCheckNAddStates(615, 619);
break;
- case 284:
+ case 302:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(616, 621);
+ jjCheckNAddStates(620, 625);
break;
- case 285:
+ case 303:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(622, 628);
+ jjCheckNAddStates(626, 632);
break;
- case 286:
+ case 304:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(629, 636);
+ jjCheckNAddStates(633, 640);
break;
- case 291:
- case 296:
+ case 309:
+ case 314:
if ((0x7fffffffffffffffL & l) != 0L)
- jjCheckNAddStates(637, 640);
+ jjCheckNAddStates(641, 644);
break;
- case 293:
+ case 311:
if (curChar == 92)
- jjAddStates(837, 840);
+ jjAddStates(841, 844);
break;
- case 295:
+ case 313:
if (curChar == 92)
- jjAddStates(841, 842);
+ jjAddStates(845, 846);
break;
- case 297:
+ case 315:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(641, 646);
+ jjCheckNAddStates(645, 650);
break;
- case 299:
+ case 317:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(647, 655);
+ jjCheckNAddStates(651, 659);
break;
- case 300:
+ case 318:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(656, 660);
+ jjCheckNAddStates(660, 664);
break;
- case 301:
+ case 319:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(661, 666);
+ jjCheckNAddStates(665, 670);
break;
- case 302:
+ case 320:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(667, 673);
+ jjCheckNAddStates(671, 677);
break;
- case 303:
+ case 321:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(674, 681);
+ jjCheckNAddStates(678, 685);
break;
- case 308:
+ case 326:
if ((0x100000001000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 260;
+ jjstateSet[jjnewStateCnt++] = 278;
break;
- case 309:
+ case 327:
if ((0x4000000040000L & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 308;
+ jjstateSet[jjnewStateCnt++] = 326;
break;
- case 317:
+ case 335:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjAddStates(698, 703);
+ jjAddStates(702, 707);
break;
- case 318:
+ case 336:
if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 319;
+ jjstateSet[jjnewStateCnt++] = 337;
break;
- case 319:
+ case 337:
if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 320;
+ jjstateSet[jjnewStateCnt++] = 338;
break;
- case 320:
+ case 338:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAdd(321);
+ jjCheckNAdd(339);
break;
- case 321:
+ case 339:
if ((0x7e0000007eL & l) != 0L && kind > 109)
kind = 109;
break;
- case 322:
+ case 340:
if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 323;
+ jjstateSet[jjnewStateCnt++] = 341;
break;
- case 323:
+ case 341:
if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 324;
+ jjstateSet[jjnewStateCnt++] = 342;
break;
- case 324:
+ case 342:
if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 325;
+ jjstateSet[jjnewStateCnt++] = 343;
break;
- case 325:
+ case 343:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjstateSet[jjnewStateCnt++] = 313;
+ jjstateSet[jjnewStateCnt++] = 331;
break;
- case 326:
+ case 344:
if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 327;
+ jjstateSet[jjnewStateCnt++] = 345;
break;
- case 327:
+ case 345:
if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 328;
+ jjstateSet[jjnewStateCnt++] = 346;
break;
- case 328:
+ case 346:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjstateSet[jjnewStateCnt++] = 329;
+ jjstateSet[jjnewStateCnt++] = 347;
break;
- case 330:
+ case 348:
if ((0x7e0000007eL & l) != 0L)
- jjstateSet[jjnewStateCnt++] = 331;
+ jjstateSet[jjnewStateCnt++] = 349;
break;
- case 331:
+ case 349:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjstateSet[jjnewStateCnt++] = 332;
+ jjstateSet[jjnewStateCnt++] = 350;
break;
- case 334:
+ case 352:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjstateSet[jjnewStateCnt++] = 335;
+ jjstateSet[jjnewStateCnt++] = 353;
break;
- case 343:
+ case 361:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddTwoStates(344, 350);
+ jjCheckNAddTwoStates(362, 368);
break;
- case 345:
+ case 363:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjstateSet[jjnewStateCnt++] = 346;
+ jjstateSet[jjnewStateCnt++] = 364;
break;
- case 346:
+ case 364:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjCheckNAddStates(714, 717);
+ jjCheckNAddStates(718, 721);
break;
- case 347:
+ case 365:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjCheckNAdd(321);
+ jjCheckNAdd(339);
break;
- case 348:
+ case 366:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjCheckNAddTwoStates(321, 347);
+ jjCheckNAddTwoStates(339, 365);
break;
- case 349:
+ case 367:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 109)
kind = 109;
- jjCheckNAddStates(718, 720);
+ jjCheckNAddStates(722, 724);
break;
- case 350:
+ case 368:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(721, 725);
+ jjCheckNAddStates(725, 729);
break;
- case 351:
+ case 369:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAdd(344);
+ jjCheckNAdd(362);
break;
- case 352:
+ case 370:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddTwoStates(351, 344);
+ jjCheckNAddTwoStates(369, 362);
break;
- case 353:
+ case 371:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(726, 728);
+ jjCheckNAddStates(730, 732);
break;
- case 354:
+ case 372:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(729, 732);
+ jjCheckNAddStates(733, 736);
break;
- case 355:
+ case 373:
if (curChar == 92)
- jjCheckNAddStates(804, 807);
+ jjCheckNAddStates(808, 811);
break;
- case 356:
+ case 374:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(733, 736);
+ jjCheckNAddStates(737, 740);
break;
- case 357:
+ case 375:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(737, 743);
+ jjCheckNAddStates(741, 747);
break;
- case 358:
+ case 376:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(744, 746);
+ jjCheckNAddStates(748, 750);
break;
- case 359:
+ case 377:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(747, 750);
+ jjCheckNAddStates(751, 754);
break;
- case 360:
+ case 378:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(751, 755);
+ jjCheckNAddStates(755, 759);
break;
- case 361:
+ case 379:
if ((0x7e0000007eL & l) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddStates(756, 761);
+ jjCheckNAddStates(760, 765);
break;
- case 362:
+ case 380:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(762, 766);
+ jjCheckNAddStates(766, 770);
break;
- case 363:
+ case 381:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(767, 774);
+ jjCheckNAddStates(771, 778);
break;
- case 365:
+ case 383:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(775, 779);
+ jjCheckNAddStates(779, 783);
break;
- case 366:
+ case 384:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(780, 785);
+ jjCheckNAddStates(784, 789);
break;
- case 367:
+ case 385:
if ((0x7e0000007eL & l) != 0L)
- jjCheckNAddStates(786, 792);
+ jjCheckNAddStates(790, 796);
break;
default : break;
}
@@ -3842,13 +3918,6 @@ private int jjMoveNfa_0(int startState, int curPos)
{
switch(jjstateSet[--i])
{
- case 4:
- if ((jjbitVec0[i2] & l2) == 0L)
- break;
- if (kind > 40)
- kind = 40;
- jjCheckNAddStates(798, 803);
- break;
case 79:
case 81:
case 83:
@@ -3858,7 +3927,7 @@ private int jjMoveNfa_0(int startState, int curPos)
kind = 74;
jjCheckNAddTwoStates(81, 82);
break;
- case 426:
+ case 444:
case 113:
case 115:
if ((jjbitVec0[i2] & l2) == 0L)
@@ -3867,15 +3936,15 @@ private int jjMoveNfa_0(int startState, int curPos)
kind = 98;
jjCheckNAddTwoStates(113, 114);
break;
- case 425:
+ case 441:
if ((jjbitVec0[i2] & l2) != 0L)
{
if (kind > 70)
kind = 70;
- jjCheckNAddTwoStates(140, 141);
+ jjCheckNAddTwoStates(158, 159);
}
if ((jjbitVec0[i2] & l2) != 0L)
- jjCheckNAddStates(115, 118);
+ jjCheckNAddStates(5, 8);
break;
case 111:
if ((jjbitVec0[i2] & l2) == 0L)
@@ -3884,6 +3953,13 @@ private int jjMoveNfa_0(int startState, int curPos)
kind = 98;
jjCheckNAddTwoStates(113, 114);
break;
+ case 4:
+ if ((jjbitVec0[i2] & l2) == 0L)
+ break;
+ if (kind > 40)
+ kind = 40;
+ jjCheckNAddStates(802, 807);
+ break;
case 2:
if ((jjbitVec0[i2] & l2) != 0L && kind > 5)
kind = 5;
@@ -3897,12 +3973,12 @@ private int jjMoveNfa_0(int startState, int curPos)
case 45:
case 50:
if ((jjbitVec0[i2] & l2) != 0L)
- jjCheckNAddStates(106, 109);
+ jjCheckNAddStates(115, 118);
break;
case 62:
case 67:
if ((jjbitVec0[i2] & l2) != 0L)
- jjCheckNAddStates(102, 105);
+ jjCheckNAddStates(111, 114);
break;
case 100:
case 102:
@@ -3912,42 +3988,42 @@ private int jjMoveNfa_0(int startState, int curPos)
kind = 92;
jjCheckNAddTwoStates(100, 101);
break;
- case 140:
- case 142:
+ case 158:
+ case 160:
if ((jjbitVec0[i2] & l2) == 0L)
break;
if (kind > 70)
kind = 70;
- jjCheckNAddTwoStates(140, 141);
+ jjCheckNAddTwoStates(158, 159);
break;
- case 150:
- case 154:
+ case 168:
+ case 172:
if ((jjbitVec0[i2] & l2) != 0L)
- jjCheckNAddStates(115, 118);
+ jjCheckNAddStates(5, 8);
break;
- case 241:
- case 243:
- case 251:
+ case 259:
+ case 261:
+ case 269:
if ((jjbitVec0[i2] & l2) == 0L)
break;
if (kind > 91)
kind = 91;
- jjCheckNAddTwoStates(241, 242);
+ jjCheckNAddTwoStates(259, 260);
break;
- case 261:
- case 265:
+ case 279:
+ case 283:
if ((jjbitVec0[i2] & l2) != 0L)
- jjCheckNAddStates(553, 556);
+ jjCheckNAddStates(557, 560);
break;
- case 274:
- case 279:
+ case 292:
+ case 297:
if ((jjbitVec0[i2] & l2) != 0L)
- jjCheckNAddStates(592, 595);
+ jjCheckNAddStates(596, 599);
break;
- case 291:
- case 296:
+ case 309:
+ case 314:
if ((jjbitVec0[i2] & l2) != 0L)
- jjCheckNAddStates(637, 640);
+ jjCheckNAddStates(641, 644);
break;
default : break;
}
@@ -3960,7 +4036,7 @@ private int jjMoveNfa_0(int startState, int curPos)
kind = 0x7fffffff;
}
++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 423 - (jjnewStateCnt = startsAt)))
+ if ((i = jjnewStateCnt) == (startsAt = 441 - (jjnewStateCnt = startsAt)))
return curPos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return curPos; }
@@ -4116,14 +4192,14 @@ private int jjMoveStringLiteralDfa1_2(long active0)
return 2;
}
static final int[] jjnextStates = {
- 369, 370, 371, 372, 373, 374, 188, 375, 376, 377, 191, 378, 379, 380, 194, 381,
- 382, 383, 197, 384, 385, 386, 200, 387, 388, 389, 203, 390, 391, 392, 206, 393,
- 394, 395, 209, 396, 397, 398, 212, 399, 400, 401, 216, 402, 403, 404, 220, 405,
- 406, 407, 225, 408, 409, 410, 228, 411, 412, 413, 230, 414, 415, 416, 233, 417,
- 418, 419, 237, 420, 421, 422, 239, 240, 251, 252, 186, 187, 189, 192, 195, 198,
- 201, 204, 207, 210, 213, 217, 221, 226, 229, 231, 234, 238, 182, 183, 163, 170,
- 171, 180, 79, 80, 91, 92, 62, 63, 64, 66, 45, 46, 47, 49, 238, 239,
- 240, 251, 252, 150, 151, 152, 153, 7, 8, 20, 21, 9, 10, 11, 9, 14,
+ 256, 257, 258, 269, 270, 168, 169, 170, 171, 387, 388, 389, 390, 391, 392, 206,
+ 393, 394, 395, 209, 396, 397, 398, 212, 399, 400, 401, 215, 402, 403, 404, 218,
+ 405, 406, 407, 221, 408, 409, 410, 224, 411, 412, 413, 227, 414, 415, 416, 230,
+ 417, 418, 419, 234, 420, 421, 422, 238, 423, 424, 425, 243, 426, 427, 428, 246,
+ 429, 430, 431, 248, 432, 433, 434, 251, 435, 436, 437, 255, 438, 439, 440, 257,
+ 258, 269, 270, 204, 205, 207, 210, 213, 216, 219, 222, 225, 228, 231, 235, 239,
+ 244, 247, 249, 252, 256, 200, 201, 181, 188, 189, 198, 79, 80, 91, 92, 62,
+ 63, 64, 66, 45, 46, 47, 49, 7, 8, 20, 21, 9, 10, 11, 9, 14,
10, 11, 15, 9, 16, 14, 10, 11, 17, 18, 19, 9, 14, 10, 11, 9,
16, 14, 10, 11, 9, 16, 14, 10, 11, 17, 9, 16, 14, 10, 11, 17,
18, 14, 9, 10, 11, 23, 24, 14, 9, 10, 11, 25, 26, 27, 14, 9,
@@ -4142,33 +4218,33 @@ static final int[] jjnextStates = {
118, 113, 119, 117, 114, 120, 121, 122, 113, 117, 114, 113, 119, 117, 114, 113,
119, 117, 114, 120, 113, 119, 117, 114, 120, 121, 117, 113, 114, 126, 127, 117,
113, 114, 128, 129, 130, 117, 113, 114, 127, 117, 113, 114, 127, 117, 113, 114,
- 128, 127, 117, 113, 114, 128, 129, 132, 133, 140, 144, 141, 145, 140, 146, 144,
- 141, 147, 148, 149, 140, 144, 141, 140, 146, 144, 141, 140, 146, 144, 141, 147,
- 140, 146, 144, 141, 147, 148, 150, 152, 153, 156, 157, 150, 158, 152, 153, 156,
- 159, 160, 161, 150, 152, 153, 156, 150, 158, 152, 153, 156, 150, 158, 152, 153,
- 156, 159, 150, 158, 152, 153, 156, 159, 160, 241, 245, 242, 246, 241, 247, 245,
- 242, 248, 249, 250, 241, 245, 242, 241, 247, 245, 242, 241, 247, 245, 242, 248,
- 241, 247, 245, 242, 248, 249, 245, 241, 242, 254, 255, 245, 241, 242, 256, 257,
- 258, 245, 241, 242, 255, 245, 241, 242, 255, 245, 241, 242, 256, 255, 245, 241,
- 242, 256, 257, 261, 273, 290, 263, 264, 307, 261, 262, 263, 264, 261, 263, 264,
- 267, 268, 261, 269, 263, 264, 267, 270, 271, 272, 261, 263, 264, 267, 261, 269,
- 263, 264, 267, 261, 269, 263, 264, 267, 270, 261, 269, 263, 264, 267, 270, 271,
- 274, 275, 276, 278, 274, 281, 275, 276, 278, 282, 274, 283, 281, 275, 276, 278,
- 284, 285, 286, 274, 281, 275, 276, 278, 274, 283, 281, 275, 276, 278, 274, 283,
- 281, 275, 276, 278, 284, 274, 283, 281, 275, 276, 278, 284, 285, 291, 292, 293,
- 295, 291, 298, 292, 293, 295, 299, 291, 300, 298, 292, 293, 295, 301, 302, 303,
- 291, 298, 292, 293, 295, 291, 300, 298, 292, 293, 295, 291, 300, 298, 292, 293,
- 295, 301, 291, 300, 298, 292, 293, 295, 301, 302, 261, 273, 290, 262, 263, 264,
- 307, 311, 317, 313, 314, 315, 316, 313, 314, 315, 318, 322, 326, 330, 334, 338,
- 313, 336, 337, 313, 339, 340, 341, 313, 339, 340, 321, 347, 348, 349, 321, 347,
- 348, 351, 344, 352, 353, 354, 351, 344, 352, 351, 344, 352, 353, 144, 140, 141,
- 357, 358, 144, 140, 141, 359, 360, 361, 144, 140, 141, 358, 144, 140, 141, 358,
- 144, 140, 141, 359, 358, 144, 140, 141, 359, 360, 150, 152, 153, 156, 363, 364,
- 150, 152, 153, 156, 365, 366, 367, 364, 150, 152, 153, 156, 364, 150, 152, 153,
- 156, 365, 364, 150, 152, 153, 156, 365, 366, 420, 239, 240, 251, 252, 140, 150,
- 151, 152, 153, 141, 142, 356, 154, 362, 111, 112, 123, 124, 309, 310, 342, 48,
- 58, 60, 59, 50, 51, 65, 75, 77, 76, 67, 68, 102, 103, 265, 266, 277,
- 287, 289, 288, 279, 280, 294, 304, 306, 305, 296, 297,
+ 128, 127, 117, 113, 114, 128, 129, 132, 133, 140, 141, 148, 149, 158, 162, 159,
+ 163, 158, 164, 162, 159, 165, 166, 167, 158, 162, 159, 158, 164, 162, 159, 158,
+ 164, 162, 159, 165, 158, 164, 162, 159, 165, 166, 168, 170, 171, 174, 175, 168,
+ 176, 170, 171, 174, 177, 178, 179, 168, 170, 171, 174, 168, 176, 170, 171, 174,
+ 168, 176, 170, 171, 174, 177, 168, 176, 170, 171, 174, 177, 178, 259, 263, 260,
+ 264, 259, 265, 263, 260, 266, 267, 268, 259, 263, 260, 259, 265, 263, 260, 259,
+ 265, 263, 260, 266, 259, 265, 263, 260, 266, 267, 263, 259, 260, 272, 273, 263,
+ 259, 260, 274, 275, 276, 263, 259, 260, 273, 263, 259, 260, 273, 263, 259, 260,
+ 274, 273, 263, 259, 260, 274, 275, 279, 291, 308, 281, 282, 325, 279, 280, 281,
+ 282, 279, 281, 282, 285, 286, 279, 287, 281, 282, 285, 288, 289, 290, 279, 281,
+ 282, 285, 279, 287, 281, 282, 285, 279, 287, 281, 282, 285, 288, 279, 287, 281,
+ 282, 285, 288, 289, 292, 293, 294, 296, 292, 299, 293, 294, 296, 300, 292, 301,
+ 299, 293, 294, 296, 302, 303, 304, 292, 299, 293, 294, 296, 292, 301, 299, 293,
+ 294, 296, 292, 301, 299, 293, 294, 296, 302, 292, 301, 299, 293, 294, 296, 302,
+ 303, 309, 310, 311, 313, 309, 316, 310, 311, 313, 317, 309, 318, 316, 310, 311,
+ 313, 319, 320, 321, 309, 316, 310, 311, 313, 309, 318, 316, 310, 311, 313, 309,
+ 318, 316, 310, 311, 313, 319, 309, 318, 316, 310, 311, 313, 319, 320, 279, 291,
+ 308, 280, 281, 282, 325, 329, 335, 331, 332, 333, 334, 331, 332, 333, 336, 340,
+ 344, 348, 352, 356, 331, 354, 355, 331, 357, 358, 359, 331, 357, 358, 339, 365,
+ 366, 367, 339, 365, 366, 369, 362, 370, 371, 372, 369, 362, 370, 369, 362, 370,
+ 371, 162, 158, 159, 375, 376, 162, 158, 159, 377, 378, 379, 162, 158, 159, 376,
+ 162, 158, 159, 376, 162, 158, 159, 377, 376, 162, 158, 159, 377, 378, 168, 170,
+ 171, 174, 381, 382, 168, 170, 171, 174, 383, 384, 385, 382, 168, 170, 171, 174,
+ 382, 168, 170, 171, 174, 383, 382, 168, 170, 171, 174, 383, 384, 438, 257, 258,
+ 269, 270, 158, 168, 169, 170, 171, 159, 160, 374, 172, 380, 111, 112, 123, 124,
+ 327, 328, 360, 48, 58, 60, 59, 50, 51, 65, 75, 77, 76, 67, 68, 102,
+ 103, 283, 284, 295, 305, 307, 306, 297, 298, 312, 322, 324, 323, 314, 315,
};
/** Token literal values. */
@@ -4181,7 +4257,8 @@ null, null, null, null, null, null, null, null, null, null, null, null, null, nu
null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-null, null, null, null, null, null, null, null, null, null, null, null, null, null, };
+null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+null, null, };
/** Lexer state names. */
public static final String[] lexStateNames = {
@@ -4197,10 +4274,10 @@ public static final int[] jjnewLexState = {
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
};
static final long[] jjtoToken = {
- 0xfffe01fffffffc03L, 0x1e00ffffffeffL,
+ 0xfffe01fffffffc03L, 0x7e00ffffffeffL,
};
static final long[] jjtoSkip = {
0x190L, 0x0L,
@@ -4212,8 +4289,8 @@ static final long[] jjtoMore = {
0x26cL, 0x0L,
};
protected CharStream input_stream;
-private final int[] jjrounds = new int[423];
-private final int[] jjstateSet = new int[846];
+private final int[] jjrounds = new int[441];
+private final int[] jjstateSet = new int[882];
private final StringBuilder jjimage = new StringBuilder();
private StringBuilder image = jjimage;
private int jjimageLen;
@@ -4242,7 +4319,7 @@ private void ReInitRounds()
{
int i;
jjround = 0x80000001;
- for (i = 423; i-- > 0;)
+ for (i = 441; i-- > 0;)
jjrounds[i] = 0x80000000;
}
@@ -4326,9 +4403,9 @@ public Token getNextToken()
jjmatchedKind = 0x7fffffff;
jjmatchedPos = 0;
curPos = jjMoveStringLiteralDfa0_0();
- if (jjmatchedPos == 0 && jjmatchedKind > 112)
+ if (jjmatchedPos == 0 && jjmatchedKind > 114)
{
- jjmatchedKind = 112;
+ jjmatchedKind = 114;
}
break;
case 1:
diff --git a/theme-compiler/src/com/vaadin/sass/tree/BlockNode.java b/theme-compiler/src/com/vaadin/sass/tree/BlockNode.java
index 3c87d3db82..5a64a928db 100644
--- a/theme-compiler/src/com/vaadin/sass/tree/BlockNode.java
+++ b/theme-compiler/src/com/vaadin/sass/tree/BlockNode.java
@@ -38,11 +38,13 @@ public class BlockNode extends Node implements IVariableNode, InterpolationNode
public String toString(boolean indent) {
StringBuilder string = new StringBuilder();
+ int i = 0;
for (final String s : selectorList) {
string.append(s);
- if (selectorList.indexOf(s) != selectorList.size() - 1) {
+ if (i != selectorList.size() - 1) {
string.append(", ");
}
+ i++;
}
string.append(" {\n");
for (Node child : children) {
diff --git a/theme-compiler/src/com/vaadin/sass/tree/ListAppendNode.java b/theme-compiler/src/com/vaadin/sass/tree/ListAppendNode.java
new file mode 100644
index 0000000000..ef85594744
--- /dev/null
+++ b/theme-compiler/src/com/vaadin/sass/tree/ListAppendNode.java
@@ -0,0 +1,19 @@
+package com.vaadin.sass.tree;
+
+import java.util.ArrayList;
+
+public class ListAppendNode extends ListModifyNode {
+
+ public ListAppendNode(String variable, String list, String append,
+ String separator) {
+ this.variable = variable;
+ checkSeparator(separator, list);
+ populateList(list, append);
+ }
+
+ @Override
+ protected void modifyList(ArrayList<String> newList) {
+ newList.addAll(modify);
+ }
+
+}
diff --git a/theme-compiler/src/com/vaadin/sass/tree/ListContainsNode.java b/theme-compiler/src/com/vaadin/sass/tree/ListContainsNode.java
new file mode 100644
index 0000000000..1a9ace88a5
--- /dev/null
+++ b/theme-compiler/src/com/vaadin/sass/tree/ListContainsNode.java
@@ -0,0 +1,31 @@
+package com.vaadin.sass.tree;
+
+import java.util.ArrayList;
+
+import com.vaadin.sass.parser.LexicalUnitImpl;
+
+public class ListContainsNode extends ListModifyNode {
+
+ public ListContainsNode(String variable, String list, String contains,
+ String separator) {
+ this.variable = variable;
+ checkSeparator(separator, list);
+ populateList(list, contains);
+ }
+
+ @Override
+ protected void modifyList(ArrayList<String> newList) {
+ // Does not actually modify the list
+ }
+
+ @Override
+ public VariableNode getModifiedList() {
+
+ String contains = "" + list.containsAll(modify);
+ VariableNode node = new VariableNode(variable.substring(1),
+ LexicalUnitImpl.createString(contains), false);
+ return node;
+
+ }
+
+}
diff --git a/theme-compiler/src/com/vaadin/sass/tree/ListModifyNode.java b/theme-compiler/src/com/vaadin/sass/tree/ListModifyNode.java
index 0e9f727c53..d54f56f8a7 100644
--- a/theme-compiler/src/com/vaadin/sass/tree/ListModifyNode.java
+++ b/theme-compiler/src/com/vaadin/sass/tree/ListModifyNode.java
@@ -1,11 +1,102 @@
package com.vaadin.sass.tree;
-public interface ListModifyNode {
+import java.util.ArrayList;
+import java.util.Arrays;
- public String getNewVariable();
+import com.vaadin.sass.parser.LexicalUnitImpl;
- public String getModifyingList();
+public abstract class ListModifyNode extends Node implements IVariableNode {
- public VariableNode getModifiedList(VariableNode variableNode);
+ protected ArrayList<String> list;
+ protected ArrayList<String> modify;
+ protected String separator = " ";
+ protected String variable;
+
+ public String getNewVariable() {
+ return variable;
+ }
+
+ public VariableNode getModifiedList() {
+ final ArrayList<String> newList = new ArrayList<String>(list);
+ modifyList(newList);
+
+ LexicalUnitImpl unit = null;
+ if (newList.size() > 0) {
+ unit = LexicalUnitImpl.createIdent(newList.get(0));
+ LexicalUnitImpl last = unit;
+ for (int i = 1; i < newList.size(); i++) {
+ LexicalUnitImpl current = LexicalUnitImpl.createIdent(newList
+ .get(i));
+ last.setNextLexicalUnit(current);
+ last = current;
+ }
+
+ }
+ VariableNode node = new VariableNode(variable.substring(1), unit, false);
+ return node;
+ }
+
+ protected abstract void modifyList(ArrayList<String> newList);
+
+ protected void checkSeparator(String separator, String list) {
+ String lowerCase = "";
+ if (separator == null
+ || (lowerCase = separator.toLowerCase()).equals("auto")) {
+ if (list.contains(",")) {
+ this.separator = ",";
+ }
+ } else if (lowerCase.equals("comma")) {
+ this.separator = ",";
+ } else if (lowerCase.equals("space")) {
+ this.separator = " ";
+ }
+ }
+
+ protected void populateList(String list, String modify) {
+ this.list = new ArrayList<String>(Arrays.asList(list.split(separator)));
+ this.modify = new ArrayList<String>(Arrays.asList(modify
+ .split(separator)));
+ }
+
+ @Override
+ public void replaceVariables(ArrayList<VariableNode> variables) {
+ for (final String listVar : new ArrayList<String>(list)) {
+ replacePossibleVariable(variables, listVar, list);
+ }
+
+ for (final String listVar : new ArrayList<String>(modify)) {
+ replacePossibleVariable(variables, listVar, modify);
+ }
+
+ }
+
+ private void replacePossibleVariable(ArrayList<VariableNode> variables,
+ final String listVar, ArrayList<String> list) {
+ if (listVar.startsWith("$")) {
+
+ for (final VariableNode var : variables) {
+
+ if (var.getName().equals(listVar.substring(1))) {
+
+ String[] split = null;
+ if (var.getExpr().toString().contains(",")) {
+ split = var.getExpr().toString().split(",");
+ } else {
+ split = var.getExpr().toString().split(" ");
+ }
+ int i = list.indexOf(listVar);
+ for (final String s : split) {
+ list.add(i, s.trim());
+ i++;
+ }
+
+ list.remove(listVar);
+ break;
+
+ }
+ }
+
+ }
+ }
}
diff --git a/theme-compiler/src/com/vaadin/sass/tree/ListRemoveNode.java b/theme-compiler/src/com/vaadin/sass/tree/ListRemoveNode.java
index 9c61c9f636..22fb216c9e 100644
--- a/theme-compiler/src/com/vaadin/sass/tree/ListRemoveNode.java
+++ b/theme-compiler/src/com/vaadin/sass/tree/ListRemoveNode.java
@@ -1,107 +1,19 @@
package com.vaadin.sass.tree;
import java.util.ArrayList;
-import java.util.Arrays;
import com.vaadin.sass.parser.LexicalUnitImpl;
-import com.vaadin.sass.util.DeepCopy;
-public class ListRemoveNode extends Node implements ListModifyNode,
- IVariableNode {
-
- private ArrayList<String> list;
- private ArrayList<String> remove;
- private String separator = " ";
- private String variable;
+public class ListRemoveNode extends ListModifyNode {
public ListRemoveNode(String variable, String list, String remove,
String separator) {
this.variable = variable;
checkSeparator(separator, list);
-
populateList(list, remove);
}
- private void checkSeparator(String separator, String list) {
- String lowerCase = "";
- if (separator == null
- || (lowerCase = separator.toLowerCase()).equals("auto")) {
- if (list.contains(",")) {
- this.separator = ",";
- }
- } else if (lowerCase.equals("comma")) {
- this.separator = ",";
- } else if (lowerCase.equals("space")) {
- this.separator = " ";
- }
- }
-
- private void populateList(String list, String remove) {
- this.list = new ArrayList<String>(Arrays.asList(list.split(separator)));
- this.remove = new ArrayList<String>(Arrays.asList(remove
- .split(separator)));
- }
-
- @Override
- public String getNewVariable() {
- return variable;
- }
-
- @Override
- public VariableNode getModifiedList(VariableNode variableNode) {
-
- if (variableNode != null) {
- VariableNode clone = (VariableNode) DeepCopy.copy(variableNode);
-
- LexicalUnitImpl first = null;
- LexicalUnitImpl current = (LexicalUnitImpl) clone.getExpr();
- LexicalUnitImpl lastAccepted = null;
- while (current != null) {
-
- if (shouldInclude(current, lastAccepted)) {
- LexicalUnitImpl temp = current.clone();
- temp.setNextLexicalUnit(null);
-
- if (lastAccepted != null) {
- lastAccepted.setNextLexicalUnit(temp);
- }
-
- lastAccepted = temp;
-
- if (first == null) {
- first = lastAccepted;
- }
- }
- current = (LexicalUnitImpl) current.getNextLexicalUnit();
- }
-
- clone.setExpr(first);
-
- return clone;
- } else {
-
- final ArrayList<String> newList = new ArrayList<String>(list);
- newList.removeAll(remove);
-
- LexicalUnitImpl unit = null;
- if (newList.size() > 0) {
- unit = LexicalUnitImpl.createString(newList.get(0));
- LexicalUnitImpl last = unit;
- for (int i = 1; i < newList.size(); i++) {
- LexicalUnitImpl current = LexicalUnitImpl
- .createString(newList.get(i));
- last.setNextLexicalUnit(current);
- last = current;
- }
-
- }
- VariableNode node = new VariableNode(variable, unit, false);
- return node;
-
- }
- }
-
private boolean shouldInclude(LexicalUnitImpl current,
LexicalUnitImpl lastAccepted) {
@@ -112,7 +24,7 @@ public class ListRemoveNode extends Node implements ListModifyNode,
}
String string = current.getValue().toString();
- for (final String s : remove) {
+ for (final String s : modify) {
if (s.equals(string)) {
return false;
}
@@ -121,38 +33,7 @@ public class ListRemoveNode extends Node implements ListModifyNode,
}
@Override
- public void replaceVariables(ArrayList<VariableNode> variables) {
- ArrayList<String> newList = new ArrayList<String>();
-
- for (final String removeVar : remove) {
- if (!removeVar.startsWith("$")) {
- continue;
- }
-
- for (final VariableNode var : variables) {
- if (removeVar.equals("$" + var.getName())) {
- LexicalUnitImpl expr = var.getExpr();
- while (expr != null) {
- newList.add(expr.getValue().toString());
- expr = expr.getNextLexicalUnit();
- }
-
- }
- }
- }
- if (newList.size() > 0) {
- remove = newList;
- }
-
- }
-
- @Override
- public String getModifyingList() {
- String firstListEntry = list.get(0);
- if (list.size() == 1 && firstListEntry.startsWith("$")) {
- return firstListEntry.substring(1, firstListEntry.length());
- }
-
- return null;
+ protected void modifyList(ArrayList<String> newList) {
+ newList.removeAll(modify);
}
}
diff --git a/theme-compiler/src/com/vaadin/sass/tree/VariableNode.java b/theme-compiler/src/com/vaadin/sass/tree/VariableNode.java
index 8c360c4a56..6ba27ebac5 100644
--- a/theme-compiler/src/com/vaadin/sass/tree/VariableNode.java
+++ b/theme-compiler/src/com/vaadin/sass/tree/VariableNode.java
@@ -18,10 +18,7 @@ package com.vaadin.sass.tree;
import java.util.ArrayList;
-import org.w3c.css.sac.LexicalUnit;
-
import com.vaadin.sass.parser.LexicalUnitImpl;
-import com.vaadin.sass.util.DeepCopy;
public class VariableNode extends Node implements IVariableNode {
private static final long serialVersionUID = 7003372557547748734L;
@@ -73,23 +70,26 @@ public class VariableNode extends Node implements IVariableNode {
for (final VariableNode node : variables) {
if (!equals(node)) {
- if (name.equals(node.getName())) {
- expr = (LexicalUnitImpl) DeepCopy.copy(node.getExpr());
- guarded = node.isGuarded();
- continue;
- }
-
- LexicalUnit current = expr;
- while (current != null) {
- if (current.toString().contains(node.getName())) {
- ((LexicalUnitImpl) current)
- .replaceValue(node.getExpr());
+ if (expr.toString().contains("$" + node.getName())) {
+ if (expr.getParameters() != null
+ && expr.getParameters().toString()
+ .contains("$" + node.getName())) {
+ replaceValues(expr.getParameters(), node);
}
-
- current = current.getNextLexicalUnit();
}
+ }
+ }
+ }
+ private void replaceValues(LexicalUnitImpl unit, VariableNode node) {
+ while (unit != null) {
+
+ if (unit.getLexicalUnitType() == LexicalUnitImpl.SCSS_VARIABLE
+ && unit.getValue().toString().equals(node.getName())) {
+ LexicalUnitImpl.replaceValues(unit, node.getExpr());
}
+
+ unit = unit.getNextLexicalUnit();
}
}
}
diff --git a/theme-compiler/src/com/vaadin/sass/tree/controldirective/IfNode.java b/theme-compiler/src/com/vaadin/sass/tree/controldirective/IfNode.java
index 2f31f36f0c..8de7ccf78a 100644
--- a/theme-compiler/src/com/vaadin/sass/tree/controldirective/IfNode.java
+++ b/theme-compiler/src/com/vaadin/sass/tree/controldirective/IfNode.java
@@ -16,6 +16,7 @@
package com.vaadin.sass.tree.controldirective;
import java.util.ArrayList;
+import java.util.regex.Pattern;
import com.vaadin.sass.tree.IVariableNode;
import com.vaadin.sass.tree.Node;
@@ -45,9 +46,9 @@ public class IfNode extends Node implements IfElseNode, IVariableNode {
@Override
public void replaceVariables(ArrayList<VariableNode> variables) {
for (final VariableNode node : variables) {
- if (expression.contains(node.getName())) {
- expression = expression.replaceAll(node.getName(), node
- .getExpr().toString());
+ if (expression.contains("$" + node.getName())) {
+ expression = expression.replaceAll(Pattern.quote("$"
+ + node.getName()), node.getExpr().toString());
}
}
}
diff --git a/theme-compiler/src/com/vaadin/sass/visitor/EachVisitor.java b/theme-compiler/src/com/vaadin/sass/visitor/EachVisitor.java
index be5e14a543..de58947982 100644
--- a/theme-compiler/src/com/vaadin/sass/visitor/EachVisitor.java
+++ b/theme-compiler/src/com/vaadin/sass/visitor/EachVisitor.java
@@ -66,7 +66,7 @@ public class EachVisitor implements Visitor {
last = child;
}
- rootNode.removeChild(defNode);
+ parent.removeChild(defNode);
}
}
diff --git a/theme-compiler/src/com/vaadin/sass/visitor/IfElseVisitor.java b/theme-compiler/src/com/vaadin/sass/visitor/IfElseVisitor.java
index cff00392fb..2cffb890ee 100644
--- a/theme-compiler/src/com/vaadin/sass/visitor/IfElseVisitor.java
+++ b/theme-compiler/src/com/vaadin/sass/visitor/IfElseVisitor.java
@@ -42,12 +42,21 @@ public class IfElseVisitor implements Visitor {
expression = replaceStrings(expression);
Expression e = evaluator.createExpression(expression);
try {
- Boolean result = (Boolean) e.evaluate(null);
+ Object eval = e.evaluate(null);
+
+ Boolean result = false;
+ if (eval instanceof Boolean) {
+ result = (Boolean) eval;
+ } else if (eval instanceof String) {
+ result = Boolean.valueOf((String) eval);
+ }
+
if (result) {
replaceDefNodeWithCorrectChild(defNode, parent,
child);
break;
}
+ System.out.println();
} catch (ClassCastException ex) {
throw new ParseException(
"Invalid @if/@else in scss file, not a boolean expression : "
@@ -81,13 +90,14 @@ public class IfElseVisitor implements Visitor {
}
private String replaceStrings(String expression) {
+ expression = expression.replaceAll("\"", "");
Matcher m = pattern.matcher(expression);
StringBuffer b = new StringBuffer();
while (m.find()) {
String group = m.group();
m.appendReplacement(b, "'" + group + "'");
}
-
+ m.appendTail(b);
if (b.length() != 0) {
return b.toString();
}
diff --git a/theme-compiler/src/com/vaadin/sass/visitor/VariableVisitor.java b/theme-compiler/src/com/vaadin/sass/visitor/VariableVisitor.java
index fc31ffa7b9..c8e28cd9e3 100644
--- a/theme-compiler/src/com/vaadin/sass/visitor/VariableVisitor.java
+++ b/theme-compiler/src/com/vaadin/sass/visitor/VariableVisitor.java
@@ -54,8 +54,14 @@ public class VariableVisitor implements Visitor {
this.variables.values());
for (Node node : children) {
- if (node instanceof VariableNode) {
+ if (node instanceof IVariableNode) {
+ ((IVariableNode) node)
+ .replaceVariables(new ArrayList<VariableNode>(
+ this.variables.values()));
+ }
+
+ if (node instanceof VariableNode) {
VariableNode variableNode = (VariableNode) node;
if (this.variables.containsKey(variableNode.getName())
&& variableNode.isGuarded()) {
@@ -64,25 +70,17 @@ public class VariableVisitor implements Visitor {
this.variables.put(variableNode.getName(), variableNode);
} else if (node instanceof ListModifyNode) {
- ((IVariableNode) node)
- .replaceVariables(new ArrayList<VariableNode>(
- this.variables.values()));
-
ListModifyNode modify = (ListModifyNode) node;
- String variable = modify.getNewVariable().substring(1,
- modify.getNewVariable().length());
+ String variable = modify.getNewVariable().substring(1);
- VariableNode modifiedList = modify
- .getModifiedList(this.variables.get(modify
- .getModifyingList()));
- modifiedList.setName(variable);
- this.variables.put(variable, modifiedList);
+ try {
+ VariableNode modifiedList = modify.getModifiedList();
- } else if (node instanceof IVariableNode) {
- ((IVariableNode) node)
- .replaceVariables(new ArrayList<VariableNode>(
- this.variables.values()));
+ this.variables.put(variable, modifiedList);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
replaceVariables(node, node.getChildren());
diff --git a/theme-compiler/tests/resources/basic/reindeer.css b/theme-compiler/tests/resources/basic/reindeer.css
index 22ca405982..af02070e72 100644
--- a/theme-compiler/tests/resources/basic/reindeer.css
+++ b/theme-compiler/tests/resources/basic/reindeer.css
@@ -830,6 +830,10 @@ div.v-app-loading {
width: 200px;
}
+.v-app-loginpage .v-button, .v-app-loginpage .v-button {
+ float: left;
+}
+
.v-menubar {
float: left;
white-space: nowrap;
diff --git a/theme-compiler/tests/resources/css/listmodify.css b/theme-compiler/tests/resources/css/listmodify.css
new file mode 100644
index 0000000000..b07d5d9eef
--- /dev/null
+++ b/theme-compiler/tests/resources/css/listmodify.css
@@ -0,0 +1,23 @@
+.v-button {
+ font-size: 12px;
+}
+
+.v-label {
+ font-size: 12px;
+}
+
+.v-button {
+ font-color: red;
+}
+
+.v-label {
+ font-color: red;
+}
+
+.v-textfield {
+ font-color: red;
+}
+
+.v-button {
+ background-color: black;
+} \ No newline at end of file
diff --git a/theme-compiler/tests/resources/scss/functions.scss b/theme-compiler/tests/resources/scss/functions.scss
index b9860311ea..93c1a6a64a 100644
--- a/theme-compiler/tests/resources/scss/functions.scss
+++ b/theme-compiler/tests/resources/scss/functions.scss
@@ -15,6 +15,4 @@ $app-bg-color : lighten($base-color, 6%);
color: lighten(#800, 20%);
color : $base-color;
color : $app-bg-color;
-}
-
-
+} \ No newline at end of file
diff --git a/theme-compiler/tests/resources/scss/listmodify.scss b/theme-compiler/tests/resources/scss/listmodify.scss
new file mode 100644
index 0000000000..814f3156f8
--- /dev/null
+++ b/theme-compiler/tests/resources/scss/listmodify.scss
@@ -0,0 +1,25 @@
+$list : .v-button, .v-panel, .v-label;
+
+$basics : remove($list, .v-panel);
+
+@each $component in $basics{
+ .#{$component} {
+ font-size: 12px;
+ }
+}
+
+$items : append($basics, .v-textfield);
+
+@each $component in $items{
+ .#{$component} {
+ font-color: red;
+ }
+}
+
+$contains : contains($items, .v-button);
+
+@if($contains){
+ .v-button {
+ background-color: black;
+ }
+}
diff --git a/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/ListModify.java b/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/ListModify.java
new file mode 100644
index 0000000000..4a65591f83
--- /dev/null
+++ b/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/ListModify.java
@@ -0,0 +1,17 @@
+package com.vaadin.sass.testcases.scss;
+
+import org.junit.Test;
+
+import com.vaadin.sass.AbstractTestBase;
+
+public class ListModify extends AbstractTestBase {
+
+ String scss = "/scss/listmodify.scss";
+ String css = "/css/listmodify.css";
+
+ @Test
+ public void testCompiler() throws Exception {
+ testCompiler(scss, css);
+ }
+
+}
diff --git a/uitest/src/com/vaadin/tests/applicationcontext/CloseSession.html b/uitest/src/com/vaadin/tests/applicationcontext/CloseSession.html
new file mode 100644
index 0000000000..45be36eac7
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/applicationcontext/CloseSession.html
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<!--Close, reload and assert there's a new VaadinServiceSession in the old HttpSession-->
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.applicationcontext.CloseSession?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>clickAndWait</td>
+ <td>vaadin=runcomvaadintestsapplicationcontextCloseSession::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsapplicationcontextCloseSession::PID_SLog_row_2</td>
+ <td>exact:4. Same hash as current? false</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsapplicationcontextCloseSession::PID_SLog_row_0</td>
+ <td>exact:6. Same WrappedSession id? true</td>
+</tr>
+<!--invalidate reload and assert there's a new VaadinServiceSession in a new HttpSession-->
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.applicationcontext.CloseSession?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>clickAndWait</td>
+ <td>vaadin=runcomvaadintestsapplicationcontextCloseSession::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[4]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsapplicationcontextCloseSession::PID_SLog_row_2</td>
+ <td>exact:4. Same hash as current? false</td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsapplicationcontextCloseSession::PID_SLog_row_0</td>
+ <td>exact:6. Same WrappedSession id? false</td>
+</tr>
+<!--Test closing session and redirecting to google-->
+<tr>
+ <td>clickAndWait</td>
+ <td>vaadin=runcomvaadintestsapplicationcontextCloseSession::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertLocation</td>
+ <td>https://www.google.com/</td>
+ <td>https://www.google.com/</td>
+</tr>
+<!--Open again and verify we get a Session Expired error if doing something after closing the session-->
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.applicationcontext.CloseSession?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestsapplicationcontextCloseSession::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[3]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestsapplicationcontextCloseSession::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[3]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestsapplicationcontextCloseSession::Root/VNotification[0]/HTML[0]/domChild[0]</td>
+ <td>Session Expired</td>
+</tr>
+</tbody></table>
+</body>
+</html>
diff --git a/uitest/src/com/vaadin/tests/applicationcontext/CloseSession.java b/uitest/src/com/vaadin/tests/applicationcontext/CloseSession.java
new file mode 100644
index 0000000000..0278190084
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/applicationcontext/CloseSession.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2012 Vaadin Ltd.
+ *
+ * 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 com.vaadin.tests.applicationcontext;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.server.VaadinService;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.tests.util.Log;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+
+public class CloseSession extends AbstractTestUI {
+ private static final String OLD_HASH_PARAM = "oldHash";
+ private static final String OLD_SESSION_ID_PARAM = "oldSessionId";
+
+ private final Log log = new Log(6);
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ final int sessionHash = getSession().hashCode();
+ final String sessionId = request.getWrappedSession().getId();
+
+ log.log("Current session hashcode: " + sessionHash);
+ log.log("Current WrappedSession id: " + sessionId);
+
+ // Log previous values to make it easier to see what has changed
+ String oldHashValue = request.getParameter(OLD_HASH_PARAM);
+ if (oldHashValue != null) {
+ log.log("Old session hashcode: " + oldHashValue);
+ log.log("Same hash as current? "
+ + oldHashValue.equals(Integer.toString(sessionHash)));
+ }
+
+ String oldSessionId = request.getParameter(OLD_SESSION_ID_PARAM);
+ if (oldSessionId != null) {
+ log.log("Old WrappedSession id: " + oldSessionId);
+ log.log("Same WrappedSession id? " + oldSessionId.equals(sessionId));
+ }
+
+ // Add parameters to help see what has changed
+ final String reopenUrl = getPage().getLocation().getPath() + "?"
+ + OLD_HASH_PARAM + "=" + sessionHash + "&"
+ + OLD_SESSION_ID_PARAM + "=" + sessionId;
+
+ addComponent(log);
+ addComponent(new Button(
+ "Close VaadinServiceSession and redirect to Google",
+ new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ getPage().setLocation("https://www.google.com");
+ getSession().close();
+ }
+ }));
+ addComponent(new Button("Close VaadinServiceSession and reopen page",
+ new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ getPage().setLocation(reopenUrl);
+ getSession().close();
+ }
+ }));
+ addComponent(new Button("Just close session",
+ new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ getSession().close();
+ }
+ }));
+ addComponent(new Button("Invalidate HttpSession and reopen page",
+ new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ getPage().setLocation(reopenUrl);
+ VaadinService.getCurrentRequest().getWrappedSession()
+ .invalidate();
+ }
+ }));
+ }
+
+ @Override
+ protected String getTestDescription() {
+ return "Test for closing the session and redirecting the user";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return Integer.valueOf(9859);
+ }
+
+}
diff --git a/uitest/src/com/vaadin/tests/components/datefield/DateFieldPrimaryStyleNames.html b/uitest/src/com/vaadin/tests/components/datefield/DateFieldPrimaryStyleNames.html
new file mode 100644
index 0000000000..1b3cb8dcab
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/datefield/DateFieldPrimaryStyleNames.html
@@ -0,0 +1,247 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="http://localhost:8888/" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.datefield.DateFieldPrimaryStyleNames?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VDateFieldCalendar[0]</td>
+ <td>my-inline-datefield</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VDateFieldCalendar[0]</td>
+ <td>my-inline-datefield-day</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VDateFieldCalendar[0]/VCalendarPanel[0]/domChild[1]/domChild[0]</td>
+ <td>my-inline-datefield-calendarpanel-header</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VDateFieldCalendar[0]/VCalendarPanel[0]/domChild[1]/domChild[1]/domChild[0]</td>
+ <td>my-inline-datefield-calendarpanel-body</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VPopupCalendar[0]</td>
+ <td>my-datefield</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VPopupCalendar[0]</td>
+ <td>my-datefield-popupcalendar</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VPopupCalendar[0]</td>
+ <td>my-datefield-day</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VPopupCalendar[0]/domChild[0]</td>
+ <td>my-datefield-textfield</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VPopupCalendar[0]/domChild[1]</td>
+ <td>my-datefield-button</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VPopupCalendar[0]#popupButton</td>
+ <td>13,0</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//body/div[last()]</td>
+ <td>my-datefield-popup</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//body/div[last()]</td>
+ <td>my-datefield-day</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']</td>
+ <td>my-datefield-calendarpanel</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']/tbody/tr[1]</td>
+ <td>my-datefield-calendarpanel-header</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']/tbody/tr[1]/td[1]</td>
+ <td>my-datefield-calendarpanel-prevyear</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']/tbody/tr[1]/td[2]</td>
+ <td>my-datefield-calendarpanel-prevmonth</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']/tbody/tr[1]/td[3]</td>
+ <td>my-datefield-calendarpanel-month</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']/tbody/tr[1]/td[4]</td>
+ <td>my-datefield-calendarpanel-nextmonth</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']/tbody/tr[1]/td[5]</td>
+ <td>my-datefield-calendarpanel-nextyear</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']/tbody/tr[2]/td[1]</td>
+ <td>my-datefield-calendarpanel-body</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']/tbody/tr[2]/td[1]/table/tbody/tr[1]</td>
+ <td>my-datefield-calendarpanel-weekdays</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VPopupCalendar[0]#popupButton</td>
+ <td>13,0</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VDateFieldCalendar[0]</td>
+ <td>my-second-inline-datefield</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VDateFieldCalendar[0]</td>
+ <td>my-second-inline-datefield-day</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VDateFieldCalendar[0]/VCalendarPanel[0]/domChild[1]/domChild[0]</td>
+ <td>my-second-inline-datefield-calendarpanel-header</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VDateFieldCalendar[0]/VCalendarPanel[0]/domChild[1]/domChild[1]/domChild[0]</td>
+ <td>my-second-inline-datefield-calendarpanel-body</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VPopupCalendar[0]</td>
+ <td>my-second-datefield</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VPopupCalendar[0]</td>
+ <td>my-second-datefield-popupcalendar</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VPopupCalendar[0]</td>
+ <td>my-second-datefield-day</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VPopupCalendar[0]/domChild[0]</td>
+ <td>my-second-datefield-textfield</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VPopupCalendar[0]/domChild[1]</td>
+ <td>my-second-datefield-button</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VPopupCalendar[0]#popupButton</td>
+ <td>13,0</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//body/div[last()]</td>
+ <td>my-second-datefield-popup</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//body/div[last()]</td>
+ <td>my-second-datefield-day</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']</td>
+ <td>my-second-datefield-calendarpanel</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']/tbody/tr[1]</td>
+ <td>my-second-datefield-calendarpanel-header</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']/tbody/tr[1]/td[1]</td>
+ <td>my-second-datefield-calendarpanel-prevyear</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']/tbody/tr[1]/td[2]</td>
+ <td>my-second-datefield-calendarpanel-prevmonth</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']/tbody/tr[1]/td[3]</td>
+ <td>my-second-datefield-calendarpanel-month</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']/tbody/tr[1]/td[4]</td>
+ <td>my-second-datefield-calendarpanel-nextmonth</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']/tbody/tr[1]/td[5]</td>
+ <td>my-second-datefield-calendarpanel-nextyear</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']/tbody/tr[2]/td[1]</td>
+ <td>my-second-datefield-calendarpanel-body</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>//*[@id='PID_VAADIN_POPUPCAL']/tbody/tr[2]/td[1]/table/tbody/tr[1]</td>
+ <td>my-second-datefield-calendarpanel-weekdays</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldPrimaryStyleNames::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VPopupCalendar[0]#popupButton</td>
+ <td>13,0</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/uitest/src/com/vaadin/tests/components/datefield/DateFieldPrimaryStyleNames.java b/uitest/src/com/vaadin/tests/components/datefield/DateFieldPrimaryStyleNames.java
new file mode 100644
index 0000000000..ca9492b111
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/datefield/DateFieldPrimaryStyleNames.java
@@ -0,0 +1,42 @@
+package com.vaadin.tests.components.datefield;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.DateField;
+import com.vaadin.ui.InlineDateField;
+
+public class DateFieldPrimaryStyleNames extends TestBase {
+
+ @Override
+ protected void setup() {
+ final DateField df = new DateField();
+ df.setPrimaryStyleName("my-datefield");
+ addComponent(df);
+
+ final InlineDateField idf = new InlineDateField();
+ idf.setPrimaryStyleName("my-inline-datefield");
+ addComponent(idf);
+
+ addComponent(new Button("Set primary stylename",
+ new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ df.setPrimaryStyleName("my-second-datefield");
+ idf.setPrimaryStyleName("my-second-inline-datefield");
+ }
+ }));
+
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Datefield should work with primary stylenames both initially and dynamically";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 9903;
+ }
+
+}
diff --git a/uitest/src/com/vaadin/tests/components/form/FormPrimaryStyleName.html b/uitest/src/com/vaadin/tests/components/form/FormPrimaryStyleName.html
new file mode 100644
index 0000000000..a4b738a36d
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/form/FormPrimaryStyleName.html
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="http://localhost:8888/" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.form.FormPrimaryStyleName?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormPrimaryStyleName::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VForm[0]</td>
+ <td>v-form</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormPrimaryStyleName::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VForm[0]</td>
+ <td>my-form</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormPrimaryStyleName::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VForm[0]/domChild[0]/domChild[1]</td>
+ <td>my-form-description</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormPrimaryStyleName::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VForm[0]/domChild[0]/domChild[2]</td>
+ <td>my-form-content</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormPrimaryStyleName::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VForm[0]/domChild[0]/domChild[3]</td>
+ <td>my-form-errormessage</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormPrimaryStyleName::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VForm[0]/domChild[0]/domChild[4]</td>
+ <td>my-form-footer</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormPrimaryStyleName::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VButton[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertNotCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormPrimaryStyleName::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VForm[0]</td>
+ <td>my-form</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormPrimaryStyleName::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VForm[0]</td>
+ <td>my-second-form</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormPrimaryStyleName::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VForm[0]/domChild[0]/domChild[1]</td>
+ <td>my-second-form-description</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormPrimaryStyleName::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VForm[0]/domChild[0]/domChild[2]</td>
+ <td>my-second-form-content</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormPrimaryStyleName::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VForm[0]/domChild[0]/domChild[3]</td>
+ <td>my-second-form-errormessage</td>
+</tr>
+<tr>
+ <td>assertCSSClass</td>
+ <td>vaadin=runcomvaadintestscomponentsformFormPrimaryStyleName::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[0]/VForm[0]/domChild[0]/domChild[4]</td>
+ <td>my-second-form-footer</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/uitest/src/com/vaadin/tests/components/form/FormPrimaryStyleName.java b/uitest/src/com/vaadin/tests/components/form/FormPrimaryStyleName.java
new file mode 100644
index 0000000000..241c39d449
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/form/FormPrimaryStyleName.java
@@ -0,0 +1,47 @@
+package com.vaadin.tests.components.form;
+
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Form;
+import com.vaadin.ui.HorizontalLayout;
+import com.vaadin.ui.Label;
+import com.vaadin.ui.TextField;
+
+public class FormPrimaryStyleName extends TestBase {
+
+ @Override
+ protected void setup() {
+ final Form form = new Form();
+ form.addField("aaa", new TextField());
+ form.setDescription("This is a form description");
+ form.setCaption("This is a form caption");
+ form.setPrimaryStyleName("my-form");
+
+ HorizontalLayout formFooter = new HorizontalLayout();
+ formFooter.addComponent(new Label("Form footer"));
+ form.setFooter(formFooter);
+
+ addComponent(form);
+
+ addComponent(new Button("Set primary stylename",
+ new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ form.setPrimaryStyleName("my-second-form");
+ }
+ }));
+
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Form should handle primary stylenames both initially and dynamically";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 9904;
+ }
+
+}
diff --git a/uitest/src/com/vaadin/tests/components/tree/TreeIconUpdate.html b/uitest/src/com/vaadin/tests/components/tree/TreeIconUpdate.html
new file mode 100644
index 0000000000..d16d8fd79d
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/tree/TreeIconUpdate.html
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<link rel="selenium.base" href="http://localhost:9999/" />
+<title>New Test</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">New Test</td></tr>
+</thead><tbody>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.components.tree.TreeIconUpdate?restartApplication</td>
+ <td></td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstreeTreeIconUpdate::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>foo-with-different-icon</td>
+</tr>
+<tr>
+ <td>click</td>
+ <td>vaadin=runcomvaadintestscomponentstreeTreeIconUpdate::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstreeTreeIconUpdate::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VTree[0]#n[0]</td>
+ <td>foo</td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
diff --git a/uitest/src/com/vaadin/tests/components/tree/TreeIconUpdate.java b/uitest/src/com/vaadin/tests/components/tree/TreeIconUpdate.java
new file mode 100644
index 0000000000..8e0eac801d
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/tree/TreeIconUpdate.java
@@ -0,0 +1,71 @@
+package com.vaadin.tests.components.tree;
+
+import com.vaadin.data.Item;
+import com.vaadin.data.util.HierarchicalContainer;
+import com.vaadin.server.Resource;
+import com.vaadin.server.ThemeResource;
+import com.vaadin.tests.components.TestBase;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Button.ClickListener;
+import com.vaadin.ui.Tree;
+
+public class TreeIconUpdate extends TestBase {
+
+ private static final Resource ICON1 = new ThemeResource(
+ "../runo/icons/16/folder.png");
+ private static final Resource ICON2 = new ThemeResource(
+ "../runo/icons/16/ok.png");
+
+ @Override
+ protected void setup() {
+ HierarchicalContainer container = new HierarchicalContainer();
+ container.addContainerProperty("name", String.class, null);
+ container.addContainerProperty("icon", Resource.class, null);
+ final Tree tree = new Tree();
+ tree.setContainerDataSource(container);
+ tree.setItemIconPropertyId("icon");
+ tree.setItemCaptionPropertyId("name");
+
+ for (int i = 0; i < 20; i++) {
+ Item bar = container.addItem("bar" + i);
+ bar.getItemProperty("name").setValue("Bar" + i);
+ bar.getItemProperty("icon").setValue(ICON1);
+
+ if (i > 3) {
+ container.setParent("bar" + i, "bar" + (i - 1));
+ }
+ }
+
+ addComponent(tree);
+
+ Button button = new Button("Change icon", new ClickListener() {
+
+ public void buttonClick(ClickEvent event) {
+ tree.getItem("bar0").getItemProperty("icon").setValue(ICON2);
+ }
+ });
+
+ addComponent(button);
+ button = new Button("Change caption", new ClickListener() {
+
+ public void buttonClick(ClickEvent event) {
+ tree.getItem("bar0").getItemProperty("name").setValue("foo");
+ }
+ });
+
+ addComponent(button);
+
+ }
+
+ @Override
+ protected String getDescription() {
+ return "Click the button to change the icon. The tree should be updated";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 9663;
+ }
+
+}
diff --git a/uitest/src/com/vaadin/tests/requesthandlers/AppResource404.html b/uitest/src/com/vaadin/tests/requesthandlers/AppResource404.html
index da050b3aaa..16f3db6a1a 100644
--- a/uitest/src/com/vaadin/tests/requesthandlers/AppResource404.html
+++ b/uitest/src/com/vaadin/tests/requesthandlers/AppResource404.html
@@ -38,7 +38,7 @@
</tr>
<tr>
<td>assertTextPresent</td>
- <td>RequestURI=/run/com.vaadin.tests.requesthandlers.AppResource404/APP/12341234/</td>
+ <td>/APP/connector/0/4/asdfasdf can not be found</td>
<td></td>
</tr>
<tr>
@@ -47,18 +47,28 @@
<td></td>
</tr>
<tr>
- <td>click</td>
- <td>vaadin=runcomvaadintestsrequesthandlersAppResource404::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VButton[0]/domChild[0]/domChild[0]</td>
+ <td>mouseClickAndWait</td>
+ <td>vaadin=runcomvaadintestsrequesthandlersAppResource404::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[2]/VLink[0]/domChild[0]/domChild[0]</td>
+ <td>97,5</td>
+</tr>
+<tr>
+ <td>assertTextPresent</td>
+ <td>/APP can not be found</td>
+ <td></td>
+</tr>
+<tr>
+ <td>open</td>
+ <td>/run/com.vaadin.tests.requesthandlers.AppResource404</td>
<td></td>
</tr>
<tr>
<td>mouseClickAndWait</td>
- <td>vaadin=runcomvaadintestsrequesthandlersAppResource404::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLink[0]/domChild[0]/domChild[0]</td>
- <td>47,9</td>
+ <td>vaadin=runcomvaadintestsrequesthandlersAppResource404::/VVerticalLayout[0]/VOrderedLayout$Slot[1]/VVerticalLayout[0]/VOrderedLayout$Slot[3]/VLink[0]/domChild[0]/domChild[0]</td>
+ <td>99,7</td>
</tr>
<tr>
- <td>assertTextPresent</td>
- <td>RequestURI=/run/com.vaadin.tests.requesthandlers.AppResource404/APP/1//com/vaadin/tests/integration/se.gif</td>
+ <td>assertTextNotPresent</td>
+ <td>can not be found</td>
<td></td>
</tr>
</tbody></table>
diff --git a/uitest/src/com/vaadin/tests/requesthandlers/AppResource404.java b/uitest/src/com/vaadin/tests/requesthandlers/AppResource404.java
index ebccba74fb..dfd664c9cf 100644
--- a/uitest/src/com/vaadin/tests/requesthandlers/AppResource404.java
+++ b/uitest/src/com/vaadin/tests/requesthandlers/AppResource404.java
@@ -1,6 +1,9 @@
package com.vaadin.tests.requesthandlers;
+import javax.servlet.http.HttpServletRequest;
+
import com.vaadin.server.ExternalResource;
+import com.vaadin.server.VaadinServletService;
import com.vaadin.tests.components.TestBase;
import com.vaadin.tests.integration.FlagSeResource;
import com.vaadin.ui.Link;
@@ -13,9 +16,17 @@ public class AppResource404 extends TestBase {
final FlagSeResource resource = new FlagSeResource();
resource.setCacheTime(0);
+ HttpServletRequest request = VaadinServletService
+ .getCurrentServletRequest();
+ String baseUrl = request.getContextPath() + request.getServletPath();
+
addComponent(new Link("Existing resource", resource));
addComponent(new Link("Non-existing resource", new ExternalResource(
- getURL().toString() + "APP/12341234/")));
+ baseUrl + "/APP/connector/0/4/asdfasdf")));
+ addComponent(new Link("/APP url that should give 404",
+ new ExternalResource(baseUrl + "/APP")));
+ addComponent(new Link("/APPLE url that should go to UI providers",
+ new ExternalResource(baseUrl + "/APPLE")));
}
@Override