diff options
69 files changed, 4212 insertions, 3959 deletions
diff --git a/WebContent/VAADIN/themes/base/common/common.scss b/WebContent/VAADIN/themes/base/common/common.scss index fd4625606a..e7fdd3fe84 100644 --- a/WebContent/VAADIN/themes/base/common/common.scss +++ b/WebContent/VAADIN/themes/base/common/common.scss @@ -225,7 +225,12 @@ body &.v-app-loading { /* Enable kinetic scrolling on Mobile Safari 6 */ .v-ios.v-sa6 & .v-scrollable { - -webkit-overflow-scrolling: touch; + -webkit-overflow-scrolling: touch; +} + +&.v-overlay-container { + width: 0; + height: 0; } }
\ No newline at end of file diff --git a/WebContent/VAADIN/themes/reindeer/tabsheet/tabsheet-minimal-style.scss b/WebContent/VAADIN/themes/reindeer/tabsheet/tabsheet-minimal-style.scss index 989e1d3f5a..fe17d90e26 100644 --- a/WebContent/VAADIN/themes/reindeer/tabsheet/tabsheet-minimal-style.scss +++ b/WebContent/VAADIN/themes/reindeer/tabsheet/tabsheet-minimal-style.scss @@ -105,9 +105,15 @@ -moz-border-radius: 7px; } -.v-ie9 & .#{$primaryStyleName}-tabs-minimal .#{$primaryStyleName}-caption-close:only-child, -.v-ie9 & .#{$primaryStyleName}-tabs-minimal .v-captiontext:first-child + .#{$primaryStyleName}-caption-close { - margin-top: -14px; +.v-ie9 & .#{$primaryStyleName}-tabs-minimal .#{$primaryStyleName}-tabitem .#{$primaryStyleName}-caption-close { + &, &:hover, &:active { + + /* IE9 suffers from rounding subpixel values errors when measuring the tabs which makes the close button wrap. */ + margin-left: 2.5px; + + /* The close button is a pixel too high in IE9, adjust for that */ + margin-top: 1px; + } } .#{$primaryStyleName}-tabs-minimal .#{$primaryStyleName}-caption-close:hover, diff --git a/client/src/com/vaadin/Vaadin.gwt.xml b/client/src/com/vaadin/Vaadin.gwt.xml index f7d1cf8410..dcc5b0d294 100644 --- a/client/src/com/vaadin/Vaadin.gwt.xml +++ b/client/src/com/vaadin/Vaadin.gwt.xml @@ -38,6 +38,15 @@ <when-type-assignable class="com.vaadin.client.metadata.ConnectorBundleLoader" /> </generate-with> + + <!-- Set vaadin.profiler to true to include profiling support in the module --> + <define-property name="vaadin.profiler" values="true,false" /> + <set-property name="vaadin.profiler" value="false" /> + + <replace-with class="com.vaadin.client.Profiler.EnabledProfiler"> + <when-type-is class="com.vaadin.client.Profiler" /> + <when-property-is name="vaadin.profiler" value="true" /> + </replace-with> <!-- Use the new cross site linker to get a nocache.js without document.write --> <add-linker name="xsiframe" /> diff --git a/client/src/com/vaadin/client/ApplicationConnection.java b/client/src/com/vaadin/client/ApplicationConnection.java index 0171d541ea..44c7397655 100644 --- a/client/src/com/vaadin/client/ApplicationConnection.java +++ b/client/src/com/vaadin/client/ApplicationConnection.java @@ -1311,6 +1311,8 @@ public class ApplicationConnection { return; } + Profiler.reset(); + VConsole.log("Handling message from server"); eventBus.fireEvent(new ResponseHandlingStartedEvent(this)); @@ -1384,8 +1386,7 @@ public class ApplicationConnection { handleUIDLDuration.logDuration(" * Loading widgets completed", 10); - MultiStepDuration updateDuration = new MultiStepDuration(); - + Profiler.enter("Handling locales"); if (json.containsKey("locales")) { VConsole.log(" * Handling locales"); // Store locale data @@ -1393,9 +1394,9 @@ public class ApplicationConnection { .getJSValueMapArray("locales"); LocaleService.addLocales(valueMapArray); } + Profiler.leave("Handling locales"); - updateDuration.logDuration(" * Handling locales completed", 10); - + Profiler.enter("Handling meta information"); boolean repaintAll = false; ValueMap meta = null; if (json.containsKey("meta")) { @@ -1422,9 +1423,7 @@ public class ApplicationConnection { .getInt("interval"); } } - - updateDuration.logDuration( - " * Handling meta information completed", 10); + Profiler.leave("Handling meta information"); if (redirectTimer != null) { redirectTimer.schedule(1000 * sessionExpirationInterval); @@ -1432,34 +1431,21 @@ public class ApplicationConnection { componentCaptionSizeChanges.clear(); - int startProcessing = updateDuration.elapsedMillis(); + double processUidlStart = Duration.currentTimeMillis(); // Ensure that all connectors that we are about to update exist Set<ServerConnector> createdConnectors = createConnectorsIfNeeded(json); - updateDuration.logDuration(" * Creating connectors completed", - 10); - // Update states, do not fire events Collection<StateChangeEvent> pendingStateChangeEvents = updateConnectorState( json, createdConnectors); - updateDuration.logDuration( - " * Update of connector states completed", 10); - // Update hierarchy, do not fire events ConnectorHierarchyUpdateResult connectorHierarchyUpdateResult = updateConnectorHierarchy(json); - updateDuration.logDuration( - " * Update of connector hierarchy completed", 10); - // Fire hierarchy change events sendHierarchyChangeEvents(connectorHierarchyUpdateResult.events); - updateDuration.logDuration( - " * Hierarchy state change event processing completed", - 10); - updateCaptions(pendingStateChangeEvents, connectorHierarchyUpdateResult.parentChanged); @@ -1468,43 +1454,25 @@ public class ApplicationConnection { // Fire state change events. sendStateChangeEvents(pendingStateChangeEvents); - updateDuration.logDuration( - " * State change event processing completed", 10); - // Update of legacy (UIDL) style connectors updateVaadin6StyleConnectors(json); - updateDuration - .logDuration( - " * Vaadin 6 style connector updates (updateFromUidl) completed", - 10); - // Handle any RPC invocations done on the server side handleRpcInvocations(json); - updateDuration.logDuration( - " * Processing of RPC invocations completed", 10); - if (json.containsKey("dd")) { // response contains data for drag and drop service VDragAndDropManager.get().handleServerResponse( json.getValueMap("dd")); } - updateDuration - .logDuration( - " * Processing of drag and drop server response completed", - 10); - unregisterRemovedConnectors(); - updateDuration.logDuration( - " * Unregistering of removed components completed", 10); - VConsole.log("handleUIDLMessage: " - + (updateDuration.elapsedMillis() - startProcessing) + + (Duration.currentTimeMillis() - processUidlStart) + " ms"); + Profiler.enter("Layout processing"); try { LayoutManager layoutManager = getLayoutManager(); layoutManager.setEverythingNeedsMeasure(); @@ -1512,21 +1480,17 @@ public class ApplicationConnection { } catch (final Throwable e) { VConsole.error(e); } - - updateDuration - .logDuration(" * Layout processing completed", 10); + Profiler.leave("Layout processing"); if (ApplicationConfiguration.isDebugMode()) { + Profiler.enter("Dumping state changes to the console"); VConsole.log(" * Dumping state changes to the console"); VConsole.dirUIDL(json, ApplicationConnection.this); - - updateDuration - .logDuration( - " * Dumping state changes to the console completed", - 10); + Profiler.leave("Dumping state changes to the console"); } if (meta != null) { + Profiler.enter("Error handling"); if (meta.containsKey("appError")) { ValueMap error = meta.getValueMap("appError"); @@ -1547,10 +1511,9 @@ public class ApplicationConnection { validatingLayouts = false; } + Profiler.leave("Error handling"); } - updateDuration.logDuration(" * Error handling completed", 10); - // TODO build profiling for widget impl loading time lastProcessingTime = (int) ((new Date().getTime()) - start @@ -1564,11 +1527,18 @@ public class ApplicationConnection { endRequest(); + if (Profiler.isEnabled()) { + Profiler.logTimings(); + Profiler.reset(); + } + } private void updateCaptions( Collection<StateChangeEvent> pendingStateChangeEvents, Collection<ServerConnector> parentChanged) { + Profiler.enter("updateCaptions"); + /* * Find all components that might need a caption update based on * pending state and hierarchy changes @@ -1589,15 +1559,21 @@ public class ApplicationConnection { .delegateCaptionHandling()) { ServerConnector parent = child.getParent(); if (parent instanceof HasComponentsConnector) { + Profiler.enter("HasComponentsConnector.updateCaption"); ((HasComponentsConnector) parent) .updateCaption((ComponentConnector) child); + Profiler.leave("HasComponentsConnector.updateCaption"); } } } + + Profiler.leave("updateCaptions"); } private void delegateToWidget( Collection<StateChangeEvent> pendingStateChangeEvents) { + Profiler.enter("@DelegateToWidget"); + VConsole.log(" * Running @DelegateToWidget"); for (StateChangeEvent sce : pendingStateChangeEvents) { @@ -1618,12 +1594,16 @@ public class ApplicationConnection { String method = property .getDelegateToWidgetMethodName(); if (method != null) { + Profiler.enter("doDelegateToWidget"); doDelegateToWidget(component, property, method); + Profiler.leave("doDelegateToWidget"); } } } } + + Profiler.leave("@DelegateToWidget"); } private void doDelegateToWidget(ComponentConnector component, @@ -1661,6 +1641,7 @@ public class ApplicationConnection { */ private void sendStateChangeEvents( Collection<StateChangeEvent> pendingStateChangeEvents) { + Profiler.enter("sendStateChangeEvents"); VConsole.log(" * Sending state change events"); for (StateChangeEvent sce : pendingStateChangeEvents) { @@ -1671,9 +1652,12 @@ public class ApplicationConnection { } } + Profiler.leave("sendStateChangeEvents"); } private void unregisterRemovedConnectors() { + Profiler.enter("unregisterRemovedConnectors"); + int unregistered = 0; JsArrayObject<ServerConnector> currentConnectors = connectorMap .getConnectorsAsJsArray(); @@ -1703,6 +1687,7 @@ public class ApplicationConnection { } VConsole.log("* Unregistered " + unregistered + " connectors"); + Profiler.leave("unregisterRemovedConnectors"); } private Set<ServerConnector> createConnectorsIfNeeded(ValueMap json) { @@ -1712,6 +1697,8 @@ public class ApplicationConnection { return Collections.emptySet(); } + Profiler.enter("Creating connectors"); + Set<ServerConnector> createdConnectors = new HashSet<ServerConnector>(); ValueMap types = json.getValueMap("types"); @@ -1733,7 +1720,10 @@ public class ApplicationConnection { // Connector does not exist so we must create it if (connectorClass != UIConnector.class) { // create, initialize and register the paintable + Profiler.enter("ApplicationConnection.getConnector"); connector = getConnector(connectorId, connectorType); + Profiler.leave("ApplicationConnection.getConnector"); + createdConnectors.add(connector); } else { // First UIConnector update. Before this the @@ -1750,10 +1740,15 @@ public class ApplicationConnection { VConsole.error(e); } } + + Profiler.leave("Creating connectors"); + return createdConnectors; } private void updateVaadin6StyleConnectors(ValueMap json) { + Profiler.enter("updateVaadin6StyleConnectors"); + JsArray<ValueMap> changes = json.getJSValueMapArray("changes"); int length = changes.length(); @@ -1768,8 +1763,19 @@ public class ApplicationConnection { final ComponentConnector legacyConnector = (ComponentConnector) connectorMap .getConnector(connectorId); if (legacyConnector instanceof Paintable) { + String key = null; + if (Profiler.isEnabled()) { + key = "updateFromUIDL for " + + Util.getSimpleName(legacyConnector); + Profiler.enter(key); + } + ((Paintable) legacyConnector).updateFromUIDL(uidl, ApplicationConnection.this); + + if (Profiler.isEnabled()) { + Profiler.leave(key); + } } else if (legacyConnector == null) { VConsole.error("Received update for " + uidl.getTag() @@ -1785,6 +1791,8 @@ public class ApplicationConnection { VConsole.error(e); } } + + Profiler.leave("updateVaadin6StyleConnectors"); } private void sendHierarchyChangeEvents( @@ -1792,6 +1800,7 @@ public class ApplicationConnection { if (pendingHierarchyChangeEvents.isEmpty()) { return; } + Profiler.enter("sendHierarchyChangeEvents"); VConsole.log(" * Sending hierarchy change events"); for (ConnectorHierarchyChangeEvent event : pendingHierarchyChangeEvents) { @@ -1803,6 +1812,7 @@ public class ApplicationConnection { } } + Profiler.leave("sendHierarchyChangeEvents"); } private void logHierarchyChange(ConnectorHierarchyChangeEvent event) { @@ -1835,6 +1845,9 @@ public class ApplicationConnection { if (!json.containsKey("state")) { return events; } + + Profiler.enter("updateConnectorState"); + HashSet<ServerConnector> remainingNewConnectors = new HashSet<ServerConnector>( newConnectors); @@ -1847,6 +1860,11 @@ public class ApplicationConnection { ServerConnector connector = connectorMap .getConnector(connectorId); if (null != connector) { + Profiler.enter("updateConnectorState inner loop"); + if (Profiler.isEnabled()) { + Profiler.enter("Decode connector state " + + Util.getSimpleName(connector)); + } JSONObject stateJson = new JSONObject( states.getJavaScriptObject(connectorId)); @@ -1859,10 +1877,19 @@ public class ApplicationConnection { } SharedState state = connector.getState(); + + Profiler.enter("updateConnectorState decodeValue"); JsonDecoder.decodeValue(new Type(state.getClass() .getName(), null), stateJson, state, ApplicationConnection.this); + Profiler.leave("updateConnectorState decodeValue"); + + if (Profiler.isEnabled()) { + Profiler.leave("Decode connector state " + + Util.getSimpleName(connector)); + } + Profiler.enter("updateConnectorState create event"); FastStringSet changedProperties = FastStringSet .create(); addJsonFields(stateJson, changedProperties, ""); @@ -1880,6 +1907,9 @@ public class ApplicationConnection { connector, changedProperties); events.add(event); + Profiler.leave("updateConnectorState create event"); + + Profiler.leave("updateConnectorState inner loop"); } } catch (final Throwable e) { VConsole.error(e); @@ -1899,6 +1929,8 @@ public class ApplicationConnection { } + Profiler.leave("updateConnectorState"); + return events; } @@ -1906,9 +1938,11 @@ public class ApplicationConnection { FastStringSet fields; fields = allStateFieldsCache.get(type.getBaseTypeName()); if (fields == null) { + Profiler.enter("getAllStateFields create"); fields = FastStringSet.create(); addAllStateFields(type, fields, ""); allStateFieldsCache.put(type.getBaseTypeName(), fields); + Profiler.leave("getAllStateFields create"); } return fields; } @@ -1994,6 +2028,8 @@ public class ApplicationConnection { return result; } + Profiler.enter("updateConnectorHierarchy"); + FastStringSet maybeDetached = FastStringSet.create(); ValueMap hierarchies = json.getValueMap("hierarchy"); @@ -2113,6 +2149,8 @@ public class ApplicationConnection { recursivelyDetach(removed, result.events); } + Profiler.leave("updateConnectorHierarchy"); + return result; } @@ -2200,6 +2238,8 @@ public class ApplicationConnection { private void handleRpcInvocations(ValueMap json) { if (json.containsKey("rpc")) { + Profiler.enter("handleRpcInvocations"); + VConsole.log(" * Performing server to client RPC calls"); JSONArray rpcCalls = new JSONArray( @@ -2215,8 +2255,9 @@ public class ApplicationConnection { VConsole.error(e); } } - } + Profiler.leave("handleRpcInvocations"); + } } }; @@ -2864,12 +2905,15 @@ public class ApplicationConnection { */ private ServerConnector createAndRegisterConnector(String connectorId, int connectorType) { + Profiler.enter("ApplicationConnection.createAndRegisterConnector"); + // Create and register a new connector with the given type ServerConnector p = widgetSet.createConnector(connectorType, configuration); connectorMap.registerConnector(connectorId, p); p.doInit(connectorId, this); + Profiler.leave("ApplicationConnection.createAndRegisterConnector"); return p; } diff --git a/client/src/com/vaadin/client/ConnectorMap.java b/client/src/com/vaadin/client/ConnectorMap.java index 50df65397f..5f6053dd32 100644 --- a/client/src/com/vaadin/client/ConnectorMap.java +++ b/client/src/com/vaadin/client/ConnectorMap.java @@ -120,13 +120,17 @@ public class ConnectorMap { } public void registerConnector(String id, ServerConnector connector) { + Profiler.enter("ConnectorMap.registerConnector"); ComponentDetail componentDetail = GWT.create(ComponentDetail.class); idToComponentDetail.put(id, componentDetail); componentDetail.setConnector(connector); if (connector instanceof ComponentConnector) { ComponentConnector pw = (ComponentConnector) connector; + Profiler.enter("ConnectorMap.setConnectorId"); setConnectorId(pw.getWidget().getElement(), id); + Profiler.leave("ConnectorMap.setConnectorId"); } + Profiler.leave("ConnectorMap.registerConnector"); } private static native void setConnectorId(Element el, String id) diff --git a/client/src/com/vaadin/client/LayoutManager.java b/client/src/com/vaadin/client/LayoutManager.java index d3366e86f3..14b155c92f 100644 --- a/client/src/com/vaadin/client/LayoutManager.java +++ b/client/src/com/vaadin/client/LayoutManager.java @@ -259,6 +259,7 @@ public class LayoutManager { private void doLayout() { VConsole.log("Starting layout phase"); + Profiler.enter("LayoutManager phase init"); FastStringMap<Integer> layoutCounts = FastStringMap.create(); @@ -293,27 +294,30 @@ public class LayoutManager { measureNonConnectors(); - VConsole.log("Layout init in " + totalDuration.elapsedMillis() + " ms"); + Profiler.leave("LayoutManager phase init"); while (true) { - Duration passDuration = new Duration(); + Profiler.enter("Layout pass"); passes++; performBrowserLayoutHacks(); + Profiler.enter("Layout measure connectors"); int measuredConnectorCount = measureConnectors( currentDependencyTree, everythingNeedsMeasure); + Profiler.leave("Layout measure connectors"); + everythingNeedsMeasure = false; if (measuredConnectorCount == 0) { VConsole.log("No more changes in pass " + passes); + Profiler.leave("Layout pass"); break; } - int measureTime = passDuration.elapsedMillis(); - VConsole.log(" Measured " + measuredConnectorCount - + " elements in " + measureTime + " ms"); - + int firedListeners = 0; if (!listenersToFire.isEmpty()) { + firedListeners = listenersToFire.size(); + Profiler.enter("Layout fire resize events"); for (Element element : listenersToFire) { Collection<ElementResizeListener> listeners = elementResizeListeners .get(element); @@ -325,23 +329,33 @@ public class LayoutManager { element); for (ElementResizeListener listener : array) { try { + String key = null; + if (Profiler.isEnabled()) { + key = "ElementReizeListener.onElementReize for " + + Util.getSimpleName(listener); + Profiler.enter(key); + } + listener.onElementResize(event); + if (Profiler.isEnabled()) { + Profiler.leave(key); + } } catch (RuntimeException e) { VConsole.error(e); } } } } - int measureListenerTime = passDuration.elapsedMillis(); - VConsole.log(" Fired resize listeners for " - + listenersToFire.size() + " elements in " - + (measureListenerTime - measureTime) + " ms"); - measureTime = measuredConnectorCount; listenersToFire.clear(); + + Profiler.leave("Layout fire resize events"); } + Profiler.enter("LayoutManager handle ManagedLayout"); + FastStringSet updatedSet = FastStringSet.create(); + int layoutCount = 0; while (currentDependencyTree.hasHorizontalConnectorToLayout() || currentDependencyTree.hasVerticaConnectorToLayout()) { @@ -356,7 +370,19 @@ public class LayoutManager { .markAsHorizontallyLayouted(layout); DirectionalManagedLayout cl = (DirectionalManagedLayout) layout; try { + String key = null; + if (Profiler.isEnabled()) { + key = "layoutHorizontally() for " + + Util.getSimpleName(cl); + Profiler.enter(key); + } + cl.layoutHorizontally(); + layoutCount++; + + if (Profiler.isEnabled()) { + Profiler.leave(key); + } } catch (RuntimeException e) { VConsole.error(e); } @@ -367,7 +393,18 @@ public class LayoutManager { currentDependencyTree.markAsVerticallyLayouted(layout); SimpleManagedLayout rr = (SimpleManagedLayout) layout; try { + String key = null; + if (Profiler.isEnabled()) { + key = "layout() for " + Util.getSimpleName(rr); + Profiler.enter(key); + } + rr.layout(); + layoutCount++; + + if (Profiler.isEnabled()) { + Profiler.leave(key); + } } catch (RuntimeException e) { VConsole.error(e); } @@ -388,7 +425,19 @@ public class LayoutManager { currentDependencyTree.markAsVerticallyLayouted(layout); DirectionalManagedLayout cl = (DirectionalManagedLayout) layout; try { + String key = null; + if (Profiler.isEnabled()) { + key = "layoutHorizontally() for " + + Util.getSimpleName(cl); + Profiler.enter(key); + } + cl.layoutVertically(); + layoutCount++; + + if (Profiler.isEnabled()) { + Profiler.leave(key); + } } catch (RuntimeException e) { VConsole.error(e); } @@ -399,7 +448,18 @@ public class LayoutManager { currentDependencyTree.markAsVerticallyLayouted(layout); SimpleManagedLayout rr = (SimpleManagedLayout) layout; try { + String key = null; + if (Profiler.isEnabled()) { + key = "layout() for " + Util.getSimpleName(rr); + Profiler.enter(key); + } + rr.layout(); + layoutCount++; + + if (Profiler.isEnabled()) { + Profiler.leave(key); + } } catch (RuntimeException e) { VConsole.error(e); } @@ -411,14 +471,14 @@ public class LayoutManager { } } + Profiler.leave("LayoutManager handle ManagedLayout"); + if (debugLogging) { JsArrayString changedCids = updatedSet.dump(); StringBuilder b = new StringBuilder(" "); b.append(changedCids.length()); - b.append(" requestLayout invocations in "); - b.append(passDuration.elapsedMillis() - measureTime); - b.append(" ms"); + b.append(" requestLayout invocations "); if (changedCids.length() < 30) { for (int i = 0; i < changedCids.length(); i++) { if (i != 0) { @@ -439,8 +499,12 @@ public class LayoutManager { VConsole.log(b.toString()); } - VConsole.log("Pass " + passes + " completed in " - + passDuration.elapsedMillis() + " ms"); + Profiler.leave("Layout pass"); + + VConsole.log("Pass " + passes + " measured " + + measuredConnectorCount + " elements, fired " + + firedListeners + " listeners and did " + layoutCount + + " layouts."); if (passes > 100) { VConsole.log(LOOP_ABORT_MESSAGE); @@ -455,23 +519,30 @@ public class LayoutManager { } } - int postLayoutStart = totalDuration.elapsedMillis(); + Profiler.enter("layout PostLayoutListener"); JsArrayObject<ComponentConnector> componentConnectors = connectorMap .getComponentConnectorsAsJsArray(); int size = componentConnectors.size(); for (int i = 0; i < size; i++) { ComponentConnector connector = componentConnectors.get(i); if (connector instanceof PostLayoutListener) { + String key = null; + if (Profiler.isEnabled()) { + key = "layout PostLayoutListener for " + + Util.getSimpleName(connector); + Profiler.enter(key); + } + ((PostLayoutListener) connector).postLayout(); + + if (Profiler.isEnabled()) { + Profiler.leave(key); + } } } - int postLayoutDone = totalDuration.elapsedMillis(); - VConsole.log("Invoke post layout listeners in " - + (postLayoutDone - postLayoutStart) + " ms"); + Profiler.leave("layout PostLayoutListener"); cleanMeasuredSizes(); - int cleaningTime = (totalDuration.elapsedMillis() - postLayoutDone); - VConsole.log("Cleaned old measured sizes in " + cleaningTime + "ms"); VConsole.log("Total layout phase time: " + totalDuration.elapsedMillis() + "ms"); @@ -485,13 +556,12 @@ public class LayoutManager { private int measureConnectors(LayoutDependencyTree layoutDependencyTree, boolean measureAll) { + Profiler.enter("Layout overflow fix handling"); JsArrayString pendingOverflowConnectorsIds = pendingOverflowFixes .dump(); int pendingOverflowCount = pendingOverflowConnectorsIds.length(); ConnectorMap connectorMap = ConnectorMap.get(connection); if (pendingOverflowCount > 0) { - Duration duration = new Duration(); - HashMap<Element, String> originalOverflows = new HashMap<Element, String>(); FastStringSet delayedOverflowFixes = FastStringSet.create(); @@ -523,6 +593,7 @@ public class LayoutManager { + Util.getConnectorString(componentConnector .getParent())); } + Profiler.enter("Overflow fix apply"); Element parentElement = componentConnector.getWidget() .getElement().getParentElement(); @@ -537,6 +608,7 @@ public class LayoutManager { } style.setOverflow(Overflow.HIDDEN); + Profiler.leave("Overflow fix apply"); } pendingOverflowFixes.removeAll(delayedOverflowFixes); @@ -544,6 +616,7 @@ public class LayoutManager { JsArrayString remainingOverflowFixIds = pendingOverflowFixes.dump(); int remainingCount = remainingOverflowFixIds.length(); + Profiler.enter("Overflow fix reflow"); // Then ensure all scrolling elements are reflowed by measuring for (int i = 0; i < remainingCount; i++) { ComponentConnector componentConnector = (ComponentConnector) connectorMap @@ -551,7 +624,9 @@ public class LayoutManager { componentConnector.getWidget().getElement().getParentElement() .getOffsetHeight(); } + Profiler.leave("Overflow fix reflow"); + Profiler.enter("Overflow fix restore"); // Finally restore old overflow value and update bookkeeping for (int i = 0; i < remainingCount; i++) { String connectorId = remainingOverflowFixIds.get(i); @@ -564,15 +639,19 @@ public class LayoutManager { layoutDependencyTree.setNeedsMeasure(connectorId, true); } + Profiler.leave("Overflow fix restore"); + if (!pendingOverflowFixes.isEmpty()) { VConsole.log("Did overflow fix for " + remainingCount - + " elements in " + duration.elapsedMillis() + " ms"); + + " elements"); } pendingOverflowFixes = delayedOverflowFixes; } + Profiler.leave("Layout overflow fix handling"); int measureCount = 0; if (measureAll) { + Profiler.enter("Layout measureAll"); JsArrayObject<ComponentConnector> allConnectors = connectorMap .getComponentConnectorsAsJsArray(); int size = allConnectors.size(); @@ -596,8 +675,11 @@ public class LayoutManager { .getConnectorId(), false); } measureCount += connectorCount; + + Profiler.leave("Layout measureAll"); } + Profiler.enter("Layout measure from tree"); while (layoutDependencyTree.hasConnectorsToMeasure()) { JsArrayString measureTargets = layoutDependencyTree .getMeasureTargetsJsArray(); @@ -613,10 +695,13 @@ public class LayoutManager { layoutDependencyTree.setNeedsMeasure(connectorId, false); } } + Profiler.leave("Layout measure from tree"); + return measureCount; } private void measureConnector(ComponentConnector connector) { + Profiler.enter("LayoutManager.measureConnector"); Element element = connector.getWidget().getElement(); MeasuredSize measuredSize = getMeasuredSize(connector); MeasureResult measureResult = measuredAndUpdate(element, measuredSize); @@ -625,10 +710,12 @@ public class LayoutManager { onConnectorChange(connector, measureResult.isWidthChanged(), measureResult.isHeightChanged()); } + Profiler.leave("LayoutManager.measureConnector"); } private void onConnectorChange(ComponentConnector connector, boolean widthChanged, boolean heightChanged) { + Profiler.enter("LayoutManager.onConnectorChange"); setNeedsOverflowFix(connector); if (heightChanged) { currentDependencyTree.markHeightAsChanged(connector); @@ -636,6 +723,7 @@ public class LayoutManager { if (widthChanged) { currentDependencyTree.markWidthAsChanged(connector); } + Profiler.leave("LayoutManager.onConnectorChange"); } private void setNeedsOverflowFix(ComponentConnector connector) { @@ -651,9 +739,11 @@ public class LayoutManager { } private void measureNonConnectors() { + Profiler.enter("LayoutManager.measureNonConenctors"); for (Element element : measuredNonConnectorElements) { measuredAndUpdate(element, getMeasuredSize(element, null)); } + Profiler.leave("LayoutManager.measureNonConenctors"); VConsole.log("Measured " + measuredNonConnectorElements.size() + " non connector elements"); } @@ -673,6 +763,8 @@ public class LayoutManager { boolean widthChanged, boolean heightChanged) { assert widthChanged || heightChanged; + Profiler.enter("LayoutManager.notifyListenersAndDepdendents"); + MeasuredSize measuredSize = getMeasuredSize(element, nullSize); JsArrayString dependents = measuredSize.getDependents(); for (int i = 0; i < dependents.length(); i++) { @@ -689,6 +781,7 @@ public class LayoutManager { if (elementResizeListeners.containsKey(element)) { listenersToFire.add(element); } + Profiler.leave("LayoutManager.notifyListenersAndDepdendents"); } private static boolean isManagedLayout(ComponentConnector connector) { diff --git a/client/src/com/vaadin/client/LayoutManagerIE8.java b/client/src/com/vaadin/client/LayoutManagerIE8.java index b352e14dc6..a692f126a2 100644 --- a/client/src/com/vaadin/client/LayoutManagerIE8.java +++ b/client/src/com/vaadin/client/LayoutManagerIE8.java @@ -61,6 +61,7 @@ public class LayoutManagerIE8 extends LayoutManager { @Override protected void cleanMeasuredSizes() { + Profiler.enter("LayoutManager.cleanMeasuredSizes"); Document document = RootPanel.get().getElement().getOwnerDocument(); Iterator<Element> i = measuredSizes.keySet().iterator(); @@ -70,15 +71,19 @@ public class LayoutManagerIE8 extends LayoutManager { i.remove(); } } + + Profiler.leave("LayoutManager.cleanMeasuredSizes"); } @Override protected void performBrowserLayoutHacks() { + Profiler.enter("LayoutManagerIE8.performBrowserLayoutHacks"); /* * Fixes IE8 issues where IE8 sometimes forgets to update the size of * the containing element. To force a reflow by modifying the magical * zoom property. */ Util.forceIE8Redraw(RootPanel.get().getElement()); + Profiler.leave("LayoutManagerIE8.performBrowserLayoutHacks"); } } diff --git a/client/src/com/vaadin/client/MeasuredSize.java b/client/src/com/vaadin/client/MeasuredSize.java index e0928a1702..51da8570e6 100644 --- a/client/src/com/vaadin/client/MeasuredSize.java +++ b/client/src/com/vaadin/client/MeasuredSize.java @@ -185,11 +185,18 @@ public class MeasuredSize { } public MeasureResult measure(Element element) { + Profiler.enter("MeasuredSize.measure"); boolean heightChanged = false; boolean widthChanged = false; + Profiler.enter("new ComputedStyle"); ComputedStyle computedStyle = new ComputedStyle(element); int[] paddings = computedStyle.getPadding(); + // Some browsers do not reflow until accessing data from the computed + // style object + Profiler.leave("new ComputedStyle"); + + Profiler.enter("Measure paddings"); if (!heightChanged && hasHeightChanged(this.paddings, paddings)) { debugSizeChange(element, "Height (padding)", this.paddings, paddings); @@ -200,7 +207,9 @@ public class MeasuredSize { widthChanged = true; } this.paddings = paddings; + Profiler.leave("Measure paddings"); + Profiler.enter("Measure margins"); int[] margins = computedStyle.getMargin(); if (!heightChanged && hasHeightChanged(this.margins, margins)) { debugSizeChange(element, "Height (margins)", this.margins, margins); @@ -211,7 +220,9 @@ public class MeasuredSize { widthChanged = true; } this.margins = margins; + Profiler.leave("Measure margins"); + Profiler.enter("Measure borders"); int[] borders = computedStyle.getBorder(); if (!heightChanged && hasHeightChanged(this.borders, borders)) { debugSizeChange(element, "Height (borders)", this.borders, borders); @@ -222,7 +233,9 @@ public class MeasuredSize { widthChanged = true; } this.borders = borders; + Profiler.leave("Measure borders"); + Profiler.enter("Measure height"); int requiredHeight = Util.getRequiredHeight(element); int marginHeight = sumHeights(margins); int oldHeight = height; @@ -231,13 +244,18 @@ public class MeasuredSize { debugSizeChange(element, "Height (outer)", oldHeight, height); heightChanged = true; } + Profiler.leave("Measure height"); + Profiler.enter("Measure width"); int requiredWidth = Util.getRequiredWidth(element); int marginWidth = sumWidths(margins); if (setOuterWidth(requiredWidth + marginWidth)) { debugSizeChange(element, "Width (outer)", oldWidth, width); widthChanged = true; } + Profiler.leave("Measure width"); + + Profiler.leave("MeasuredSize.measure"); return new MeasureResult(widthChanged, heightChanged); } diff --git a/client/src/com/vaadin/client/Profiler.java b/client/src/com/vaadin/client/Profiler.java new file mode 100644 index 0000000000..be26da859f --- /dev/null +++ b/client/src/com/vaadin/client/Profiler.java @@ -0,0 +1,365 @@ +/* + * Copyright 2000-2013 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.client; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.Map; + +import com.google.gwt.core.client.Duration; +import com.google.gwt.core.client.JavaScriptObject; +import com.google.gwt.core.client.JsArray; +import com.google.gwt.core.shared.GWT; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.Widget; + +/** + * Lightweight profiling tool that can be used to collect profiling data with + * zero overhead unless enabled. To enable profiling, add + * <code><set-property name="vaadin.profiler" value="true" /></code> to + * your .gwt.xml file. + * + * @author Vaadin Ltd + * @since 7.0.0 + */ +public class Profiler { + /** + * Class to include using deferred binding to enable the profiling. + * + * @author Vaadin Ltd + * @since 7.0.0 + */ + public static class EnabledProfiler extends Profiler { + @Override + protected boolean isImplEnabled() { + return true; + } + } + + private static JsArray<ProfilerEvent> events; + + private static final class ProfilerEvent extends JavaScriptObject { + protected ProfilerEvent() { + // JSO constructor + } + + public native String getName() + /*-{ + return this.name; + }-*/; + + private native double getRawTime() + /*-{ + return this.time; + }-*/; + + private boolean isStart() { + return getRawTime() <= 0; + } + } + + private static class Node { + + private final String name; + private final LinkedHashMap<String, Node> children = new LinkedHashMap<String, Node>(); + private double time = 0; + private int count = 0; + + public Node(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public Node addEvent(ProfilerEvent event) { + Node child = children.get(event.getName()); + if (child == null) { + child = new Node(event.getName()); + children.put(event.getName(), child); + } + child.time += event.getRawTime(); + child.count++; + return child; + } + + public void registerEnd(ProfilerEvent event) { + time += event.getRawTime(); + } + + public double getTimeSpent() { + return time; + } + + public int getCount() { + return count; + } + + public double getOwnTime() { + double time = getTimeSpent(); + for (Node node : children.values()) { + time -= node.getTimeSpent(); + } + return time; + } + + public Widget buildTree() { + String message = getStringRepresentation(""); + + if (getName() == null || !children.isEmpty()) { + SimpleTree tree = new SimpleTree(message); + for (Node node : children.values()) { + Widget child = node.buildTree(); + tree.add(child); + } + return tree; + } else { + return new Label(message); + } + } + + public void buildRecursiveString(StringBuilder builder, String prefix) { + if (getName() != null) { + String msg = getStringRepresentation(prefix); + builder.append(msg + '\n'); + } + String childPrefix = prefix + "*"; + for (Node node : children.values()) { + node.buildRecursiveString(builder, childPrefix); + } + } + + private String getStringRepresentation(String prefix) { + if (getName() == null) { + return ""; + } + String msg = prefix + " " + getName() + " in " + getTimeSpent() + + " ms."; + if (getCount() > 1) { + msg += " Invoked " + + getCount() + + " times (" + + roundToSignificantFigures(getTimeSpent() / getCount()) + + " ms per time)."; + } + if (!children.isEmpty()) { + double ownTime = getOwnTime(); + msg += " " + ownTime + " ms spent in own code"; + if (getCount() > 1) { + msg += " (" + + roundToSignificantFigures(ownTime / getCount()) + + " ms per time)"; + } + msg += '.'; + } + return msg; + } + + public static double roundToSignificantFigures(double num) { + // Number of significant digits + int n = 3; + if (num == 0) { + return 0; + } + + final double d = Math.ceil(Math.log10(num < 0 ? -num : num)); + final int power = n - (int) d; + + final double magnitude = Math.pow(10, power); + final long shifted = Math.round(num * magnitude); + return shifted / magnitude; + } + + public void sumUpTotals(Map<String, Node> totals) { + String name = getName(); + if (name != null) { + Node totalNode = totals.get(name); + if (totalNode == null) { + totalNode = new Node(name); + totals.put(name, totalNode); + } + + totalNode.time += getOwnTime(); + totalNode.count += getCount(); + } + for (Node node : children.values()) { + node.sumUpTotals(totals); + } + } + } + + /** + * Checks whether the profiling gathering is enabled. + * + * @return <code>true</code> if the profiling is enabled, else + * <code>false</code> + */ + public static boolean isEnabled() { + // This will be fully inlined by the compiler + Profiler create = GWT.create(Profiler.class); + return create.isImplEnabled(); + } + + /** + * Enters a named block. There should always be a matching invocation of + * {@link #leave(String)} when leaving the block. Calls to this method will + * be removed by the compiler unless profiling is enabled. + * + * @param name + * the name of the entered block + */ + public static void enter(String name) { + if (isEnabled()) { + pushEvent(events, name, -Duration.currentTimeMillis()); + } + } + + /** + * Leaves a named block. There should always be a matching invocation of + * {@link #enter(String)} when entering the block. Calls to this method will + * be removed by the compiler unless profiling is enabled. + * + * @param name + * the name of the left block + */ + public static void leave(String name) { + if (isEnabled()) { + pushEvent(events, name, Duration.currentTimeMillis()); + } + } + + private static native final void pushEvent(JsArray<ProfilerEvent> target, + String name, double time) + /*-{ + target[target.length] = {name: name, time: time}; + }-*/; + + /** + * Resets the collected profiler data. Calls to this method will be removed + * by the compiler unless profiling is enabled. + */ + public static void reset() { + if (isEnabled()) { + events = JavaScriptObject.createArray().cast(); + } + } + + /** + * Outputs the gathered profiling data to the debug console. + */ + public static void logTimings() { + if (!isEnabled()) { + VConsole.log("Profiler is not enabled, no data has been collected."); + return; + } + + LinkedList<Node> stack = new LinkedList<Node>(); + Node rootNode = new Node(null); + stack.add(rootNode); + for (int i = 0; i < events.length(); i++) { + ProfilerEvent event = events.get(i); + if (event.isStart()) { + Node stackTop = stack.getLast().addEvent(event); + stack.add(stackTop); + } else { + Node stackTop = stack.removeLast(); + if (stackTop == null) { + VConsole.error("Leaving " + event.getName() + + " that was never entered."); + return; + } + if (!stackTop.getName().equals(event.getName())) { + VConsole.error("Invalid profiling event order, leaving " + + event.getName() + " but " + stackTop.getName() + + " was expected"); + return; + } + stackTop.registerEnd(event); + } + } + + if (stack.size() != 1) { + VConsole.log("Not all nodes are left, the last node is " + + stack.getLast().getName()); + return; + } + + StringBuilder stringBuilder = new StringBuilder(); + rootNode.buildRecursiveString(stringBuilder, ""); + Console implementation = VConsole.getImplementation(); + if (implementation instanceof VDebugConsole) { + VDebugConsole console = (VDebugConsole) implementation; + + SimpleTree tree = (SimpleTree) stack.getFirst().buildTree(); + tree.setText("Profiler data"); + + console.showTree(tree, stringBuilder.toString()); + } else { + VConsole.log(stringBuilder.toString()); + } + + Map<String, Node> totals = new HashMap<String, Node>(); + rootNode.sumUpTotals(totals); + + ArrayList<Node> totalList = new ArrayList<Node>(totals.values()); + Collections.sort(totalList, new Comparator<Node>() { + @Override + public int compare(Node o1, Node o2) { + return (int) (o2.getTimeSpent() - o1.getTimeSpent()); + } + }); + + double total = 0; + double top20total = 0; + for (int i = 0; i < totalList.size(); i++) { + Node node = totalList.get(i); + double timeSpent = node.getTimeSpent(); + total += timeSpent; + if (i < 20) { + top20total += timeSpent; + } + } + + VConsole.log("Largest individual contributors using " + top20total + + " ms out of " + total + " ms"); + for (int i = 0; i < 20 && i < totalList.size(); i++) { + Node node = totalList.get(i); + double timeSpent = node.getTimeSpent(); + total += timeSpent; + VConsole.log(" * " + node.getName() + ": " + timeSpent + " ms in " + + node.getCount() + " invokations."); + } + + } + + /** + * Overridden in {@link EnabledProfiler} to make {@link #isEnabled()} return + * true if GWT.create returns that class. + * + * @return <code>true</code> if the profiling is enabled, else + * <code>false</code> + */ + protected boolean isImplEnabled() { + return false; + } + +} diff --git a/client/src/com/vaadin/client/VDebugConsole.java b/client/src/com/vaadin/client/VDebugConsole.java index 2739273fce..ee7505876d 100644 --- a/client/src/com/vaadin/client/VDebugConsole.java +++ b/client/src/com/vaadin/client/VDebugConsole.java @@ -513,6 +513,23 @@ public class VDebugConsole extends VOverlay implements Console { // consoleLog(u.getChildrenAsXML()); } + /** + * Adds a {@link SimpleTree} to the console and prints a string + * representation of the tree structure to the text console. + * + * @param tree + * the simple tree to display in the console window + * @param stringRepresentation + * the string representation of the tree to output to the text + * console + */ + public void showTree(SimpleTree tree, String stringRepresentation) { + if (panel.isAttached()) { + panel.add(tree); + } + consoleLog(stringRepresentation); + } + private static native void consoleDir(ValueMap u) /*-{ if($wnd.console && $wnd.console.log) { diff --git a/client/src/com/vaadin/client/WidgetSet.java b/client/src/com/vaadin/client/WidgetSet.java index 8efdd1dee4..34e18a5e4e 100644 --- a/client/src/com/vaadin/client/WidgetSet.java +++ b/client/src/com/vaadin/client/WidgetSet.java @@ -47,6 +47,7 @@ public class WidgetSet { * some hacks. Extra instantiation code is needed if client side * connector has no "native" counterpart on client side. */ + Profiler.enter("WidgetSet.createConnector"); Class<? extends ServerConnector> classType = resolveInheritedConnectorType( conf, tag); @@ -56,6 +57,7 @@ public class WidgetSet { UnknownComponentConnector c = GWT .create(UnknownComponentConnector.class); c.setServerSideClassName(serverSideName); + Profiler.leave("WidgetSet.createConnector"); return c; } else { /* @@ -68,8 +70,10 @@ public class WidgetSet { ((HasJavaScriptConnectorHelper) connector) .getJavascriptConnectorHelper().setTag(tag); } + Profiler.leave("WidgetSet.createConnector"); return connector; } catch (NoDataException e) { + Profiler.leave("WidgetSet.createConnector"); throw new IllegalStateException( "There is no information about " + classType diff --git a/client/src/com/vaadin/client/communication/JsonDecoder.java b/client/src/com/vaadin/client/communication/JsonDecoder.java index d4d71b3bc4..e1ee1fd7b7 100644 --- a/client/src/com/vaadin/client/communication/JsonDecoder.java +++ b/client/src/com/vaadin/client/communication/JsonDecoder.java @@ -32,6 +32,7 @@ import com.vaadin.client.ApplicationConnection; import com.vaadin.client.ConnectorMap; import com.vaadin.client.FastStringSet; import com.vaadin.client.JsArrayObject; +import com.vaadin.client.Profiler; import com.vaadin.client.metadata.NoDataException; import com.vaadin.client.metadata.Property; import com.vaadin.client.metadata.Type; @@ -128,20 +129,24 @@ public class JsonDecoder { private static Object decodeObject(Type type, JSONValue jsonValue, Object target, ApplicationConnection connection) { + Profiler.enter("JsonDecoder.decodeObject"); JSONSerializer<Object> serializer = (JSONSerializer<Object>) type .findSerializer(); if (serializer != null) { if (target != null && serializer instanceof DiffJSONSerializer<?>) { DiffJSONSerializer<Object> diffSerializer = (DiffJSONSerializer<Object>) serializer; diffSerializer.update(target, type, jsonValue, connection); + Profiler.leave("JsonDecoder.decodeObject"); return target; } else { Object object = serializer.deserialize(type, jsonValue, connection); + Profiler.leave("JsonDecoder.decodeObject"); return object; } } else { try { + Profiler.enter("JsonDecoder.decodeObject meta data processing"); JsArrayObject<Property> properties = type .getPropertiesAsArray(); if (target == null) { @@ -167,12 +172,18 @@ public class JsonDecoder { propertyReference = null; } + Profiler.leave("JsonDecoder.decodeObject meta data processing"); Object decodedValue = decodeValue(propertyType, encodedPropertyValue, propertyReference, connection); + Profiler.enter("JsonDecoder.decodeObject meta data processing"); property.setValue(target, decodedValue); } + Profiler.leave("JsonDecoder.decodeObject meta data processing"); + Profiler.leave("JsonDecoder.decodeObject"); return target; } catch (NoDataException e) { + Profiler.leave("JsonDecoder.decodeObject meta data processing"); + Profiler.leave("JsonDecoder.decodeObject"); throw new RuntimeException("Can not deserialize " + type.getSignature(), e); } diff --git a/client/src/com/vaadin/client/ui/AbstractConnector.java b/client/src/com/vaadin/client/ui/AbstractConnector.java index f9c74cc5c9..32f5370dc3 100644 --- a/client/src/com/vaadin/client/ui/AbstractConnector.java +++ b/client/src/com/vaadin/client/ui/AbstractConnector.java @@ -18,9 +18,7 @@ package com.vaadin.client.ui; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.Set; import com.google.gwt.core.client.JsArrayString; @@ -29,6 +27,7 @@ import com.google.gwt.event.shared.HandlerManager; import com.google.web.bindery.event.shared.HandlerRegistration; import com.vaadin.client.ApplicationConnection; import com.vaadin.client.FastStringMap; +import com.vaadin.client.Profiler; import com.vaadin.client.ServerConnector; import com.vaadin.client.Util; import com.vaadin.client.VConsole; @@ -110,11 +109,19 @@ public abstract class AbstractConnector implements ServerConnector, @Override public final void doInit(String connectorId, ApplicationConnection connection) { + Profiler.enter("AbstractConnector.doInit"); this.connection = connection; id = connectorId; addStateChangeHandler(this); + if (Profiler.isEnabled()) { + Profiler.enter("AbstractConnector.init " + Util.getSimpleName(this)); + } init(); + if (Profiler.isEnabled()) { + Profiler.leave("AbstractConnector.init " + Util.getSimpleName(this)); + } + Profiler.leave("AbstractConnector.doInit"); } /** @@ -200,6 +207,12 @@ public abstract class AbstractConnector implements ServerConnector, @Override public void fireEvent(GwtEvent<?> event) { + String profilerKey = null; + if (Profiler.isEnabled()) { + profilerKey = "Fire " + Util.getSimpleName(event) + " for " + + Util.getSimpleName(this); + Profiler.enter(profilerKey); + } if (handlerManager != null) { handlerManager.fireEvent(event); } @@ -214,6 +227,10 @@ public abstract class AbstractConnector implements ServerConnector, } } } + if (Profiler.isEnabled()) { + Profiler.leave(profilerKey); + } + } protected HandlerManager ensureHandlerManager() { @@ -263,6 +280,7 @@ public abstract class AbstractConnector implements ServerConnector, @Override public void onStateChanged(StateChangeEvent stateChangeEvent) { + Profiler.enter("AbstractConnector.onStateChanged"); if (debugLogging) { VConsole.log("State change event for " + Util.getConnectorString(stateChangeEvent.getConnector()) @@ -270,6 +288,7 @@ public abstract class AbstractConnector implements ServerConnector, } updateEnabledState(isEnabled()); + Profiler.leave("AbstractConnector.onStateChanged"); } /* @@ -296,7 +315,9 @@ public abstract class AbstractConnector implements ServerConnector, @Override public SharedState getState() { if (state == null) { + Profiler.enter("AbstractConnector.createState()"); state = createState(); + Profiler.leave("AbstractConnector.createState()"); } return state; @@ -394,10 +415,6 @@ public abstract class AbstractConnector implements ServerConnector, * {@link com.vaadin.terminal.AbstractClientConnector#setResource(String, com.vaadin.terminal.Resource)} * with the same key. <code>null</code> is returned if no corresponding * resource is found. - * <p> - * To get an event when a resource changes, you can use - * {@link #addStateChangeHandler(String, StateChangeHandler)} with - * <code>resources.[key]</code> as the property name. * * @param key * a string identifying the resource. diff --git a/client/src/com/vaadin/client/ui/VOverlay.java b/client/src/com/vaadin/client/ui/VOverlay.java index 83abccf2bb..d35201460e 100644 --- a/client/src/com/vaadin/client/ui/VOverlay.java +++ b/client/src/com/vaadin/client/ui/VOverlay.java @@ -112,21 +112,27 @@ public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> { private static int topFix = -1; - /* + /** * Shadow element style. If an extending class wishes to use a different * style of shadow, it can use setShadowStyle(String) to give the shadow * element a new style name. */ public static final String CLASSNAME_SHADOW = "v-shadow"; + /** + * Style name for the overlay container element (see + * {@link #getOverlayContainer()} + */ + public static final String CLASSNAME_CONTAINER = "v-overlay-container"; + /* * The shadow element for this overlay. */ private Element shadow; /* - * Creator of VOverlow (widget that made the instance, not the layout - * parent) + * The creator of this VOverlay (the widget that made the instance, not the + * layout parent) */ private Widget owner; @@ -650,7 +656,7 @@ public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> { if (ac == null) { // could not figure out which one we belong to, styling will // probably fail - VConsole.error("Could not determin ApplicationConnection for Overlay. Overlay will be attached directly to the root panel"); + VConsole.error("Could not determine ApplicationConnection for Overlay. Overlay will be attached directly to the root panel"); return RootPanel.get().getElement(); } else { return getOverlayContainer(ac); @@ -676,7 +682,8 @@ public class VOverlay extends PopupPanel implements CloseHandler<PopupPanel> { container.setId(id); String styles = ac.getUIConnector().getWidget().getParent() .getStyleName(); - container.setClassName(styles); + container.addClassName(styles); + container.addClassName(CLASSNAME_CONTAINER); RootPanel.get().getElement().appendChild(container); } return container; diff --git a/client/src/com/vaadin/client/ui/VUpload.java b/client/src/com/vaadin/client/ui/VUpload.java index f639e8f090..866a6ca4cf 100644 --- a/client/src/com/vaadin/client/ui/VUpload.java +++ b/client/src/com/vaadin/client/ui/VUpload.java @@ -18,6 +18,7 @@ package com.vaadin.client.ui; import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.Scheduler; +import com.google.gwt.core.client.Scheduler.ScheduledCommand; import com.google.gwt.dom.client.DivElement; import com.google.gwt.dom.client.Document; import com.google.gwt.dom.client.FormElement; @@ -257,6 +258,32 @@ public class VUpload extends SimplePanel { }); } + ScheduledCommand startUploadCmd = new ScheduledCommand() { + + @Override + public void execute() { + element.submit(); + submitted = true; + + disableUpload(); + + /* + * Visit server a moment after upload has started to see possible + * changes from UploadStarted event. Will be cleared on complete. + */ + t = new Timer() { + @Override + public void run() { + VConsole.log("Visiting server to see if upload started event changed UI."); + client.updateVariable(paintableId, "pollForStart", + nextUploadId, true); + } + }; + t.schedule(800); + } + + }; + /** For internal use only. May be removed or replaced in the future. */ public void submit() { if (fu.getFilename().length() == 0 || submitted || !enabled) { @@ -267,25 +294,10 @@ public class VUpload extends SimplePanel { // before upload client.sendPendingVariableChanges(); - element.submit(); - submitted = true; - VConsole.log("Submitted form"); - - disableUpload(); - - /* - * Visit server a moment after upload has started to see possible - * changes from UploadStarted event. Will be cleared on complete. - */ - t = new Timer() { - @Override - public void run() { - VConsole.log("Visiting server to see if upload started event changed UI."); - client.updateVariable(paintableId, "pollForStart", - nextUploadId, true); - } - }; - t.schedule(800); + // This is done as deferred because sendPendingVariableChanges is also + // deferred and we want to start the upload only after the changes have + // been sent to the server + Scheduler.get().scheduleDeferred(startUploadCmd); } @Override diff --git a/client/src/com/vaadin/client/ui/button/ButtonConnector.java b/client/src/com/vaadin/client/ui/button/ButtonConnector.java index 0439cd4fdc..9733d206c7 100644 --- a/client/src/com/vaadin/client/ui/button/ButtonConnector.java +++ b/client/src/com/vaadin/client/ui/button/ButtonConnector.java @@ -77,7 +77,7 @@ public class ButtonConnector extends AbstractComponentConnector implements } }); - addStateChangeHandler("resources.icon", new StateChangeHandler() { + addStateChangeHandler("resources", new StateChangeHandler() { @Override public void onStateChanged(StateChangeEvent stateChangeEvent) { if (getIcon() != null) { diff --git a/client/src/com/vaadin/client/ui/dd/VDragAndDropManager.java b/client/src/com/vaadin/client/ui/dd/VDragAndDropManager.java index 280e44a9b5..ffc146ad04 100644 --- a/client/src/com/vaadin/client/ui/dd/VDragAndDropManager.java +++ b/client/src/com/vaadin/client/ui/dd/VDragAndDropManager.java @@ -37,6 +37,7 @@ import com.google.gwt.user.client.ui.Widget; import com.vaadin.client.ApplicationConnection; import com.vaadin.client.ComponentConnector; import com.vaadin.client.MouseEventDetailsBuilder; +import com.vaadin.client.Profiler; import com.vaadin.client.UIDL; import com.vaadin.client.Util; import com.vaadin.client.VConsole; @@ -659,6 +660,8 @@ public class VDragAndDropManager { if (serverCallback == null) { return; } + Profiler.enter("VDragAndDropManager.handleServerResponse"); + UIDL uidl = (UIDL) valueMap.cast(); int visitId = uidl.getIntAttribute("visitId"); @@ -668,6 +671,8 @@ public class VDragAndDropManager { serverCallback = null; } runDeferredCommands(); + + Profiler.leave("VDragAndDropManager.handleServerResponse"); } private void runDeferredCommands() { diff --git a/client/src/com/vaadin/client/ui/layout/LayoutDependencyTree.java b/client/src/com/vaadin/client/ui/layout/LayoutDependencyTree.java index 4c46846d14..2ce45623d0 100644 --- a/client/src/com/vaadin/client/ui/layout/LayoutDependencyTree.java +++ b/client/src/com/vaadin/client/ui/layout/LayoutDependencyTree.java @@ -410,41 +410,73 @@ public class LayoutDependencyTree { public void setNeedsMeasure(ComponentConnector connector, boolean needsMeasure) { - setNeedsMeasure(connector.getConnectorId(), needsMeasure); + setNeedsHorizontalMeasure(connector, needsMeasure); + setNeedsVerticalMeasure(connector, needsMeasure); } public void setNeedsMeasure(String connectorId, boolean needsMeasure) { - setNeedsHorizontalMeasure(connectorId, needsMeasure); - setNeedsVerticalMeasure(connectorId, needsMeasure); + ComponentConnector connector = (ComponentConnector) ConnectorMap.get( + connection).getConnector(connectorId); + if (connector == null) { + return; + } + + setNeedsMeasure(connector, needsMeasure); } public void setNeedsHorizontalMeasure(ComponentConnector connector, boolean needsMeasure) { - setNeedsHorizontalMeasure(connector.getConnectorId(), needsMeasure); + LayoutDependency dependency = getDependency(connector, HORIZONTAL); + dependency.setNeedsMeasure(needsMeasure); } public void setNeedsHorizontalMeasure(String connectorId, boolean needsMeasure) { - LayoutDependency dependency = getDependency(connectorId, HORIZONTAL); - dependency.setNeedsMeasure(needsMeasure); + // Ensure connector exists + ComponentConnector connector = (ComponentConnector) ConnectorMap.get( + connection).getConnector(connectorId); + if (connector == null) { + return; + } + + setNeedsHorizontalMeasure(connector, needsMeasure); } public void setNeedsVerticalMeasure(ComponentConnector connector, boolean needsMeasure) { - setNeedsVerticalMeasure(connector.getConnectorId(), needsMeasure); + LayoutDependency dependency = getDependency(connector, VERTICAL); + dependency.setNeedsMeasure(needsMeasure); } public void setNeedsVerticalMeasure(String connectorId, boolean needsMeasure) { - LayoutDependency dependency = getDependency(connectorId, VERTICAL); - dependency.setNeedsMeasure(needsMeasure); + // Ensure connector exists + ComponentConnector connector = (ComponentConnector) ConnectorMap.get( + connection).getConnector(connectorId); + if (connector == null) { + return; + } + + setNeedsVerticalMeasure(connector, needsMeasure); + } + + private LayoutDependency getDependency(ComponentConnector connector, + int direction) { + return getDependency(connector.getConnectorId(), connector, direction); } private LayoutDependency getDependency(String connectorId, int direction) { + return getDependency(connectorId, null, direction); + } + + private LayoutDependency getDependency(String connectorId, + ComponentConnector connector, int direction) { FastStringMap<LayoutDependency> dependencies = dependenciesInDirection[direction]; LayoutDependency dependency = dependencies.get(connectorId); if (dependency == null) { - ComponentConnector connector = (ComponentConnector) ConnectorMap - .get(connection).getConnector(connectorId); + if (connector == null) { + connector = (ComponentConnector) ConnectorMap.get(connection) + .getConnector(connectorId); + } dependency = new LayoutDependency(connector, direction); dependencies.put(connectorId, dependency); } diff --git a/client/src/com/vaadin/client/ui/link/LinkConnector.java b/client/src/com/vaadin/client/ui/link/LinkConnector.java index 59d24ce986..807a9bcc64 100644 --- a/client/src/com/vaadin/client/ui/link/LinkConnector.java +++ b/client/src/com/vaadin/client/ui/link/LinkConnector.java @@ -38,16 +38,13 @@ public class LinkConnector extends AbstractComponentConnector implements @Override protected void init() { super.init(); - addStateChangeHandler("resources." + LinkConstants.HREF_RESOURCE, - new StateChangeHandler() { - @Override - public void onStateChanged(StateChangeEvent stateChangeEvent) { - getWidget().src = getResourceUrl(LinkConstants.HREF_RESOURCE); - getWidget().anchor - .setAttribute("href", getWidget().src); - - } - }); + addStateChangeHandler("resources", new StateChangeHandler() { + @Override + public void onStateChanged(StateChangeEvent stateChangeEvent) { + getWidget().src = getResourceUrl(LinkConstants.HREF_RESOURCE); + getWidget().anchor.setAttribute("href", getWidget().src); + } + }); } @Override diff --git a/client/src/com/vaadin/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java b/client/src/com/vaadin/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java index afe81c79a0..50de8e0936 100644 --- a/client/src/com/vaadin/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java +++ b/client/src/com/vaadin/client/ui/orderedlayout/AbstractOrderedLayoutConnector.java @@ -23,6 +23,7 @@ import com.vaadin.client.ApplicationConnection; import com.vaadin.client.ComponentConnector; import com.vaadin.client.ConnectorHierarchyChangeEvent; import com.vaadin.client.LayoutManager; +import com.vaadin.client.Profiler; import com.vaadin.client.ServerConnector; import com.vaadin.client.Util; import com.vaadin.client.communication.StateChangeEvent; @@ -197,6 +198,12 @@ public abstract class AbstractOrderedLayoutConnector extends private boolean hasChildrenWithRelativeHeight = false; /** + * Keep track of whether any child is middle aligned. Used to determine if + * measurements are needed to make middle aligned children work. + */ + private boolean hasChildrenWithMiddleAlignment = false; + + /** * Keeps track of whether slots should be expanded based on available space. */ private boolean needsExpand = false; @@ -275,6 +282,7 @@ public abstract class AbstractOrderedLayoutConnector extends */ @Override public void onConnectorHierarchyChange(ConnectorHierarchyChangeEvent event) { + Profiler.enter("AOLC.onConnectorHierarchyChange"); List<ComponentConnector> previousChildren = event.getOldChildren(); int currentIndex = 0; @@ -283,14 +291,22 @@ public abstract class AbstractOrderedLayoutConnector extends layout.setSpacing(getState().spacing); for (ComponentConnector child : getChildComponents()) { + Profiler.enter("AOLC.onConnectorHierarchyChange add children"); Slot slot = layout.getSlot(child.getWidget()); if (slot.getParent() != layout) { + Profiler.enter("AOLC.onConnectorHierarchyChange add state change handler"); child.addStateChangeHandler(childStateChangeHandler); + Profiler.leave("AOLC.onConnectorHierarchyChange add state change handler"); } + Profiler.enter("AOLC.onConnectorHierarchyChange addOrMoveSlot"); layout.addOrMoveSlot(slot, currentIndex++); + Profiler.leave("AOLC.onConnectorHierarchyChange addOrMoveSlot"); + + Profiler.leave("AOLC.onConnectorHierarchyChange add children"); } for (ComponentConnector child : previousChildren) { + Profiler.enter("AOLC.onConnectorHierarchyChange remove children"); if (child.getParent() != this) { Slot slot = layout.getSlot(child.getWidget()); slot.setWidgetResizeListener(null); @@ -303,7 +319,9 @@ public abstract class AbstractOrderedLayoutConnector extends child.removeStateChangeHandler(childStateChangeHandler); layout.removeWidget(child.getWidget()); } + Profiler.leave("AOL.onConnectorHierarchyChange remove children"); } + Profiler.leave("AOLC.onConnectorHierarchyChange"); updateInternalState(); } @@ -336,10 +354,12 @@ public abstract class AbstractOrderedLayoutConnector extends if (processedResponseId == lastResponseId) { return; } + Profiler.enter("AOLC.updateInternalState"); // Remember that everything is updated for this response processedResponseId = lastResponseId; hasChildrenWithRelativeHeight = false; + hasChildrenWithMiddleAlignment = false; needsExpand = getWidget().vertical ? !isUndefinedHeight() : !isUndefinedWidth(); @@ -380,6 +400,10 @@ public abstract class AbstractOrderedLayoutConnector extends getState().childData.get(child).alignmentBitmask); slot.setAlignment(alignment); + if (alignment.isVerticalCenter()) { + hasChildrenWithMiddleAlignment = true; + } + double expandRatio = onlyZeroExpands ? 1 : getState().childData .get(child).expandRatio; @@ -411,6 +435,8 @@ public abstract class AbstractOrderedLayoutConnector extends } else { getWidget().clearExpand(); } + + Profiler.leave("AOLC.updateInternalState"); } /** @@ -429,8 +455,10 @@ public abstract class AbstractOrderedLayoutConnector extends return false; } - else if (!hasChildrenWithRelativeHeight) { - // Already works if there are no relative heights + else if (!hasChildrenWithRelativeHeight + && !hasChildrenWithMiddleAlignment) { + // Already works if there are no relative heights or middle aligned + // children return false; } diff --git a/server/src/com/vaadin/server/AbstractCommunicationManager.java b/server/src/com/vaadin/server/AbstractCommunicationManager.java index c1c18901b4..cd7279e601 100644 --- a/server/src/com/vaadin/server/AbstractCommunicationManager.java +++ b/server/src/com/vaadin/server/AbstractCommunicationManager.java @@ -1780,11 +1780,18 @@ public abstract class AbstractCommunicationManager implements Serializable { if (connectorTracker.getConnector(connectorId) == null && !connectorId .equals(ApplicationConstants.DRAG_AND_DROP_CONNECTOR_ID)) { - getLogger().log( - Level.WARNING, - "RPC call to " + interfaceName + "." + methodName - + " received for connector " + connectorId - + " but no such connector could be found"); + getLogger() + .log(Level.WARNING, + "RPC call to " + + interfaceName + + "." + + methodName + + " received for connector " + + connectorId + + " but no such connector could be found. Resynchronizing client."); + // This is likely an out of sync issue (client tries to update a + // connector which is not present). Force resync. + connectorTracker.markAllConnectorsDirty(); return null; } diff --git a/server/src/com/vaadin/ui/AbstractComponent.java b/server/src/com/vaadin/ui/AbstractComponent.java index 85c40e0d39..06060dbf91 100644 --- a/server/src/com/vaadin/ui/AbstractComponent.java +++ b/server/src/com/vaadin/ui/AbstractComponent.java @@ -122,7 +122,7 @@ public abstract class AbstractComponent extends AbstractClientConnector */ @Override public String getId() { - return getState().id; + return getState(false).id; } /** @@ -233,7 +233,7 @@ public abstract class AbstractComponent extends AbstractClientConnector */ @Override public String getCaption() { - return getState().caption; + return getState(false).caption; } /** @@ -363,7 +363,7 @@ public abstract class AbstractComponent extends AbstractClientConnector * interface. */ public boolean isImmediate() { - return getState().immediate; + return getState(false).immediate; } /** @@ -423,7 +423,7 @@ public abstract class AbstractComponent extends AbstractClientConnector */ @Override public String getDescription() { - return getState().description; + return getState(false).description; } /** @@ -532,7 +532,7 @@ public abstract class AbstractComponent extends AbstractClientConnector */ @Override public boolean isReadOnly() { - return getState().readOnly; + return getState(false).readOnly; } /* @@ -622,6 +622,11 @@ public abstract class AbstractComponent extends AbstractClientConnector } @Override + protected AbstractComponentState getState(boolean markAsDirty) { + return (AbstractComponentState) super.getState(markAsDirty); + } + + @Override public void beforeClientResponse(boolean initial) { super.beforeClientResponse(initial); // TODO This logic should be on the client side and the state should diff --git a/theme-compiler/src/com/vaadin/sass/internal/ScssStylesheet.java b/theme-compiler/src/com/vaadin/sass/internal/ScssStylesheet.java index fd00dbff2c..64279ad1e7 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/ScssStylesheet.java +++ b/theme-compiler/src/com/vaadin/sass/internal/ScssStylesheet.java @@ -32,7 +32,9 @@ import org.w3c.css.sac.InputSource; import com.vaadin.sass.internal.handler.SCSSDocumentHandler; import com.vaadin.sass.internal.handler.SCSSDocumentHandlerImpl; import com.vaadin.sass.internal.handler.SCSSErrorHandler; +import com.vaadin.sass.internal.parser.ParseException; import com.vaadin.sass.internal.parser.Parser; +import com.vaadin.sass.internal.parser.SCSSParseException; import com.vaadin.sass.internal.resolver.ScssStylesheetResolver; import com.vaadin.sass.internal.resolver.VaadinResolver; import com.vaadin.sass.internal.tree.BlockNode; @@ -103,6 +105,7 @@ public class ScssStylesheet extends Node { * imported children scss node will have the same encoding as their * parent, ultimately the root scss file. The root scss node has this * "encoding" parameter to be null. Its encoding is determined by the + * * @charset declaration, the default one is ASCII. */ File file = new File(identifier); @@ -120,7 +123,14 @@ public class ScssStylesheet extends Node { Parser parser = new Parser(); parser.setErrorHandler(new SCSSErrorHandler()); parser.setDocumentHandler(handler); - parser.parseStyleSheet(source); + + try { + parser.parseStyleSheet(source); + } catch (ParseException e) { + // catch ParseException, re-throw a SCSSParseException which has + // file name info. + throw new SCSSParseException(e, identifier); + } stylesheet.setCharset(parser.getInputSource().getEncoding()); return stylesheet; diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/LexicalUnitImpl.java b/theme-compiler/src/com/vaadin/sass/internal/parser/LexicalUnitImpl.java index 3527a77642..7feeb6628a 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/LexicalUnitImpl.java +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/LexicalUnitImpl.java @@ -28,6 +28,7 @@ import java.io.Serializable; import org.w3c.css.sac.LexicalUnit; import com.vaadin.sass.internal.util.ColorUtil; +import com.vaadin.sass.internal.util.DeepCopy; /** * @version $Revision: 1.3 $ @@ -154,6 +155,10 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, return "%"; case SAC_EM: return "em"; + case SCSSLexicalUnit.SAC_LEM: + return "lem"; + case SCSSLexicalUnit.SAC_REM: + return "rem"; case SAC_EX: return "ex"; case SAC_PIXEL: @@ -267,6 +272,8 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, text = getFloatValue() + ""; break; case LexicalUnit.SAC_EM: + case SCSSLexicalUnit.SAC_LEM: + case SCSSLexicalUnit.SAC_REM: case LexicalUnit.SAC_EX: case LexicalUnit.SAC_PIXEL: case LexicalUnit.SAC_INCH: @@ -380,23 +387,26 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, } public void replaceValue(LexicalUnitImpl another) { - type = another.getLexicalUnitType(); - i = another.getIntegerValue(); - f = another.getFloatValue(); - s = another.getStringValue(); - fname = another.getFunctionName(); - prev = another.getPreviousLexicalUnit(); - dimension = another.getDimension(); - sdimension = another.getSdimension(); - params = another.getParameters(); - - LexicalUnitImpl finalNextInAnother = another; + // shouldn't modify 'another' directly, should only modify its copy. + LexicalUnitImpl deepCopyAnother = (LexicalUnitImpl) DeepCopy + .copy(another); + type = deepCopyAnother.getLexicalUnitType(); + i = deepCopyAnother.getIntegerValue(); + f = deepCopyAnother.getFloatValue(); + s = deepCopyAnother.getStringValue(); + fname = deepCopyAnother.getFunctionName(); + prev = deepCopyAnother.getPreviousLexicalUnit(); + dimension = deepCopyAnother.getDimension(); + sdimension = deepCopyAnother.getSdimension(); + params = deepCopyAnother.getParameters(); + + LexicalUnitImpl finalNextInAnother = deepCopyAnother; while (finalNextInAnother.getNextLexicalUnit() != null) { finalNextInAnother = finalNextInAnother.getNextLexicalUnit(); } finalNextInAnother.setNextLexicalUnit(next); - next = another.next; + next = deepCopyAnother.next; } public void setParameters(LexicalUnitImpl params) { @@ -443,6 +453,18 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, return new LexicalUnitImpl(line, column, previous, SAC_EM, null, v); } + static LexicalUnitImpl createLEM(int line, int column, + LexicalUnitImpl previous, float v) { + return new LexicalUnitImpl(line, column, previous, + SCSSLexicalUnit.SAC_LEM, null, v); + } + + static LexicalUnitImpl createREM(int line, int column, + LexicalUnitImpl previous, float v) { + return new LexicalUnitImpl(line, column, previous, + SCSSLexicalUnit.SAC_REM, null, v); + } + static LexicalUnitImpl createEXS(int line, int column, LexicalUnitImpl previous, float v) { return new LexicalUnitImpl(line, column, previous, SAC_EX, null, v); @@ -617,8 +639,7 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, @Override public LexicalUnitImpl clone() { - LexicalUnitImpl cloned = new LexicalUnitImpl(type, line, column, - (LexicalUnitImpl) prev); + LexicalUnitImpl cloned = new LexicalUnitImpl(type, line, column, prev); cloned.replaceValue(this); return cloned; } @@ -636,8 +657,9 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, return i; } else if (f != -1) { return f; - } else + } else { return null; + } } public void setFunctionName(String functionName) { diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java index 9ae0d0ac8e..928c889956 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java @@ -588,64 +588,68 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { Locator l; label_7: while (true) { ; - if (jj_2_1(5)) { - listModifyDirective(); - } else { - switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { - case VARIABLE: + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case DEBUG_SYM: + case WARN_SYM: + debuggingDirective(); + break; + case MIXIN_SYM: + mixinDirective(); + break; + case EACH_SYM: + case IF_SYM: + controlDirective(); + break; + case INCLUDE_SYM: + includeDirective(); + break; + case LBRACKET: + case ANY: + case PARENT: + case DOT: + case COLON: + case INTERPOLATION: + case IDENT: + case HASH: + styleRule(); + break; + case MEDIA_SYM: + media(); + break; + case PAGE_SYM: + page(); + break; + case FONT_FACE_SYM: + fontFace(); + break; + case KEY_FRAME_SYM: + keyframes(); + break; + default: + jj_la1[8] = jj_gen; + if (jj_2_1(2147483647)) { variable(); - break; - case DEBUG_SYM: - case WARN_SYM: - debuggingDirective(); - break; - case MIXIN_SYM: - mixinDirective(); - break; - case EACH_SYM: - case IF_SYM: - controlDirective(); - break; - case INCLUDE_SYM: - includeDirective(); - break; - case LBRACKET: - case ANY: - case PARENT: - case DOT: - case COLON: - case INTERPOLATION: - case IDENT: - case HASH: - styleRule(); - break; - case MEDIA_SYM: - media(); - break; - case PAGE_SYM: - page(); - break; - case FONT_FACE_SYM: - fontFace(); - break; - case KEY_FRAME_SYM: - keyframes(); - break; - default: - jj_la1[8] = jj_gen; - l = getLocator(); - ret = skipStatement(); - if ((ret == null) || (ret.length() == 0)) { - { - if (true) { - return; + } else { + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case VARIABLE: + listModifyDirective(); + break; + default: + jj_la1[9] = jj_gen; + l = getLocator(); + ret = skipStatement(); + if ((ret == null) || (ret.length() == 0)) { + { + if (true) { + return; + } } } - } - if (ret.charAt(0) == '@') { - documentHandler.unrecognizedRule(ret); - } else { - reportWarningSkipText(l, ret); + if (ret.charAt(0) == '@') { + documentHandler.unrecognizedRule(ret); + } else { + reportWarningSkipText(l, ret); + } } } } @@ -657,7 +661,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[9] = jj_gen; + jj_la1[10] = jj_gen; break label_8; } ignoreStatement(); @@ -667,7 +671,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[10] = jj_gen; + jj_la1[11] = jj_gen; break label_9; } jj_consume_token(S); @@ -688,7 +692,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { atRuleDeclaration(); break; default: - jj_la1[11] = jj_gen; + jj_la1[12] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -713,7 +717,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[12] = jj_gen; + jj_la1[13] = jj_gen; break label_10; } jj_consume_token(S); @@ -732,7 +736,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } break; default: - jj_la1[13] = jj_gen; + jj_la1[14] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -742,7 +746,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[14] = jj_gen; + jj_la1[15] = jj_gen; break label_11; } jj_consume_token(S); @@ -752,7 +756,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { mediaStatement(ml); break; default: - jj_la1[15] = jj_gen; + jj_la1[16] = jj_gen; ; } jj_consume_token(SEMICOLON); @@ -762,7 +766,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[16] = jj_gen; + jj_la1[17] = jj_gen; break label_12; } jj_consume_token(S); @@ -797,7 +801,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[17] = jj_gen; + jj_la1[18] = jj_gen; break label_13; } jj_consume_token(S); @@ -814,7 +818,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { animationname += n.image; break; default: - jj_la1[18] = jj_gen; + jj_la1[19] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -824,7 +828,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[19] = jj_gen; + jj_la1[20] = jj_gen; break label_14; } } @@ -834,7 +838,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[20] = jj_gen; + jj_la1[21] = jj_gen; break label_15; } jj_consume_token(S); @@ -848,7 +852,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[21] = jj_gen; + jj_la1[22] = jj_gen; break label_16; } jj_consume_token(S); @@ -861,7 +865,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[22] = jj_gen; + jj_la1[23] = jj_gen; break label_17; } keyframeSelector(); @@ -873,7 +877,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[23] = jj_gen; + jj_la1[24] = jj_gen; break label_18; } jj_consume_token(S); @@ -903,7 +907,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { n = jj_consume_token(PERCENTAGE); break; default: - jj_la1[24] = jj_gen; + jj_la1[25] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -913,7 +917,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[25] = jj_gen; + jj_la1[26] = jj_gen; break label_19; } jj_consume_token(S); @@ -925,7 +929,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[26] = jj_gen; + jj_la1[27] = jj_gen; break label_20; } jj_consume_token(S); @@ -952,29 +956,41 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case HASH: case MEDIA_SYM: case KEY_FRAME_SYM: - case CONTAINS: ; break; default: - jj_la1[27] = jj_gen; + jj_la1[28] = jj_gen; break label_21; } - if (jj_2_2(5)) { + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case LBRACKET: + case ANY: + case PARENT: + case DOT: + case COLON: + case INTERPOLATION: + case INCLUDE_SYM: + case DEBUG_SYM: + case WARN_SYM: + case EXTEND_SYM: + case IDENT: + case VARIABLE: + case HASH: + case MEDIA_SYM: + case KEY_FRAME_SYM: ifContentStatement(); - } else { - switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { - case EACH_SYM: - case IF_SYM: - controlDirective(); - break; - case MICROSOFT_RULE: - microsoftExtension(); - break; - default: - jj_la1[28] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } + break; + case EACH_SYM: + case IF_SYM: + controlDirective(); + break; + case MICROSOFT_RULE: + microsoftExtension(); + break; + default: + jj_la1[29] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); } } jj_consume_token(RBRACE); @@ -984,7 +1000,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[29] = jj_gen; + jj_la1[30] = jj_gen; break label_22; } jj_consume_token(S); @@ -1026,7 +1042,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[30] = jj_gen; + jj_la1[31] = jj_gen; break label_23; } jj_consume_token(S); @@ -1041,7 +1057,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[31] = jj_gen; + jj_la1[32] = jj_gen; break label_24; } jj_consume_token(S); @@ -1086,7 +1102,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[32] = jj_gen; + jj_la1[33] = jj_gen; break label_25; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { @@ -1132,7 +1148,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { skipUnknownRule(); break; default: - jj_la1[33] = jj_gen; + jj_la1[34] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1144,7 +1160,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[34] = jj_gen; + jj_la1[35] = jj_gen; break label_26; } jj_consume_token(S); @@ -1170,7 +1186,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[35] = jj_gen; + jj_la1[36] = jj_gen; break label_27; } jj_consume_token(COMMA); @@ -1180,7 +1196,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[36] = jj_gen; + jj_la1[37] = jj_gen; break label_28; } jj_consume_token(S); @@ -1204,7 +1220,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[37] = jj_gen; + jj_la1[38] = jj_gen; break label_29; } jj_consume_token(S); @@ -1234,7 +1250,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[38] = jj_gen; + jj_la1[39] = jj_gen; break label_30; } jj_consume_token(S); @@ -1248,14 +1264,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[39] = jj_gen; + jj_la1[40] = jj_gen; break label_31; } jj_consume_token(S); } break; default: - jj_la1[40] = jj_gen; + jj_la1[41] = jj_gen; ; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { @@ -1263,7 +1279,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { pseudo = pseudo_page(); break; default: - jj_la1[41] = jj_gen; + jj_la1[42] = jj_gen; ; } if (n != null) { @@ -1276,7 +1292,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[42] = jj_gen; + jj_la1[43] = jj_gen; break label_32; } jj_consume_token(S); @@ -1289,7 +1305,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[43] = jj_gen; + jj_la1[44] = jj_gen; ; } label_33: while (true) { @@ -1298,7 +1314,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[44] = jj_gen; + jj_la1[45] = jj_gen; break label_33; } jj_consume_token(SEMICOLON); @@ -1308,7 +1324,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[45] = jj_gen; + jj_la1[46] = jj_gen; break label_34; } jj_consume_token(S); @@ -1319,7 +1335,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[46] = jj_gen; + jj_la1[47] = jj_gen; ; } } @@ -1330,7 +1346,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[47] = jj_gen; + jj_la1[48] = jj_gen; break label_35; } jj_consume_token(S); @@ -1363,7 +1379,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[48] = jj_gen; + jj_la1[49] = jj_gen; break label_36; } jj_consume_token(S); @@ -1386,7 +1402,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[49] = jj_gen; + jj_la1[50] = jj_gen; break label_37; } jj_consume_token(S); @@ -1398,7 +1414,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[50] = jj_gen; + jj_la1[51] = jj_gen; break label_38; } jj_consume_token(S); @@ -1411,7 +1427,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[51] = jj_gen; + jj_la1[52] = jj_gen; ; } label_39: while (true) { @@ -1420,7 +1436,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[52] = jj_gen; + jj_la1[53] = jj_gen; break label_39; } jj_consume_token(SEMICOLON); @@ -1430,7 +1446,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[53] = jj_gen; + jj_la1[54] = jj_gen; break label_40; } jj_consume_token(S); @@ -1441,7 +1457,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[54] = jj_gen; + jj_la1[55] = jj_gen; ; } } @@ -1452,7 +1468,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[55] = jj_gen; + jj_la1[56] = jj_gen; break label_41; } jj_consume_token(S); @@ -1564,7 +1580,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { n = jj_consume_token(UNKNOWN); break; default: - jj_la1[56] = jj_gen; + jj_la1[57] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1593,7 +1609,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[57] = jj_gen; + jj_la1[58] = jj_gen; break label_42; } jj_consume_token(S); @@ -1612,7 +1628,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[58] = jj_gen; + jj_la1[59] = jj_gen; break label_43; } jj_consume_token(S); @@ -1631,7 +1647,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[59] = jj_gen; + jj_la1[60] = jj_gen; break label_44; } jj_consume_token(S); @@ -1662,7 +1678,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { connector = '~'; break; default: - jj_la1[60] = jj_gen; + jj_la1[61] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1672,14 +1688,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[61] = jj_gen; + jj_la1[62] = jj_gen; break label_45; } jj_consume_token(S); } break; default: - jj_la1[62] = jj_gen; + jj_la1[63] = jj_gen; ; } { @@ -1689,7 +1705,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } break; default: - jj_la1[63] = jj_gen; + jj_la1[64] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1708,7 +1724,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[64] = jj_gen; + jj_la1[65] = jj_gen; break label_46; } jj_consume_token(S); @@ -1764,7 +1780,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } break; default: - jj_la1[65] = jj_gen; + jj_la1[66] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1783,7 +1799,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[66] = jj_gen; + jj_la1[67] = jj_gen; break label_47; } } @@ -1794,7 +1810,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[67] = jj_gen; + jj_la1[68] = jj_gen; break label_48; } jj_consume_token(S); @@ -1820,7 +1836,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { s += t.image; break; default: - jj_la1[68] = jj_gen; + jj_la1[69] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1830,7 +1846,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[69] = jj_gen; + jj_la1[70] = jj_gen; break label_49; } } @@ -1840,7 +1856,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[70] = jj_gen; + jj_la1[71] = jj_gen; break label_50; } jj_consume_token(S); @@ -1862,7 +1878,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[71] = jj_gen; + jj_la1[72] = jj_gen; break label_51; } jj_consume_token(S); @@ -1884,7 +1900,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[72] = jj_gen; + jj_la1[73] = jj_gen; break label_52; } jj_consume_token(S); @@ -1916,7 +1932,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[73] = jj_gen; + jj_la1[74] = jj_gen; break label_53; } jj_consume_token(S); @@ -1943,29 +1959,41 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case HASH: case MEDIA_SYM: case KEY_FRAME_SYM: - case CONTAINS: ; break; default: - jj_la1[74] = jj_gen; + jj_la1[75] = jj_gen; break label_54; } - if (jj_2_3(5)) { + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case LBRACKET: + case ANY: + case PARENT: + case DOT: + case COLON: + case INTERPOLATION: + case INCLUDE_SYM: + case DEBUG_SYM: + case WARN_SYM: + case EXTEND_SYM: + case IDENT: + case VARIABLE: + case HASH: + case MEDIA_SYM: + case KEY_FRAME_SYM: ifContentStatement(); - } else { - switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { - case EACH_SYM: - case IF_SYM: - controlDirective(); - break; - case MICROSOFT_RULE: - microsoftExtension(); - break; - default: - jj_la1[75] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } + break; + case EACH_SYM: + case IF_SYM: + controlDirective(); + break; + case MICROSOFT_RULE: + microsoftExtension(); + break; + default: + jj_la1[76] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); } } jj_consume_token(RBRACE); @@ -1975,7 +2003,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[76] = jj_gen; + jj_la1[77] = jj_gen; break label_55; } jj_consume_token(S); @@ -2011,7 +2039,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[77] = jj_gen; + jj_la1[78] = jj_gen; break label_56; } jj_consume_token(COMMA); @@ -2021,7 +2049,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[78] = jj_gen; + jj_la1[79] = jj_gen; break label_57; } jj_consume_token(S); @@ -2048,7 +2076,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { try { selector = simple_selector(null, ' '); label_58: while (true) { - if (jj_2_4(2)) { + if (jj_2_2(2)) { ; } else { break label_58; @@ -2062,7 +2090,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[79] = jj_gen; + jj_la1[80] = jj_gen; break label_59; } jj_consume_token(S); @@ -2121,7 +2149,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[80] = jj_gen; + jj_la1[81] = jj_gen; break label_60; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { @@ -2138,7 +2166,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { cond = pseudo(cond); break; default: - jj_la1[81] = jj_gen; + jj_la1[82] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2154,7 +2182,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[82] = jj_gen; + jj_la1[83] = jj_gen; break label_61; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { @@ -2168,7 +2196,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { cond = pseudo(cond); break; default: - jj_la1[83] = jj_gen; + jj_la1[84] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2185,7 +2213,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[84] = jj_gen; + jj_la1[85] = jj_gen; break label_62; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { @@ -2202,7 +2230,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { cond = pseudo(cond); break; default: - jj_la1[85] = jj_gen; + jj_la1[86] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2219,7 +2247,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[86] = jj_gen; + jj_la1[87] = jj_gen; break label_63; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { @@ -2236,7 +2264,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { cond = pseudo(cond); break; default: - jj_la1[87] = jj_gen; + jj_la1[88] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2253,7 +2281,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[88] = jj_gen; + jj_la1[89] = jj_gen; break label_64; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { @@ -2270,14 +2298,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { cond = pseudo(cond); break; default: - jj_la1[89] = jj_gen; + jj_la1[90] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } break; default: - jj_la1[90] = jj_gen; + jj_la1[91] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2336,7 +2364,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { s += t.image; break; default: - jj_la1[91] = jj_gen; + jj_la1[92] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2346,7 +2374,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[92] = jj_gen; + jj_la1[93] = jj_gen; break label_65; } } @@ -2387,7 +2415,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { s += t.image; break; default: - jj_la1[93] = jj_gen; + jj_la1[94] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2397,7 +2425,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[94] = jj_gen; + jj_la1[95] = jj_gen; break label_66; } } @@ -2424,7 +2452,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } break; default: - jj_la1[95] = jj_gen; + jj_la1[96] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2447,7 +2475,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[96] = jj_gen; + jj_la1[97] = jj_gen; break label_67; } jj_consume_token(S); @@ -2459,7 +2487,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[97] = jj_gen; + jj_la1[98] = jj_gen; break label_68; } jj_consume_token(S); @@ -2497,7 +2525,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { cases = 6; break; default: - jj_la1[98] = jj_gen; + jj_la1[99] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2507,7 +2535,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[99] = jj_gen; + jj_la1[100] = jj_gen; break label_69; } jj_consume_token(S); @@ -2522,7 +2550,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { attValue = val.image; break; default: - jj_la1[100] = jj_gen; + jj_la1[101] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2532,14 +2560,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[101] = jj_gen; + jj_la1[102] = jj_gen; break label_70; } jj_consume_token(S); } break; default: - jj_la1[102] = jj_gen; + jj_la1[103] = jj_gen; ; } jj_consume_token(RBRACKET); @@ -2604,7 +2632,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { isPseudoElement = true; break; default: - jj_la1[103] = jj_gen; + jj_la1[104] = jj_gen; ; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { @@ -2653,7 +2681,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[104] = jj_gen; + jj_la1[105] = jj_gen; break label_71; } jj_consume_token(S); @@ -2679,7 +2707,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } break; default: - jj_la1[105] = jj_gen; + jj_la1[106] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2724,7 +2752,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[106] = jj_gen; + jj_la1[107] = jj_gen; break label_72; } jj_consume_token(S); @@ -2735,7 +2763,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { guarded = guarded(); break; default: - jj_la1[107] = jj_gen; + jj_la1[108] = jj_gen; ; } label_73: while (true) { @@ -2746,7 +2774,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[108] = jj_gen; + jj_la1[109] = jj_gen; break label_74; } jj_consume_token(S); @@ -2756,7 +2784,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[109] = jj_gen; + jj_la1[110] = jj_gen; break label_73; } } @@ -2795,48 +2823,52 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { eachDirective(); break; default: - jj_la1[110] = jj_gen; + jj_la1[111] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } final public void ifContentStatement() throws ParseException { - if (jj_2_5(5)) { - listModifyDirective(); - } else { - switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { - case INCLUDE_SYM: - includeDirective(); - break; - case MEDIA_SYM: - media(); - break; - case EXTEND_SYM: - extendDirective(); - break; - case VARIABLE: + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case INCLUDE_SYM: + includeDirective(); + break; + case MEDIA_SYM: + media(); + break; + case EXTEND_SYM: + extendDirective(); + break; + case LBRACKET: + case ANY: + case PARENT: + case DOT: + case COLON: + case INTERPOLATION: + case DEBUG_SYM: + case WARN_SYM: + case IDENT: + case HASH: + styleRuleOrDeclarationOrNestedProperties(); + break; + case KEY_FRAME_SYM: + keyframes(); + break; + default: + jj_la1[112] = jj_gen; + if (jj_2_3(2147483647)) { variable(); - break; - case LBRACKET: - case ANY: - case PARENT: - case DOT: - case COLON: - case INTERPOLATION: - case DEBUG_SYM: - case WARN_SYM: - case IDENT: - case HASH: - styleRuleOrDeclarationOrNestedProperties(); - break; - case KEY_FRAME_SYM: - keyframes(); - break; - default: - jj_la1[111] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); + } else { + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case VARIABLE: + listModifyDirective(); + break; + default: + jj_la1[113] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } } } } @@ -2871,7 +2903,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[112] = jj_gen; + jj_la1[114] = jj_gen; break label_75; } } @@ -2882,7 +2914,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[113] = jj_gen; + jj_la1[115] = jj_gen; break label_76; } jj_consume_token(S); @@ -2906,11 +2938,10 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case HASH: case MEDIA_SYM: case KEY_FRAME_SYM: - case CONTAINS: ; break; default: - jj_la1[114] = jj_gen; + jj_la1[116] = jj_gen; break label_77; } ifContentStatement(); @@ -2922,7 +2953,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[115] = jj_gen; + jj_la1[117] = jj_gen; break label_78; } jj_consume_token(S); @@ -2933,7 +2964,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[116] = jj_gen; + jj_la1[118] = jj_gen; break label_79; } elseDirective(); @@ -2952,7 +2983,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[117] = jj_gen; + jj_la1[119] = jj_gen; break label_80; } jj_consume_token(S); @@ -2985,13 +3016,13 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[118] = jj_gen; + jj_la1[120] = jj_gen; break label_81; } } break; default: - jj_la1[119] = jj_gen; + jj_la1[121] = jj_gen; ; } jj_consume_token(LBRACE); @@ -3001,7 +3032,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[120] = jj_gen; + jj_la1[122] = jj_gen; break label_82; } jj_consume_token(S); @@ -3028,11 +3059,10 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case HASH: case MEDIA_SYM: case KEY_FRAME_SYM: - case CONTAINS: ; break; default: - jj_la1[121] = jj_gen; + jj_la1[123] = jj_gen; break label_83; } ifContentStatement(); @@ -3044,7 +3074,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[122] = jj_gen; + jj_la1[124] = jj_gen; break label_84; } jj_consume_token(S); @@ -3054,7 +3084,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { final public String booleanExpressionToken() throws ParseException { Token n = null; String s = null; - if (jj_2_6(2)) { + if (jj_2_4(2147483647)) { s = containsDirective(); } else { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { @@ -3110,7 +3140,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { n = jj_consume_token(NOT_EQ); break; default: - jj_la1[123] = jj_gen; + jj_la1[125] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3142,7 +3172,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[124] = jj_gen; + jj_la1[126] = jj_gen; break label_85; } jj_consume_token(S); @@ -3154,7 +3184,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[125] = jj_gen; + jj_la1[127] = jj_gen; break label_86; } jj_consume_token(S); @@ -3166,7 +3196,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[126] = jj_gen; + jj_la1[128] = jj_gen; break label_87; } jj_consume_token(S); @@ -3181,7 +3211,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { documentHandler.startEachDirective(var.image, listVariable); break; default: - jj_la1[127] = jj_gen; + jj_la1[129] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3192,7 +3222,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[128] = jj_gen; + jj_la1[130] = jj_gen; break label_88; } jj_consume_token(S); @@ -3214,11 +3244,10 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case HASH: case MEDIA_SYM: case KEY_FRAME_SYM: - case CONTAINS: ; break; default: - jj_la1[129] = jj_gen; + jj_la1[131] = jj_gen; break label_89; } ifContentStatement(); @@ -3230,7 +3259,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[130] = jj_gen; + jj_la1[132] = jj_gen; break label_90; } jj_consume_token(S); @@ -3248,7 +3277,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[131] = jj_gen; + jj_la1[133] = jj_gen; break label_91; } jj_consume_token(S); @@ -3260,7 +3289,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[132] = jj_gen; + jj_la1[134] = jj_gen; break label_92; } jj_consume_token(COMMA); @@ -3270,7 +3299,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[133] = jj_gen; + jj_la1[135] = jj_gen; break label_93; } jj_consume_token(S); @@ -3283,7 +3312,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[134] = jj_gen; + jj_la1[136] = jj_gen; break label_94; } jj_consume_token(S); @@ -3308,7 +3337,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[135] = jj_gen; + jj_la1[137] = jj_gen; break label_95; } jj_consume_token(S); @@ -3328,14 +3357,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[136] = jj_gen; + jj_la1[138] = jj_gen; break label_96; } jj_consume_token(S); } break; default: - jj_la1[137] = jj_gen; + jj_la1[139] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3346,7 +3375,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[138] = jj_gen; + jj_la1[140] = jj_gen; break label_97; } jj_consume_token(S); @@ -3373,32 +3402,44 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case PAGE_SYM: case FONT_FACE_SYM: case KEY_FRAME_SYM: - case CONTAINS: ; break; default: - jj_la1[139] = jj_gen; + jj_la1[141] = jj_gen; break label_98; } - if (jj_2_7(5)) { + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case LBRACKET: + case ANY: + case PARENT: + case DOT: + case COLON: + case INTERPOLATION: + case INCLUDE_SYM: + case DEBUG_SYM: + case WARN_SYM: + case EXTEND_SYM: + case IDENT: + case VARIABLE: + case HASH: + case MEDIA_SYM: + case KEY_FRAME_SYM: ifContentStatement(); - } else { - switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { - case EACH_SYM: - case IF_SYM: - controlDirective(); - break; - case FONT_FACE_SYM: - fontFace(); - break; - case PAGE_SYM: - page(); - break; - default: - jj_la1[140] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); - } + break; + case EACH_SYM: + case IF_SYM: + controlDirective(); + break; + case FONT_FACE_SYM: + fontFace(); + break; + case PAGE_SYM: + page(); + break; + default: + jj_la1[142] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); } } jj_consume_token(RBRACE); @@ -3408,7 +3449,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[141] = jj_gen; + jj_la1[143] = jj_gen; break label_99; } jj_consume_token(S); @@ -3427,7 +3468,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[142] = jj_gen; + jj_la1[144] = jj_gen; break label_100; } jj_consume_token(COMMA); @@ -3437,7 +3478,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[143] = jj_gen; + jj_la1[145] = jj_gen; break label_101; } jj_consume_token(S); @@ -3495,7 +3536,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[144] = jj_gen; + jj_la1[146] = jj_gen; break label_102; } jj_consume_token(S); @@ -3503,7 +3544,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { first = nonVariableTerm(null); prev = first; label_103: while (true) { - if (jj_2_8(3)) { + if (jj_2_5(3)) { ; } else { break label_103; @@ -3517,14 +3558,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[145] = jj_gen; + jj_la1[147] = jj_gen; break label_104; } jj_consume_token(S); } break; default: - jj_la1[146] = jj_gen; + jj_la1[148] = jj_gen; ; } prev = nonVariableTerm(prev); @@ -3536,13 +3577,13 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { token.beginColumn, prev, variable.image); break; default: - jj_la1[147] = jj_gen; + jj_la1[149] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[148] = jj_gen; + jj_la1[150] = jj_gen; ; } VariableNode arg = new VariableNode(name, first, false); @@ -3582,6 +3623,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case IN: case PX: case EMS: + case LEM: + case REM: case EXS: case DEG: case RAD: @@ -3597,7 +3640,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[149] = jj_gen; + jj_la1[151] = jj_gen; break label_105; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { @@ -3609,14 +3652,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[150] = jj_gen; + jj_la1[152] = jj_gen; break label_106; } jj_consume_token(S); } break; default: - jj_la1[151] = jj_gen; + jj_la1[153] = jj_gen; ; } next = term(prev); @@ -3629,7 +3672,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[152] = jj_gen; + jj_la1[154] = jj_gen; break label_107; } jj_consume_token(COMMA); @@ -3639,7 +3682,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[153] = jj_gen; + jj_la1[155] = jj_gen; break label_108; } jj_consume_token(S); @@ -3666,6 +3709,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case IN: case PX: case EMS: + case LEM: + case REM: case EXS: case DEG: case RAD: @@ -3681,7 +3726,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[154] = jj_gen; + jj_la1[156] = jj_gen; break label_109; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { @@ -3693,14 +3738,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[155] = jj_gen; + jj_la1[157] = jj_gen; break label_110; } jj_consume_token(S); } break; default: - jj_la1[156] = jj_gen; + jj_la1[158] = jj_gen; ; } next = term(prev); @@ -3726,7 +3771,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[157] = jj_gen; + jj_la1[159] = jj_gen; break label_111; } jj_consume_token(S); @@ -3746,7 +3791,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { jj_consume_token(RPARAN); break; default: - jj_la1[158] = jj_gen; + jj_la1[160] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3758,7 +3803,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[159] = jj_gen; + jj_la1[161] = jj_gen; break label_113; } jj_consume_token(S); @@ -3768,7 +3813,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[160] = jj_gen; + jj_la1[162] = jj_gen; break label_112; } } @@ -3787,39 +3832,159 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } final public void listModifyDirective() throws ParseException { - if (jj_2_9(5)) { - removeDirective(); - } else if (jj_2_10(5)) { - appendDirective(); - } else if (jj_2_11(5)) { - containsDirective(); - } else { - jj_consume_token(-1); - throw new ParseException(); - } + String list = null; + String remove = null; + String separator = null; + String variable = null; + Token n = null; + Token type = null; + // refactor, remove those 3 LOOKAHEAD(5). + n = jj_consume_token(VARIABLE); + variable = n.image; label_114: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[161] = jj_gen; + jj_la1[163] = jj_gen; break label_114; } jj_consume_token(S); } - jj_consume_token(SEMICOLON); + jj_consume_token(COLON); label_115: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[162] = jj_gen; + jj_la1[164] = jj_gen; break label_115; } jj_consume_token(S); } + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case APPEND: + type = jj_consume_token(APPEND); + break; + case REMOVE: + type = jj_consume_token(REMOVE); + break; + case CONTAINS: + type = jj_consume_token(CONTAINS); + break; + default: + jj_la1[165] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + label_116: while (true) { + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case S: + ; + break; + default: + jj_la1[166] = jj_gen; + break label_116; + } + 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[167] = jj_gen; + ; + } + jj_consume_token(COMMA); + label_117: while (true) { + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case S: + ; + break; + default: + jj_la1[168] = jj_gen; + break label_117; + } + jj_consume_token(S); + } + remove = listModifyDirectiveArgs(1); + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case COMMA: + jj_consume_token(COMMA); + label_118: while (true) { + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case S: + ; + break; + default: + jj_la1[169] = jj_gen; + break label_118; + } + jj_consume_token(S); + } + n = jj_consume_token(IDENT); + separator = n.image; + label_119: while (true) { + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case S: + ; + break; + default: + jj_la1[170] = jj_gen; + break label_119; + } + jj_consume_token(S); + } + break; + default: + jj_la1[171] = jj_gen; + ; + } + jj_consume_token(RPARAN); + switch (type.kind) { + case APPEND: + documentHandler.appendDirective(variable, list, remove, separator); + break; + case REMOVE: + documentHandler.removeDirective(variable, list, remove, separator); + break; + case CONTAINS: + if (variable == null) { + variable = "$var_" + UUID.randomUUID(); + } + documentHandler + .containsDirective(variable, list, remove, separator); + break; + default: + break; + } + label_120: while (true) { + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case S: + ; + break; + default: + jj_la1[172] = jj_gen; + break label_120; + } + jj_consume_token(S); + } + jj_consume_token(SEMICOLON); + label_121: while (true) { + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case S: + ; + break; + default: + jj_la1[173] = jj_gen; + break label_121; + } + jj_consume_token(S); + } } /** @@ -3834,38 +3999,38 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { Token n = null; n = jj_consume_token(VARIABLE); variable = n.image; - label_116: while (true) { + label_122: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[163] = jj_gen; - break label_116; + jj_la1[174] = jj_gen; + break label_122; } jj_consume_token(S); } jj_consume_token(COLON); - label_117: while (true) { + label_123: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[164] = jj_gen; - break label_117; + jj_la1[175] = jj_gen; + break label_123; } jj_consume_token(S); } jj_consume_token(APPEND); - label_118: while (true) { + label_124: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[165] = jj_gen; - break label_118; + jj_la1[176] = jj_gen; + break label_124; } jj_consume_token(S); } @@ -3875,18 +4040,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { jj_consume_token(RPARAN); break; default: - jj_la1[166] = jj_gen; + jj_la1[177] = jj_gen; ; } jj_consume_token(COMMA); - label_119: while (true) { + label_125: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[167] = jj_gen; - break label_119; + jj_la1[178] = jj_gen; + break label_125; } jj_consume_token(S); } @@ -3894,33 +4059,33 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case COMMA: jj_consume_token(COMMA); - label_120: while (true) { + label_126: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[168] = jj_gen; - break label_120; + jj_la1[179] = jj_gen; + break label_126; } jj_consume_token(S); } n = jj_consume_token(IDENT); separator = n.image; - label_121: while (true) { + label_127: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[169] = jj_gen; - break label_121; + jj_la1[180] = jj_gen; + break label_127; } jj_consume_token(S); } break; default: - jj_la1[170] = jj_gen; + jj_la1[181] = jj_gen; ; } jj_consume_token(RPARAN); @@ -3939,38 +4104,38 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { Token n = null; n = jj_consume_token(VARIABLE); variable = n.image; - label_122: while (true) { + label_128: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[171] = jj_gen; - break label_122; + jj_la1[182] = jj_gen; + break label_128; } jj_consume_token(S); } jj_consume_token(COLON); - label_123: while (true) { + label_129: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[172] = jj_gen; - break label_123; + jj_la1[183] = jj_gen; + break label_129; } jj_consume_token(S); } jj_consume_token(REMOVE); - label_124: while (true) { + label_130: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[173] = jj_gen; - break label_124; + jj_la1[184] = jj_gen; + break label_130; } jj_consume_token(S); } @@ -3980,18 +4145,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { jj_consume_token(RPARAN); break; default: - jj_la1[174] = jj_gen; + jj_la1[185] = jj_gen; ; } jj_consume_token(COMMA); - label_125: while (true) { + label_131: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[175] = jj_gen; - break label_125; + jj_la1[186] = jj_gen; + break label_131; } jj_consume_token(S); } @@ -3999,33 +4164,33 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case COMMA: jj_consume_token(COMMA); - label_126: while (true) { + label_132: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[176] = jj_gen; - break label_126; + jj_la1[187] = jj_gen; + break label_132; } jj_consume_token(S); } n = jj_consume_token(IDENT); separator = n.image; - label_127: while (true) { + label_133: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[177] = jj_gen; - break label_127; + jj_la1[188] = jj_gen; + break label_133; } jj_consume_token(S); } break; default: - jj_la1[178] = jj_gen; + jj_la1[189] = jj_gen; ; } jj_consume_token(RPARAN); @@ -4046,43 +4211,43 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case VARIABLE: n = jj_consume_token(VARIABLE); variable = n.image; - label_128: while (true) { + label_134: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[179] = jj_gen; - break label_128; + jj_la1[190] = jj_gen; + break label_134; } jj_consume_token(S); } jj_consume_token(COLON); - label_129: while (true) { + label_135: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[180] = jj_gen; - break label_129; + jj_la1[191] = jj_gen; + break label_135; } jj_consume_token(S); } break; default: - jj_la1[181] = jj_gen; + jj_la1[192] = jj_gen; ; } jj_consume_token(CONTAINS); - label_130: while (true) { + label_136: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[182] = jj_gen; - break label_130; + jj_la1[193] = jj_gen; + break label_136; } jj_consume_token(S); } @@ -4092,18 +4257,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { jj_consume_token(RPARAN); break; default: - jj_la1[183] = jj_gen; + jj_la1[194] = jj_gen; ; } jj_consume_token(COMMA); - label_131: while (true) { + label_137: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[184] = jj_gen; - break label_131; + jj_la1[195] = jj_gen; + break label_137; } jj_consume_token(S); } @@ -4111,33 +4276,33 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case COMMA: jj_consume_token(COMMA); - label_132: while (true) { + label_138: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[185] = jj_gen; - break label_132; + jj_la1[196] = jj_gen; + break label_138; } jj_consume_token(S); } n = jj_consume_token(IDENT); separator = n.image; - label_133: while (true) { + label_139: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[186] = jj_gen; - break label_133; + jj_la1[197] = jj_gen; + break label_139; } jj_consume_token(S); } break; default: - jj_la1[187] = jj_gen; + jj_la1[198] = jj_gen; ; } jj_consume_token(RPARAN); @@ -4239,7 +4404,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { warnDirective(); break; default: - jj_la1[188] = jj_gen; + jj_la1[199] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4251,14 +4416,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { // TODO should evaluate the content expression, call // documentHandler.debugDirective() etc. System.out.println(content); - label_134: while (true) { + label_140: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[189] = jj_gen; - break label_134; + jj_la1[200] = jj_gen; + break label_140; } jj_consume_token(S); } @@ -4270,14 +4435,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { // TODO should evaluate the content expression, call // documentHandler.warnDirective() etc. System.err.println(content); - label_135: while (true) { + label_141: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[190] = jj_gen; - break label_135; + jj_la1[201] = jj_gen; + break label_141; } jj_consume_token(S); } @@ -4303,19 +4468,19 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { exclusive = false; break; default: - jj_la1[191] = jj_gen; + jj_la1[202] = jj_gen; jj_consume_token(-1); throw new ParseException(); } to = skipStatementUntilLeftBrace(); - label_136: while (true) { + label_142: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[192] = jj_gen; - break label_136; + jj_la1[203] = jj_gen; + break label_142; } jj_consume_token(S); } @@ -4345,28 +4510,28 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { final public void extendDirective() throws ParseException { ArrayList<String> list; jj_consume_token(EXTEND_SYM); - label_137: while (true) { + label_143: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[193] = jj_gen; - break label_137; + jj_la1[204] = jj_gen; + break label_143; } jj_consume_token(S); } list = selectorList(); - label_138: while (true) { + label_144: while (true) { jj_consume_token(SEMICOLON); - label_139: while (true) { + label_145: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[194] = jj_gen; - break label_139; + jj_la1[205] = jj_gen; + break label_145; } jj_consume_token(S); } @@ -4375,8 +4540,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { ; break; default: - jj_la1[195] = jj_gen; - break label_138; + jj_la1[206] = jj_gen; + break label_144; } } documentHandler.extendDirective(list); @@ -4403,26 +4568,26 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { LexicalUnit exp; name = property(); jj_consume_token(COLON); - label_140: while (true) { + label_146: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[196] = jj_gen; - break label_140; + jj_la1[207] = jj_gen; + break label_146; } jj_consume_token(S); } jj_consume_token(LBRACE); - label_141: while (true) { + label_147: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[197] = jj_gen; - break label_141; + jj_la1[208] = jj_gen; + break label_147; } jj_consume_token(S); } @@ -4433,27 +4598,27 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[198] = jj_gen; + jj_la1[209] = jj_gen; ; } - label_142: while (true) { + label_148: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[199] = jj_gen; - break label_142; + jj_la1[210] = jj_gen; + break label_148; } jj_consume_token(SEMICOLON); - label_143: while (true) { + label_149: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[200] = jj_gen; - break label_143; + jj_la1[211] = jj_gen; + break label_149; } jj_consume_token(S); } @@ -4463,20 +4628,20 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[201] = jj_gen; + jj_la1[212] = jj_gen; ; } } jj_consume_token(RBRACE); documentHandler.endNestedProperties(name); - label_144: while (true) { + label_150: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[202] = jj_gen; - break label_144; + jj_la1[213] = jj_gen; + break label_150; } jj_consume_token(S); } @@ -4489,22 +4654,34 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { final public void styleRuleOrDeclarationOrNestedProperties() throws ParseException { try { - if (jj_2_12(5)) { - styleRule(); - } else { - switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { - case DEBUG_SYM: - case WARN_SYM: - debuggingDirective(); - break; - case INTERPOLATION: - case IDENT: + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case DEBUG_SYM: + case WARN_SYM: + debuggingDirective(); + break; + default: + jj_la1[214] = jj_gen; + if (jj_2_6(2147483647)) { + styleRule(); + } else if (jj_2_7(3)) { declarationOrNestedProperties(); - break; - default: - jj_la1[203] = jj_gen; - jj_consume_token(-1); - throw new ParseException(); + } 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[215] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } } } } catch (JumpException e) { @@ -4546,14 +4723,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { name = property(); save = token; jj_consume_token(COLON); - label_145: while (true) { + label_151: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[204] = jj_gen; - break label_145; + jj_la1[216] = jj_gen; + break label_151; } jj_consume_token(S); } @@ -4574,6 +4751,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case IN: case PX: case EMS: + case LEM: + case REM: case EXS: case DEG: case RAD: @@ -4592,7 +4771,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { important = prio(); break; default: - jj_la1[205] = jj_gen; + jj_la1[217] = jj_gen; ; } Token next = getToken(1); @@ -4611,14 +4790,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { break; case LBRACE: jj_consume_token(LBRACE); - label_146: while (true) { + label_152: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[206] = jj_gen; - break label_146; + jj_la1[218] = jj_gen; + break label_152; } jj_consume_token(S); } @@ -4629,27 +4808,27 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[207] = jj_gen; + jj_la1[219] = jj_gen; ; } - label_147: while (true) { + label_153: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[208] = jj_gen; - break label_147; + jj_la1[220] = jj_gen; + break label_153; } jj_consume_token(SEMICOLON); - label_148: while (true) { + label_154: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[209] = jj_gen; - break label_148; + jj_la1[221] = jj_gen; + break label_154; } jj_consume_token(S); } @@ -4659,26 +4838,26 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[210] = jj_gen; + jj_la1[222] = jj_gen; ; } } jj_consume_token(RBRACE); - label_149: while (true) { + label_155: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[211] = jj_gen; - break label_149; + jj_la1[223] = jj_gen; + break label_155; } jj_consume_token(S); } documentHandler.endNestedProperties(name); break; default: - jj_la1[212] = jj_gen; + jj_la1[224] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4726,14 +4905,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { name = property(); save = token; jj_consume_token(COLON); - label_150: while (true) { + label_156: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[213] = jj_gen; - break label_150; + jj_la1[225] = jj_gen; + break label_156; } jj_consume_token(S); } @@ -4743,7 +4922,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { important = prio(); break; default: - jj_la1[214] = jj_gen; + jj_la1[226] = jj_gen; ; } documentHandler.property(name, exp, important); @@ -4784,14 +4963,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { */ final public boolean prio() throws ParseException { jj_consume_token(IMPORTANT_SYM); - label_151: while (true) { + label_157: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[215] = jj_gen; - break label_151; + jj_la1[227] = jj_gen; + break label_157; } jj_consume_token(S); } @@ -4805,14 +4984,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { final public boolean guarded() throws ParseException { jj_consume_token(GUARDED_SYM); - label_152: while (true) { + label_158: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[216] = jj_gen; - break label_152; + jj_la1[228] = jj_gen; + break label_158; } jj_consume_token(S); } @@ -4834,14 +5013,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case DIV: n = jj_consume_token(DIV); - label_153: while (true) { + label_159: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[217] = jj_gen; - break label_153; + jj_la1[229] = jj_gen; + break label_159; } jj_consume_token(S); } @@ -4854,14 +5033,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { break; case COMMA: n = jj_consume_token(COMMA); - label_154: while (true) { + label_160: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[218] = jj_gen; - break label_154; + jj_la1[230] = jj_gen; + break label_160; } jj_consume_token(S); } @@ -4873,7 +5052,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } break; default: - jj_la1[219] = jj_gen; + jj_la1[231] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4889,11 +5068,11 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { char op; first = term(null); res = first; - label_155: while (true) { - if (jj_2_13(2)) { + label_161: while (true) { + if (jj_2_8(2)) { ; } else { - break label_155; + break label_161; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case COMMA: @@ -4901,7 +5080,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { res = operator(res); break; default: - jj_la1[220] = jj_gen; + jj_la1[232] = jj_gen; ; } res = term(res); @@ -4937,7 +5116,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } break; default: - jj_la1[221] = jj_gen; + jj_la1[233] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4969,6 +5148,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case IN: case PX: case EMS: + case LEM: + case REM: case EXS: case DEG: case RAD: @@ -4987,7 +5168,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { result = variableTerm(prev); break; default: - jj_la1[222] = jj_gen; + jj_la1[234] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5033,6 +5214,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case IN: case PX: case EMS: + case LEM: + case REM: case EXS: case DEG: case RAD: @@ -5049,7 +5232,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { op = unaryOperator(); break; default: - jj_la1[223] = jj_gen; + jj_la1[235] = jj_gen; ; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { @@ -5098,6 +5281,16 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { result = LexicalUnitImpl.createEMS(n.beginLine, n.beginColumn, prev, number(op, n, 2)); break; + case LEM: + n = jj_consume_token(LEM); + result = LexicalUnitImpl.createLEM(n.beginLine, n.beginColumn, + prev, number(op, n, 3)); + break; + case REM: + n = jj_consume_token(REM); + result = LexicalUnitImpl.createREM(n.beginLine, n.beginColumn, + prev, number(op, n, 3)); + break; case EXS: n = jj_consume_token(EXS); result = LexicalUnitImpl.createEXS(n.beginLine, n.beginColumn, @@ -5154,7 +5347,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { result = function(op, prev); break; default: - jj_la1[224] = jj_gen; + jj_la1[236] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5180,7 +5373,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { s += "."; break; default: - jj_la1[225] = jj_gen; + jj_la1[237] = jj_gen; ; } n = jj_consume_token(IDENT); @@ -5218,24 +5411,24 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { result = unicode(prev); break; default: - jj_la1[226] = jj_gen; + jj_la1[238] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[227] = jj_gen; + jj_la1[239] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_156: while (true) { + label_162: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[228] = jj_gen; - break label_156; + jj_la1[240] = jj_gen; + break label_162; } jj_consume_token(S); } @@ -5258,14 +5451,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { Token n; LexicalUnit params = null; n = jj_consume_token(FUNCTION); - label_157: while (true) { + label_163: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[229] = jj_gen; - break label_157; + jj_la1[241] = jj_gen; + break label_163; } jj_consume_token(S); } @@ -5278,6 +5471,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { n.beginColumn, null, "alpha(" + body); } } + } else if ("expression(".equals(fname)) { + String body = skipStatementUntilSemiColon(); + { + if (true) { + return LexicalUnitImpl.createIdent(n.beginLine, + n.beginColumn, null, "expression(" + body); + } + } } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case PLUS: @@ -5296,6 +5497,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case IN: case PX: case EMS: + case LEM: + case REM: case EXS: case DEG: case RAD: @@ -5311,7 +5514,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { params = expr(); break; default: - jj_la1[230] = jj_gen; + jj_la1[242] = jj_gen; ; } jj_consume_token(RPARAN); @@ -5848,14 +6051,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { */ final public void _parseRule() throws ParseException { String ret = null; - label_158: while (true) { + label_164: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[231] = jj_gen; - break label_158; + jj_la1[243] = jj_gen; + break label_164; } jj_consume_token(S); } @@ -5887,7 +6090,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { fontFace(); break; default: - jj_la1[232] = jj_gen; + jj_la1[244] = jj_gen; ret = skipStatement(); if ((ret == null) || (ret.length() == 0)) { { @@ -5910,14 +6113,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } final public void _parseImportRule() throws ParseException { - label_159: while (true) { + label_165: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[233] = jj_gen; - break label_159; + jj_la1[245] = jj_gen; + break label_165; } jj_consume_token(S); } @@ -5925,14 +6128,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } final public void _parseMediaRule() throws ParseException { - label_160: while (true) { + label_166: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[234] = jj_gen; - break label_160; + jj_la1[246] = jj_gen; + break label_166; } jj_consume_token(S); } @@ -5940,14 +6143,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } final public void _parseDeclarationBlock() throws ParseException { - label_161: while (true) { + label_167: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[235] = jj_gen; - break label_161; + jj_la1[247] = jj_gen; + break label_167; } jj_consume_token(S); } @@ -5957,27 +6160,27 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[236] = jj_gen; + jj_la1[248] = jj_gen; ; } - label_162: while (true) { + label_168: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[237] = jj_gen; - break label_162; + jj_la1[249] = jj_gen; + break label_168; } jj_consume_token(SEMICOLON); - label_163: while (true) { + label_169: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[238] = jj_gen; - break label_163; + jj_la1[250] = jj_gen; + break label_169; } jj_consume_token(S); } @@ -5987,7 +6190,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[239] = jj_gen; + jj_la1[251] = jj_gen; ; } } @@ -5996,14 +6199,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { final public ArrayList<String> _parseSelectors() throws ParseException { ArrayList<String> p = null; try { - label_164: while (true) { + label_170: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[240] = jj_gen; - break label_164; + jj_la1[252] = jj_gen; + break label_170; } jj_consume_token(S); } @@ -6119,105 +6322,65 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } } - private boolean jj_2_9(int xla) { - jj_la = xla; - jj_lastpos = jj_scanpos = token; - try { - return !jj_3_9(); - } catch (LookaheadSuccess ls) { - return true; - } finally { - jj_save(8, xla); - } - } - - private boolean jj_2_10(int xla) { - jj_la = xla; - jj_lastpos = jj_scanpos = token; - try { - return !jj_3_10(); - } catch (LookaheadSuccess ls) { - return true; - } finally { - jj_save(9, xla); - } - } - - private boolean jj_2_11(int xla) { - jj_la = xla; - jj_lastpos = jj_scanpos = token; - try { - return !jj_3_11(); - } catch (LookaheadSuccess ls) { - return true; - } finally { - jj_save(10, xla); - } - } - - 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_2_13(int xla) { - jj_la = xla; - jj_lastpos = jj_scanpos = token; - try { - return !jj_3_13(); - } catch (LookaheadSuccess ls) { + private boolean jj_3R_212() { + if (jj_3R_249()) { return true; - } finally { - jj_save(12, xla); } + return false; } - private boolean jj_3R_368() { + private boolean jj_3R_195() { Token xsp; xsp = jj_scanpos; - if (jj_3_6()) { + if (jj_3R_212()) { jj_scanpos = xsp; - if (jj_scan_token(76)) { + } + xsp = jj_scanpos; + if (jj_3R_213()) { + jj_scanpos = xsp; + if (jj_3R_214()) { jj_scanpos = xsp; - if (jj_scan_token(72)) { + if (jj_3R_215()) { jj_scanpos = xsp; - if (jj_scan_token(73)) { + if (jj_3R_216()) { jj_scanpos = xsp; - if (jj_scan_token(33)) { + if (jj_3R_217()) { jj_scanpos = xsp; - if (jj_scan_token(34)) { + if (jj_3R_218()) { jj_scanpos = xsp; - if (jj_scan_token(20)) { + if (jj_3R_219()) { jj_scanpos = xsp; - if (jj_scan_token(21)) { + if (jj_3R_220()) { jj_scanpos = xsp; - if (jj_scan_token(27)) { + if (jj_3R_221()) { jj_scanpos = xsp; - if (jj_scan_token(30)) { + if (jj_3R_222()) { jj_scanpos = xsp; - if (jj_scan_token(35)) { + if (jj_3R_223()) { jj_scanpos = xsp; - if (jj_scan_token(19)) { + if (jj_3R_224()) { jj_scanpos = xsp; - if (jj_scan_token(24)) { + if (jj_3R_225()) { jj_scanpos = xsp; - if (jj_scan_token(26)) { + if (jj_3R_226()) { jj_scanpos = xsp; - if (jj_scan_token(36)) { + if (jj_3R_227()) { jj_scanpos = xsp; - if (jj_scan_token(37)) { + if (jj_3R_228()) { jj_scanpos = xsp; - if (jj_scan_token(1)) { + if (jj_3R_229()) { jj_scanpos = xsp; - if (jj_scan_token(38)) { - return true; + if (jj_3R_230()) { + jj_scanpos = xsp; + if (jj_3R_231()) { + jj_scanpos = xsp; + if (jj_3R_232()) { + jj_scanpos = xsp; + if (jj_3R_233()) { + return true; + } + } + } } } } @@ -6239,121 +6402,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_230() { - if (jj_scan_token(DIMEN)) { - return true; - } - return false; - } - - private boolean jj_3R_323() { - if (jj_scan_token(INTERPOLATION)) { - return true; - } - return false; - } - - private boolean jj_3R_229() { - if (jj_scan_token(KHZ)) { - return true; - } - return false; - } - - private boolean jj_3R_174() { - if (jj_3R_195()) { - return true; - } - if (jj_scan_token(LBRACE)) { - return true; - } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } - while (true) { - xsp = jj_scanpos; - if (jj_3R_196()) { - jj_scanpos = xsp; - break; - } - } - if (jj_scan_token(RBRACE)) { - return true; - } - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } - return false; - } - - private boolean jj_3R_228() { - if (jj_scan_token(HZ)) { - return true; - } - return false; - } - - private boolean jj_3R_177() { - if (jj_3R_200()) { - return true; - } - return false; - } - - private boolean jj_3R_326() { - if (jj_scan_token(WARN_SYM)) { - return true; - } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } - return false; - } - - private boolean jj_3R_227() { - if (jj_scan_token(MS)) { - return true; - } - return false; - } - - private boolean jj_3R_299() { - if (jj_3R_326()) { - return true; - } - return false; - } - - private boolean jj_3R_226() { - if (jj_scan_token(SECOND)) { - return true; - } - return false; - } - - private boolean jj_3R_225() { - if (jj_scan_token(GRAD)) { - return true; - } - return false; - } - - private boolean jj_3R_274() { - if (jj_scan_token(FUNCTION)) { + private boolean jj_3R_181() { + if (jj_scan_token(VARIABLE)) { return true; } Token xsp; @@ -6367,40 +6417,15 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_224() { - if (jj_scan_token(RAD)) { - return true; - } - return false; - } - - private boolean jj_3R_325() { - if (jj_scan_token(DEBUG_SYM)) { - return true; - } + private boolean jj_3R_176() { Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; + xsp = jj_scanpos; + if (jj_3R_195()) { + jj_scanpos = xsp; + if (jj_3R_196()) { + return true; } } - return false; - } - - private boolean jj_3R_223() { - if (jj_scan_token(DEG)) { - return true; - } - return false; - } - - private boolean jj_3R_251() { - if (jj_scan_token(VARIABLE)) { - return true; - } - Token xsp; while (true) { xsp = jj_scanpos; if (jj_scan_token(1)) { @@ -6411,7 +6436,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_254() { + private boolean jj_3R_184() { if (jj_scan_token(SEMICOLON)) { return true; } @@ -6426,80 +6451,40 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_222() { - if (jj_scan_token(EXS)) { - return true; - } - return false; - } - - private boolean jj_3R_221() { - if (jj_scan_token(EMS)) { - return true; - } - return false; - } - - private boolean jj_3R_298() { - if (jj_3R_325()) { + private boolean jj_3R_252() { + if (jj_scan_token(HASH)) { return true; } return false; } - private boolean jj_3R_282() { + private boolean jj_3R_239() { Token xsp; xsp = jj_scanpos; - if (jj_3R_298()) { + if (jj_3R_255()) { jj_scanpos = xsp; - if (jj_3R_299()) { + if (jj_3R_256()) { return true; } } return false; } - private boolean jj_3R_322() { + private boolean jj_3R_255() { if (jj_scan_token(IDENT)) { return true; } return false; } - private boolean jj_3R_294() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_322()) { - jj_scanpos = xsp; - if (jj_3R_323()) { - return true; - } - } - return false; - } - - private boolean jj_3R_220() { - if (jj_scan_token(PX)) { - return true; - } - return false; - } - - private boolean jj_3R_354() { - if (jj_3R_368()) { - return true; - } - return false; - } - - private boolean jj_3R_273() { + private boolean jj_3R_199() { Token xsp; - if (jj_3R_294()) { + if (jj_3R_239()) { return true; } while (true) { xsp = jj_scanpos; - if (jj_3R_294()) { + if (jj_3R_239()) { jj_scanpos = xsp; break; } @@ -6514,364 +6499,131 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_219() { - if (jj_scan_token(IN)) { - return true; - } - return false; - } - - private boolean jj_3R_309() { - if (jj_scan_token(IF_SYM)) { - return true; - } - Token xsp; - if (jj_3R_354()) { - return true; - } - while (true) { - xsp = jj_scanpos; - if (jj_3R_354()) { - jj_scanpos = xsp; - break; - } - } - if (jj_scan_token(LBRACE)) { - return true; - } - return false; - } - - private boolean jj_3R_292() { - if (jj_3R_310()) { - return true; - } - return false; - } - - private boolean jj_3R_218() { - if (jj_scan_token(PC)) { - return true; - } - return false; - } - - private boolean jj_3R_217() { - if (jj_scan_token(MM)) { - return true; - } - return false; - } - - private boolean jj_3R_321() { - if (jj_scan_token(S)) { - return true; - } - return false; - } - - private boolean jj_3R_320() { - if (jj_scan_token(DOT)) { - return true; - } - return false; - } - - private boolean jj_3R_319() { - if (jj_scan_token(EQ)) { + private boolean jj_3R_242() { + if (jj_3R_181()) { return true; } return false; } - private boolean jj_3R_216() { - if (jj_scan_token(CM)) { + private boolean jj_3R_253() { + if (jj_scan_token(URL)) { return true; } return false; } - private boolean jj_3R_318() { - if (jj_scan_token(RPARAN)) { + private boolean jj_3R_183() { + if (jj_3R_205()) { return true; } return false; } - private boolean jj_3R_317() { - if (jj_scan_token(FUNCTION)) { + private boolean jj_3R_203() { + if (jj_3R_176()) { return true; } return false; } - private boolean jj_3R_166() { + private boolean jj_3R_180() { Token xsp; xsp = jj_scanpos; - if (jj_3_5()) { + if (jj_3R_203()) { jj_scanpos = xsp; - if (jj_3R_177()) { - jj_scanpos = xsp; - if (jj_3R_178()) { - jj_scanpos = xsp; - if (jj_3R_179()) { - jj_scanpos = xsp; - if (jj_3R_180()) { - jj_scanpos = xsp; - if (jj_3R_181()) { - jj_scanpos = xsp; - if (jj_3R_182()) { - return true; - } - } - } - } - } + if (jj_3R_204()) { + return true; } } return false; } - private boolean jj_3_5() { - if (jj_3R_165()) { - return true; - } - return false; - } - - private boolean jj_3R_316() { - if (jj_scan_token(COLON)) { - return true; - } - return false; - } - - private boolean jj_3R_253() { - if (jj_3R_281()) { - return true; - } - return false; - } - - private boolean jj_3R_215() { - if (jj_scan_token(PT)) { - return true; - } - return false; - } - - private boolean jj_3R_315() { - if (jj_scan_token(INTERPOLATION)) { - return true; - } - return false; - } - - private boolean jj_3R_314() { - if (jj_scan_token(COMMA)) { - return true; - } - return false; - } - - private boolean jj_3R_313() { - if (jj_scan_token(STRING)) { - return true; - } - return false; - } - - private boolean jj_3R_214() { - if (jj_scan_token(PERCENTAGE)) { + private boolean jj_3R_179() { + if (jj_3R_202()) { return true; } return false; } - private boolean jj_3R_312() { - if (jj_scan_token(NUMBER)) { + private boolean jj_3R_259() { + if (jj_scan_token(PLUS)) { return true; } return false; } - private boolean jj_3R_271() { + private boolean jj_3R_249() { Token xsp; xsp = jj_scanpos; - if (jj_3R_291()) { + if (jj_3R_258()) { jj_scanpos = xsp; - if (jj_3R_292()) { + if (jj_3R_259()) { return true; } } return false; } - private boolean jj_3R_291() { - if (jj_3R_309()) { + private boolean jj_3R_258() { + if (jj_scan_token(MINUS)) { return true; } return false; } - private boolean jj_3R_199() { - if (jj_3R_243()) { + private boolean jj_3R_245() { + if (jj_scan_token(SIBLING)) { return true; } return false; } - private boolean jj_3R_311() { - if (jj_scan_token(IDENT)) { + private boolean jj_3R_244() { + if (jj_scan_token(PRECEDES)) { return true; } return false; } - private boolean jj_3R_293() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_311()) { - jj_scanpos = xsp; - if (jj_3R_312()) { - jj_scanpos = xsp; - if (jj_3R_313()) { - jj_scanpos = xsp; - if (jj_3R_314()) { - jj_scanpos = xsp; - if (jj_3R_315()) { - jj_scanpos = xsp; - if (jj_3R_316()) { - jj_scanpos = xsp; - if (jj_3R_317()) { - jj_scanpos = xsp; - if (jj_3R_318()) { - jj_scanpos = xsp; - if (jj_3R_319()) { - jj_scanpos = xsp; - if (jj_3R_320()) { - jj_scanpos = xsp; - if (jj_3R_321()) { - return true; - } - } - } - } - } - } - } - } - } - } - } - return false; - } - - private boolean jj_3R_213() { - if (jj_scan_token(NUMBER)) { + private boolean jj_3R_254() { + if (jj_scan_token(UNICODERANGE)) { return true; } return false; } - private boolean jj_3R_212() { - if (jj_3R_265()) { + private boolean jj_3R_243() { + if (jj_scan_token(PLUS)) { return true; } return false; } - private boolean jj_3R_193() { + private boolean jj_3_8() { Token xsp; xsp = jj_scanpos; - if (jj_3R_212()) { + if (jj_3R_179()) { jj_scanpos = xsp; } - xsp = jj_scanpos; - if (jj_3R_213()) { - jj_scanpos = xsp; - 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()) { - jj_scanpos = xsp; - if (jj_3R_219()) { - jj_scanpos = xsp; - if (jj_3R_220()) { - jj_scanpos = xsp; - if (jj_3R_221()) { - jj_scanpos = xsp; - if (jj_3R_222()) { - jj_scanpos = xsp; - if (jj_3R_223()) { - jj_scanpos = xsp; - if (jj_3R_224()) { - jj_scanpos = xsp; - if (jj_3R_225()) { - jj_scanpos = xsp; - if (jj_3R_226()) { - jj_scanpos = xsp; - if (jj_3R_227()) { - jj_scanpos = xsp; - if (jj_3R_228()) { - jj_scanpos = xsp; - if (jj_3R_229()) { - jj_scanpos = xsp; - if (jj_3R_230()) { - jj_scanpos = xsp; - if (jj_3R_231()) { - return true; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } + if (jj_3R_180()) { + return true; } return false; } - private boolean jj_3R_171() { + private boolean jj_3R_206() { Token xsp; xsp = jj_scanpos; - if (jj_3R_193()) { + if (jj_3R_243()) { jj_scanpos = xsp; - if (jj_3R_194()) { - return true; - } - } - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { + if (jj_3R_244()) { jj_scanpos = xsp; - break; + if (jj_3R_245()) { + return true; + } } } - return false; - } - - private boolean jj_3R_272() { - if (jj_scan_token(MICROSOFT_RULE)) { - return true; - } - Token xsp; while (true) { xsp = jj_scanpos; if (jj_scan_token(1)) { @@ -6879,58 +6631,17 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { break; } } - if (jj_scan_token(COLON)) { - return true; - } - if (jj_3R_293()) { - return true; - } - while (true) { - xsp = jj_scanpos; - if (jj_3R_293()) { - jj_scanpos = xsp; - break; - } - } return false; } - private boolean jj_3R_261() { - if (jj_scan_token(SIBLING)) { - return true; - } - return false; - } - - private boolean jj_3R_260() { - if (jj_scan_token(PRECEDES)) { - return true; - } - return false; - } - - private boolean jj_3R_259() { - if (jj_scan_token(PLUS)) { + private boolean jj_3R_182() { + if (jj_3R_180()) { return true; } - return false; - } - - private boolean jj_3R_206() { Token xsp; - xsp = jj_scanpos; - if (jj_3R_259()) { - jj_scanpos = xsp; - if (jj_3R_260()) { - jj_scanpos = xsp; - if (jj_3R_261()) { - return true; - } - } - } while (true) { xsp = jj_scanpos; - if (jj_scan_token(1)) { + if (jj_3_8()) { jj_scanpos = xsp; break; } @@ -6938,21 +6649,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_268() { - if (jj_scan_token(HASH)) { - return true; - } - return false; - } - - private boolean jj_3R_243() { - if (jj_3R_251()) { - return true; - } - return false; - } - - private boolean jj_3R_185() { + private boolean jj_3R_187() { if (jj_scan_token(SIBLING)) { return true; } @@ -6967,7 +6664,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_184() { + private boolean jj_3R_186() { if (jj_scan_token(PRECEDES)) { return true; } @@ -6982,7 +6679,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_186() { + private boolean jj_3R_188() { if (jj_scan_token(S)) { return true; } @@ -6994,16 +6691,16 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_167() { + private boolean jj_3R_172() { Token xsp; xsp = jj_scanpos; - if (jj_3R_183()) { + if (jj_3R_185()) { jj_scanpos = xsp; - if (jj_3R_184()) { + if (jj_3R_186()) { jj_scanpos = xsp; - if (jj_3R_185()) { + if (jj_3R_187()) { jj_scanpos = xsp; - if (jj_3R_186()) { + if (jj_3R_188()) { return true; } } @@ -7012,7 +6709,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_183() { + private boolean jj_3R_185() { if (jj_scan_token(PLUS)) { return true; } @@ -7027,8 +6724,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_203() { - if (jj_3R_251()) { + private boolean jj_3R_171() { + if (jj_3R_181()) { return true; } if (jj_scan_token(COLON)) { @@ -7042,154 +6739,27 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { break; } } - if (jj_3R_252()) { - return true; - } - xsp = jj_scanpos; - if (jj_3R_253()) { - jj_scanpos = xsp; - } - if (jj_3R_254()) { - return true; - } - while (true) { - xsp = jj_scanpos; - if (jj_3R_254()) { - jj_scanpos = xsp; - break; - } - } - return false; - } - - private boolean jj_3R_198() { - if (jj_3R_171()) { + if (jj_3R_182()) { return true; } - return false; - } - - private boolean jj_3R_176() { - Token xsp; xsp = jj_scanpos; - if (jj_3R_198()) { - jj_scanpos = xsp; - if (jj_3R_199()) { - return true; - } - } - return false; - } - - private boolean jj_3R_269() { - if (jj_scan_token(URL)) { - return true; - } - return false; - } - - private boolean jj_3R_175() { - if (jj_3R_197()) { - return true; - } - return false; - } - - private boolean jj_3R_289() { - if (jj_scan_token(PLUS)) { - return true; - } - return false; - } - - private boolean jj_3R_265() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_288()) { - jj_scanpos = xsp; - if (jj_3R_289()) { - return true; - } - } - return false; - } - - private boolean jj_3R_288() { - if (jj_scan_token(MINUS)) { - return true; - } - return false; - } - - private boolean jj_3_13() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_175()) { + if (jj_3R_183()) { jj_scanpos = xsp; } - if (jj_3R_176()) { - return true; - } - return false; - } - - private boolean jj_3R_252() { - if (jj_3R_176()) { + if (jj_3R_184()) { return true; } - Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3_13()) { - jj_scanpos = xsp; - break; - } - } - return false; - } - - private boolean jj_3R_208() { - if (jj_scan_token(HASH)) { - return true; - } - return false; - } - - private boolean jj_3R_270() { - if (jj_scan_token(UNICODERANGE)) { - return true; - } - return false; - } - - private boolean jj_3R_343() { - if (jj_scan_token(IDENT)) { - return true; - } - return false; - } - - private boolean jj_3R_344() { - if (jj_scan_token(FUNCTION)) { - return true; - } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { + if (jj_3R_184()) { jj_scanpos = xsp; break; } } - if (true) { - jj_la = 0; - jj_scanpos = jj_lastpos; - return false; - } return false; } - private boolean jj_3R_242() { + private boolean jj_3R_241() { if (jj_scan_token(COMMA)) { return true; } @@ -7204,100 +6774,19 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_297() { - Token xsp; - xsp = jj_scanpos; - if (jj_scan_token(101)) { - jj_scanpos = xsp; - if (jj_scan_token(10)) { - jj_scanpos = xsp; - if (jj_scan_token(97)) { - jj_scanpos = xsp; - if (jj_scan_token(22)) { - jj_scanpos = xsp; - if (jj_scan_token(14)) { - jj_scanpos = xsp; - if (jj_scan_token(99)) { - jj_scanpos = xsp; - if (jj_scan_token(116)) { - jj_scanpos = xsp; - if (jj_scan_token(102)) { - jj_scanpos = xsp; - if (jj_scan_token(95)) { - jj_scanpos = xsp; - if (jj_scan_token(18)) { - jj_scanpos = xsp; - if (jj_scan_token(12)) { - jj_scanpos = xsp; - if (jj_scan_token(96)) { - jj_scanpos = xsp; - if (jj_scan_token(41)) { - jj_scanpos = xsp; - if (jj_scan_token(73)) { - jj_scanpos = xsp; - if (jj_scan_token(98)) { - jj_scanpos = xsp; - if (jj_scan_token(77)) { - jj_scanpos = xsp; - if (jj_scan_token(71)) { - jj_scanpos = xsp; - if (jj_scan_token(112)) { - jj_scanpos = xsp; - if (jj_scan_token(75)) { - jj_scanpos = xsp; - if (jj_scan_token(23)) { - jj_scanpos = xsp; - if (jj_scan_token(20)) { - jj_scanpos = xsp; - if (jj_scan_token(24)) { - jj_scanpos = xsp; - if (jj_scan_token(25)) { - jj_scanpos = xsp; - if (jj_scan_token(21)) { - jj_scanpos = xsp; - if (jj_scan_token(117)) { - return true; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - return false; - } - - private boolean jj_3R_197() { + private boolean jj_3R_202() { Token xsp; xsp = jj_scanpos; - if (jj_3R_241()) { + if (jj_3R_240()) { jj_scanpos = xsp; - if (jj_3R_242()) { + if (jj_3R_241()) { return true; } } return false; } - private boolean jj_3R_241() { + private boolean jj_3R_240() { if (jj_scan_token(DIV)) { return true; } @@ -7312,7 +6801,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_281() { + private boolean jj_3R_205() { if (jj_scan_token(GUARDED_SYM)) { return true; } @@ -7327,7 +6816,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_192() { + private boolean jj_3R_194() { if (jj_scan_token(VARIABLE)) { return true; } @@ -7352,10 +6841,10 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_169() { + private boolean jj_3R_174() { Token xsp; xsp = jj_scanpos; - if (jj_3R_192()) { + if (jj_3R_194()) { jj_scanpos = xsp; } if (jj_scan_token(CONTAINS)) { @@ -7376,56 +6865,22 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_355() { - if (jj_scan_token(IMPORTANT_SYM)) { - return true; - } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } - return false; - } - - private boolean jj_3_11() { - if (jj_3R_169()) { - return true; - } - return false; - } - - private boolean jj_3R_342() { - if (jj_scan_token(COLON)) { + private boolean jj_3R_208() { + if (jj_scan_token(HASH)) { return true; } return false; } - private boolean jj_3R_210() { - if (jj_scan_token(COLON)) { + private boolean jj_3R_281() { + if (jj_scan_token(IDENT)) { return true; } - Token xsp; - xsp = jj_scanpos; - if (jj_3R_342()) { - jj_scanpos = xsp; - } - xsp = jj_scanpos; - if (jj_3R_343()) { - jj_scanpos = xsp; - if (jj_3R_344()) { - return true; - } - } return false; } - private boolean jj_3R_172() { - if (jj_scan_token(VARIABLE)) { + private boolean jj_3R_282() { + if (jj_scan_token(FUNCTION)) { return true; } Token xsp; @@ -7436,26 +6891,6 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { 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; @@ -7464,225 +6899,123 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3_10() { - if (jj_3R_173()) { - return true; - } - return false; - } - - private boolean jj_3R_247() { - if (jj_scan_token(SEMICOLON)) { + private boolean jj_3R_280() { + if (jj_scan_token(COLON)) { return true; } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } return false; } - private boolean jj_3R_324() { + private boolean jj_3R_210() { if (jj_scan_token(COLON)) { return true; } Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } - return false; - } - - private boolean jj_3R_295() { - Token xsp; xsp = jj_scanpos; - if (jj_3R_324()) { + if (jj_3R_280()) { jj_scanpos = xsp; } - if (jj_3R_176()) { - return true; - } - return false; - } - - private boolean jj_3R_173() { - 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(APPEND)) { - return true; - } - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; + xsp = jj_scanpos; + if (jj_3R_281()) { + jj_scanpos = xsp; + if (jj_3R_282()) { + return true; } } - if (true) { - jj_la = 0; - jj_scanpos = jj_lastpos; - return false; - } return false; } - private boolean jj_3R_356() { - if (jj_3R_273()) { - return true; - } - if (jj_scan_token(COLON)) { - return true; - } - return false; - } - - private boolean jj_3R_280() { - if (jj_3R_297()) { + private boolean jj_3_7() { + if (jj_3R_178()) { return true; } return false; } - private boolean jj_3R_367() { + private boolean jj_3R_301() { if (jj_scan_token(STRING)) { return true; } return false; } - private boolean jj_3R_365() { + private boolean jj_3R_299() { if (jj_scan_token(STARMATCH)) { return true; } return false; } - private boolean jj_3R_366() { + private boolean jj_3R_300() { if (jj_scan_token(IDENT)) { return true; } return false; } - private boolean jj_3R_364() { + private boolean jj_3R_298() { if (jj_scan_token(DOLLARMATCH)) { return true; } return false; } - private boolean jj_3R_363() { + private boolean jj_3R_297() { if (jj_scan_token(CARETMATCH)) { return true; } return false; } - private boolean jj_3R_362() { + private boolean jj_3R_296() { if (jj_scan_token(DASHMATCH)) { return true; } return false; } - private boolean jj_3R_361() { + private boolean jj_3R_295() { if (jj_scan_token(INCLUDES)) { return true; } return false; } - private boolean jj_3R_357() { - if (jj_3R_356()) { - return true; - } - return false; - } - - private boolean jj_3R_303() { + private boolean jj_3R_267() { if (jj_scan_token(INTERPOLATION)) { return true; } return false; } - private boolean jj_3R_245() { - if (jj_3R_251()) { - return true; - } - return false; - } - - private boolean jj_3R_360() { + private boolean jj_3R_294() { if (jj_scan_token(EQ)) { return true; } return false; } - private boolean jj_3_9() { - if (jj_3R_172()) { + private boolean jj_3R_201() { + if (jj_scan_token(LBRACE)) { return true; } return false; } - private boolean jj_3R_165() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_9()) { - jj_scanpos = xsp; - if (jj_3_10()) { - jj_scanpos = xsp; - if (jj_3_11()) { - return true; - } - } - } - return false; - } - - private boolean jj_3R_349() { + private boolean jj_3R_287() { Token xsp; xsp = jj_scanpos; - if (jj_3R_360()) { + if (jj_3R_294()) { jj_scanpos = xsp; - if (jj_3R_361()) { + if (jj_3R_295()) { jj_scanpos = xsp; - if (jj_3R_362()) { + if (jj_3R_296()) { jj_scanpos = xsp; - if (jj_3R_363()) { + if (jj_3R_297()) { jj_scanpos = xsp; - if (jj_3R_364()) { + if (jj_3R_298()) { jj_scanpos = xsp; - if (jj_3R_365()) { + if (jj_3R_299()) { return true; } } @@ -7698,9 +7031,9 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } } xsp = jj_scanpos; - if (jj_3R_366()) { + if (jj_3R_300()) { jj_scanpos = xsp; - if (jj_3R_367()) { + if (jj_3R_301()) { return true; } } @@ -7714,13 +7047,6 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_279() { - if (jj_3R_174()) { - return true; - } - return false; - } - private boolean jj_3R_211() { if (jj_scan_token(LBRACKET)) { return true; @@ -7744,7 +7070,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } } xsp = jj_scanpos; - if (jj_3R_349()) { + if (jj_3R_287()) { jj_scanpos = xsp; } if (jj_scan_token(RBRACKET)) { @@ -7753,101 +7079,49 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_246() { - if (jj_3R_274()) { - return true; - } - if (jj_3R_275()) { - return true; - } - if (jj_scan_token(RPARAN)) { - return true; - } - return false; - } - - private boolean jj_3R_329() { - if (jj_scan_token(SEMICOLON)) { - return true; - } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } - xsp = jj_scanpos; - if (jj_3R_357()) { - jj_scanpos = xsp; - } - return false; - } - - private boolean jj_3R_359() { + private boolean jj_3R_293() { if (jj_scan_token(INTERPOLATION)) { return true; } return false; } - private boolean jj_3R_277() { - if (jj_scan_token(COMMA)) { - return true; - } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } - if (jj_3R_276()) { + private boolean jj_3R_200() { + if (jj_3R_182()) { return true; } return false; } - private boolean jj_3R_244() { - if (jj_3R_273()) { + private boolean jj_3R_248() { + if (jj_scan_token(PARENT)) { return true; } return false; } - private boolean jj_3R_264() { - if (jj_scan_token(PARENT)) { + private boolean jj_3R_247() { + if (jj_scan_token(ANY)) { return true; } return false; } - private boolean jj_3R_276() { - if (jj_scan_token(IDENT)) { + private boolean jj_3_6() { + if (jj_3R_177()) { return true; } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } + if (jj_scan_token(LBRACE)) { + return true; } return false; } - private boolean jj_3R_263() { - if (jj_scan_token(ANY)) { + private boolean jj_3R_178() { + if (jj_3R_199()) { return true; } - return false; - } - - private boolean jj_3R_200() { - if (jj_scan_token(INCLUDE_SYM)) { + if (jj_scan_token(COLON)) { return true; } Token xsp; @@ -7859,77 +7133,42 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } } xsp = jj_scanpos; - if (jj_3R_244()) { + if (jj_3R_200()) { jj_scanpos = xsp; - if (jj_3R_245()) { - jj_scanpos = xsp; - if (jj_3R_246()) { - return true; - } - } - } - if (jj_3R_247()) { - return true; - } - while (true) { - xsp = jj_scanpos; - if (jj_3R_247()) { - jj_scanpos = xsp; - break; + if (jj_3R_201()) { + return true; } } return false; } - private boolean jj_3R_302() { - if (jj_scan_token(IDENT)) { - return true; - } - return false; - } - - private boolean jj_3R_249() { + private boolean jj_3R_257() { Token xsp; xsp = jj_scanpos; - if (jj_3R_278()) { + if (jj_3R_266()) { jj_scanpos = xsp; - if (jj_3R_279()) { - jj_scanpos = xsp; - if (jj_3R_280()) { - return true; - } + if (jj_3R_267()) { + return true; } } return false; } - private boolean jj_3R_278() { - if (jj_3R_282()) { + private boolean jj_3R_266() { + if (jj_scan_token(IDENT)) { return true; } return false; } - private boolean jj_3R_287() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_302()) { - jj_scanpos = xsp; - if (jj_3R_303()) { - return true; - } - } - return false; - } - private boolean jj_3R_207() { Token xsp; xsp = jj_scanpos; - if (jj_3R_262()) { + if (jj_3R_246()) { jj_scanpos = xsp; - if (jj_3R_263()) { + if (jj_3R_247()) { jj_scanpos = xsp; - if (jj_3R_264()) { + if (jj_3R_248()) { return true; } } @@ -7937,14 +7176,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_262() { + private boolean jj_3R_246() { Token xsp; - if (jj_3R_287()) { + if (jj_3R_257()) { return true; } while (true) { xsp = jj_scanpos; - if (jj_3R_287()) { + if (jj_3R_257()) { jj_scanpos = xsp; break; } @@ -7952,7 +7191,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_296() { + private boolean jj_3R_175() { if (jj_scan_token(COMMA)) { return true; } @@ -7964,170 +7203,63 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { break; } } - if (jj_3R_176()) { - return true; - } - return false; - } - - private boolean jj_3R_248() { - if (jj_3R_276()) { - return true; - } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_277()) { - jj_scanpos = xsp; - break; - } - } return false; } - private boolean jj_3R_328() { - if (jj_3R_356()) { + private boolean jj_3R_291() { + if (jj_3R_210()) { return true; } return false; } private boolean jj_3R_275() { - if (jj_3R_176()) { - return true; - } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_295()) { - jj_scanpos = xsp; - break; - } - } - while (true) { - xsp = jj_scanpos; - if (jj_3R_296()) { - jj_scanpos = xsp; - break; - } - } - return false; - } - - private boolean jj_3R_170() { - 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_301() { - if (jj_scan_token(LBRACE)) { - return true; - } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } xsp = jj_scanpos; - if (jj_3R_328()) { + if (jj_3R_292()) { jj_scanpos = xsp; - } - while (true) { - xsp = jj_scanpos; - if (jj_3R_329()) { - jj_scanpos = xsp; - break; - } - } - if (jj_scan_token(RBRACE)) { - return true; - } - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; + if (jj_3R_293()) { + return true; } } return false; } - private boolean jj_3R_327() { - if (jj_3R_355()) { - return true; - } - return false; - } - - private boolean jj_3R_353() { - if (jj_3R_210()) { - return true; - } - return false; - } - - private boolean jj_3R_358() { + private boolean jj_3R_292() { if (jj_scan_token(IDENT)) { return true; } return false; } - private boolean jj_3R_337() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_358()) { - jj_scanpos = xsp; - if (jj_3R_359()) { - return true; - } - } - return false; - } - - private boolean jj_3R_256() { - if (jj_3R_283()) { + private boolean jj_3R_289() { + if (jj_3R_209()) { return true; } return false; } - private boolean jj_3R_351() { + private boolean jj_3R_284() { if (jj_3R_209()) { return true; } return false; } - private boolean jj_3R_348() { + private boolean jj_3R_286() { if (jj_3R_210()) { return true; } return false; } - private boolean jj_3R_346() { - if (jj_3R_209()) { - return true; + private boolean jj_3_5() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_175()) { + jj_scanpos = xsp; } - return false; - } - - private boolean jj_3R_336() { - if (jj_3R_210()) { + if (jj_3R_176()) { return true; } return false; @@ -8138,12 +7270,12 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return true; } Token xsp; - if (jj_3R_337()) { + if (jj_3R_275()) { return true; } while (true) { xsp = jj_scanpos; - if (jj_3R_337()) { + if (jj_3R_275()) { jj_scanpos = xsp; break; } @@ -8151,138 +7283,76 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3_8() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_170()) { - jj_scanpos = xsp; - } - if (jj_3R_171()) { - return true; - } - return false; - } - - private boolean jj_3R_341() { + private boolean jj_3R_274() { if (jj_3R_210()) { return true; } return false; } - private boolean jj_3R_339() { + private boolean jj_3R_277() { if (jj_3R_209()) { return true; } return false; } - private boolean jj_3R_300() { - if (jj_3R_252()) { + private boolean jj_3R_279() { + if (jj_3R_210()) { return true; } - Token xsp; - xsp = jj_scanpos; - if (jj_3R_327()) { - jj_scanpos = xsp; - } return false; } - private boolean jj_3R_201() { - if (jj_scan_token(MEDIA_SYM)) { - return true; - } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } - if (jj_3R_248()) { - return true; - } - if (jj_scan_token(LBRACE)) { - return true; - } - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } - while (true) { - xsp = jj_scanpos; - if (jj_3R_249()) { - jj_scanpos = xsp; - break; - } - } - if (jj_scan_token(RBRACE)) { + private boolean jj_3R_290() { + if (jj_3R_211()) { return true; } - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } return false; } - private boolean jj_3R_352() { - if (jj_3R_211()) { + private boolean jj_3R_260() { + if (jj_3R_182()) { return true; } return false; } - private boolean jj_3R_283() { - if (jj_3R_273()) { - return true; - } - if (jj_scan_token(COLON)) { - return true; - } + private boolean jj_3R_265() { Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } xsp = jj_scanpos; - if (jj_3R_300()) { + if (jj_3R_288()) { jj_scanpos = xsp; - if (jj_3R_301()) { - return true; + if (jj_3R_289()) { + jj_scanpos = xsp; + if (jj_3R_290()) { + jj_scanpos = xsp; + if (jj_3R_291()) { + return true; + } + } } } return false; } - private boolean jj_3R_350() { + private boolean jj_3R_288() { if (jj_3R_208()) { return true; } return false; } - private boolean jj_3R_308() { + private boolean jj_3R_264() { Token xsp; xsp = jj_scanpos; - if (jj_3R_350()) { + if (jj_3R_283()) { jj_scanpos = xsp; - if (jj_3R_351()) { + if (jj_3R_284()) { jj_scanpos = xsp; - if (jj_3R_352()) { + if (jj_3R_285()) { jj_scanpos = xsp; - if (jj_3R_353()) { + if (jj_3R_286()) { return true; } } @@ -8291,23 +7361,30 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_345() { + private boolean jj_3R_283() { if (jj_3R_208()) { return true; } return false; } - private boolean jj_3R_307() { + private boolean jj_3R_271() { + if (jj_3R_210()) { + return true; + } + return false; + } + + private boolean jj_3R_263() { Token xsp; xsp = jj_scanpos; - if (jj_3R_345()) { + if (jj_3R_276()) { jj_scanpos = xsp; - if (jj_3R_346()) { + if (jj_3R_277()) { jj_scanpos = xsp; - if (jj_3R_347()) { + if (jj_3R_278()) { jj_scanpos = xsp; - if (jj_3R_348()) { + if (jj_3R_279()) { return true; } } @@ -8316,117 +7393,93 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_333() { - if (jj_3R_210()) { + private boolean jj_3R_276() { + if (jj_3R_208()) { return true; } return false; } - private boolean jj_3R_255() { - if (jj_3R_282()) { + private boolean jj_3R_285() { + if (jj_3R_211()) { return true; } return false; } - private boolean jj_3R_347() { + private boolean jj_3R_273() { if (jj_3R_211()) { return true; } return false; } - private boolean jj_3R_338() { - if (jj_3R_208()) { + private boolean jj_3R_278() { + if (jj_3R_211()) { return true; } return false; } - private boolean jj_3R_306() { + private boolean jj_3R_262() { Token xsp; xsp = jj_scanpos; - if (jj_3R_338()) { + if (jj_3R_272()) { jj_scanpos = xsp; - if (jj_3R_339()) { + if (jj_3R_273()) { jj_scanpos = xsp; - if (jj_3R_340()) { - jj_scanpos = xsp; - if (jj_3R_341()) { - return true; - } + if (jj_3R_274()) { + return true; } } } return false; } - private boolean jj_3R_335() { - if (jj_3R_211()) { - return true; - } - return false; - } - - private boolean jj_3R_340() { - if (jj_3R_211()) { - return true; - } - return false; - } - - private boolean jj_3R_285() { - if (jj_scan_token(INTERPOLATION)) { + private boolean jj_3R_269() { + if (jj_3R_209()) { return true; } return false; } - private boolean jj_3R_334() { + private boolean jj_3R_272() { if (jj_3R_209()) { return true; } return false; } - private boolean jj_3R_331() { - if (jj_3R_209()) { + private boolean jj_3R_250() { + if (jj_scan_token(FUNCTION)) { return true; } - return false; - } - - private boolean jj_3R_305() { Token xsp; - xsp = jj_scanpos; - if (jj_3R_334()) { - jj_scanpos = xsp; - if (jj_3R_335()) { + while (true) { + xsp = jj_scanpos; + if (jj_scan_token(1)) { jj_scanpos = xsp; - if (jj_3R_336()) { - return true; - } + break; } } - return false; - } - - private boolean jj_3_2() { - if (jj_3R_166()) { + xsp = jj_scanpos; + if (jj_3R_260()) { + jj_scanpos = xsp; + } + if (jj_scan_token(RPARAN)) { return true; } return false; } - private boolean jj_3R_191() { + private boolean jj_3R_193() { if (jj_3R_211()) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_308()) { + if (jj_3R_265()) { jj_scanpos = xsp; break; } @@ -8434,21 +7487,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_182() { - if (jj_3R_205()) { - return true; - } - return false; - } - - private boolean jj_3R_190() { + private boolean jj_3R_192() { if (jj_3R_210()) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_307()) { + if (jj_3R_264()) { jj_scanpos = xsp; break; } @@ -8456,21 +7502,28 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_332() { + private boolean jj_3R_270() { if (jj_3R_211()) { return true; } return false; } - private boolean jj_3R_189() { + private boolean jj_3R_238() { + if (jj_3R_254()) { + return true; + } + return false; + } + + private boolean jj_3R_191() { if (jj_3R_209()) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_306()) { + if (jj_3R_263()) { jj_scanpos = xsp; break; } @@ -8478,46 +7531,28 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_258() { - if (jj_3R_286()) { + private boolean jj_3R_237() { + if (jj_3R_253()) { return true; } return false; } - private boolean jj_3R_330() { - if (jj_3R_208()) { + private boolean jj_3R_236() { + if (jj_3R_252()) { return true; } return false; } - private boolean jj_3R_304() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_330()) { - jj_scanpos = xsp; - if (jj_3R_331()) { - jj_scanpos = xsp; - if (jj_3R_332()) { - jj_scanpos = xsp; - if (jj_3R_333()) { - return true; - } - } - } - } - return false; - } - - private boolean jj_3R_188() { + private boolean jj_3R_190() { if (jj_3R_208()) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_305()) { + if (jj_3R_262()) { jj_scanpos = xsp; break; } @@ -8525,46 +7560,39 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_286() { + private boolean jj_3R_261() { Token xsp; xsp = jj_scanpos; - if (jj_scan_token(53)) { + if (jj_3R_268()) { jj_scanpos = xsp; - if (jj_scan_token(50)) { + if (jj_3R_269()) { jj_scanpos = xsp; - if (jj_scan_token(77)) { - return true; + if (jj_3R_270()) { + jj_scanpos = xsp; + if (jj_3R_271()) { + return true; + } } } } - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } - if (jj_scan_token(LBRACE)) { - return true; - } return false; } - private boolean jj_3_12() { - if (jj_3R_174()) { + private boolean jj_3R_268() { + if (jj_3R_208()) { return true; } return false; } - private boolean jj_3R_187() { + private boolean jj_3R_189() { if (jj_3R_207()) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_304()) { + if (jj_3R_261()) { jj_scanpos = xsp; break; } @@ -8572,18 +7600,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_168() { + private boolean jj_3R_173() { Token xsp; xsp = jj_scanpos; - if (jj_3R_187()) { + if (jj_3R_189()) { jj_scanpos = xsp; - if (jj_3R_188()) { + if (jj_3R_190()) { jj_scanpos = xsp; - if (jj_3R_189()) { + if (jj_3R_191()) { jj_scanpos = xsp; - if (jj_3R_190()) { + if (jj_3R_192()) { jj_scanpos = xsp; - if (jj_3R_191()) { + if (jj_3R_193()) { return true; } } @@ -8593,76 +7621,82 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_204() { + private boolean jj_3R_251() { + if (jj_scan_token(DOT)) { + return true; + } + return false; + } + + private boolean jj_3R_235() { Token xsp; xsp = jj_scanpos; - if (jj_3_12()) { + if (jj_3R_251()) { jj_scanpos = xsp; - if (jj_3R_255()) { - jj_scanpos = xsp; - if (jj_3R_256()) { - return true; - } - } + } + if (jj_scan_token(IDENT)) { + return true; } return false; } - private boolean jj_3_7() { - if (jj_3R_166()) { + private boolean jj_3_1() { + if (jj_3R_171()) { return true; } return false; } - private boolean jj_3R_290() { - if (jj_3R_252()) { + private boolean jj_3R_234() { + if (jj_scan_token(STRING)) { return true; } return false; } - private boolean jj_3R_257() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_284()) { - jj_scanpos = xsp; - if (jj_3R_285()) { - return true; - } + private boolean jj_3_2() { + if (jj_3R_172()) { + return true; + } + if (jj_3R_173()) { + return true; } return false; } - private boolean jj_3R_284() { - if (jj_scan_token(IDENT)) { + private boolean jj_3R_233() { + if (jj_3R_250()) { return true; } return false; } - private boolean jj_3R_205() { - if (jj_scan_token(KEY_FRAME_SYM)) { - return true; - } + private boolean jj_3R_196() { Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { + xsp = jj_scanpos; + if (jj_3R_234()) { + jj_scanpos = xsp; + if (jj_3R_235()) { jj_scanpos = xsp; - break; + if (jj_3R_236()) { + jj_scanpos = xsp; + if (jj_3R_237()) { + jj_scanpos = xsp; + if (jj_3R_238()) { + return true; + } + } + } } } - if (jj_3R_257()) { + return false; + } + + private boolean jj_3R_198() { + if (jj_scan_token(COMMA)) { return true; } - while (true) { - xsp = jj_scanpos; - if (jj_3R_257()) { - jj_scanpos = xsp; - break; - } - } + Token xsp; while (true) { xsp = jj_scanpos; if (jj_scan_token(1)) { @@ -8670,41 +7704,24 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { break; } } - if (jj_scan_token(LBRACE)) { + if (jj_3R_197()) { return true; } - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } - while (true) { - xsp = jj_scanpos; - if (jj_3R_258()) { - jj_scanpos = xsp; - break; - } - } - if (jj_scan_token(RBRACE)) { + return false; + } + + private boolean jj_3R_197() { + if (jj_3R_173()) { return true; } + Token xsp; while (true) { xsp = jj_scanpos; - if (jj_scan_token(1)) { + if (jj_3_2()) { jj_scanpos = xsp; break; } } - return false; - } - - private boolean jj_3R_266() { - if (jj_scan_token(FUNCTION)) { - return true; - } - Token xsp; while (true) { xsp = jj_scanpos; if (jj_scan_token(1)) { @@ -8712,300 +7729,187 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { break; } } - xsp = jj_scanpos; - if (jj_3R_290()) { - jj_scanpos = xsp; - } - if (jj_scan_token(RPARAN)) { - return true; - } return false; } - private boolean jj_3R_240() { - if (jj_3R_272()) { - return true; - } - return false; - } - - private boolean jj_3R_236() { - if (jj_3R_270()) { + private boolean jj_3R_232() { + if (jj_scan_token(DIMEN)) { return true; } return false; } - private boolean jj_3R_181() { - if (jj_3R_204()) { + private boolean jj_3R_231() { + if (jj_scan_token(KHZ)) { return true; } return false; } - private boolean jj_3R_235() { - if (jj_3R_269()) { + private boolean jj_3R_230() { + if (jj_scan_token(HZ)) { return true; } return false; } - private boolean jj_3R_234() { - if (jj_3R_268()) { + private boolean jj_3R_229() { + if (jj_scan_token(MS)) { return true; } return false; } - private boolean jj_3_4() { - if (jj_3R_167()) { - return true; - } - if (jj_3R_168()) { + private boolean jj_3R_228() { + if (jj_scan_token(SECOND)) { return true; } return false; } - private boolean jj_3R_238() { - if (jj_scan_token(COMMA)) { + private boolean jj_3R_177() { + if (jj_3R_197()) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_scan_token(1)) { + if (jj_3R_198()) { jj_scanpos = xsp; break; } } - if (jj_3R_237()) { - return true; - } return false; } - private boolean jj_3R_237() { - if (jj_3R_168()) { + private boolean jj_3R_227() { + if (jj_scan_token(GRAD)) { return true; } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3_4()) { - jj_scanpos = xsp; - break; - } - } - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } return false; } - private boolean jj_3R_180() { - if (jj_3R_203()) { + private boolean jj_3R_226() { + if (jj_scan_token(RAD)) { return true; } return false; } - private boolean jj_3R_239() { - if (jj_3R_271()) { + private boolean jj_3R_225() { + if (jj_scan_token(DEG)) { return true; } return false; } - private boolean jj_3R_250() { - if (jj_scan_token(SEMICOLON)) { + private boolean jj_3R_224() { + if (jj_scan_token(EXS)) { return true; } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } return false; } - private boolean jj_3R_202() { - if (jj_scan_token(EXTEND_SYM)) { - return true; - } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } - if (jj_3R_195()) { - return true; - } - if (jj_3R_250()) { + private boolean jj_3R_223() { + if (jj_scan_token(REM)) { return true; } - while (true) { - xsp = jj_scanpos; - if (jj_3R_250()) { - jj_scanpos = xsp; - break; - } - } return false; } - private boolean jj_3R_310() { - if (jj_scan_token(EACH_SYM)) { - return true; - } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } - if (jj_scan_token(VARIABLE)) { + private boolean jj_3_4() { + if (jj_3R_174()) { return true; } - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } - if (jj_scan_token(EACH_IN)) { + return false; + } + + private boolean jj_3R_222() { + if (jj_scan_token(LEM)) { return true; } return false; } - private boolean jj_3R_195() { - if (jj_3R_237()) { + private boolean jj_3R_221() { + if (jj_scan_token(EMS)) { return true; } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_238()) { - jj_scanpos = xsp; - break; - } - } return false; } - private boolean jj_3R_179() { - if (jj_3R_202()) { + private boolean jj_3R_220() { + if (jj_scan_token(PX)) { return true; } return false; } - private boolean jj_3R_267() { - if (jj_scan_token(DOT)) { + private boolean jj_3R_219() { + if (jj_scan_token(IN)) { return true; } return false; } - private boolean jj_3R_233() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_267()) { - jj_scanpos = xsp; - } - if (jj_scan_token(IDENT)) { + private boolean jj_3R_218() { + if (jj_scan_token(PC)) { return true; } return false; } - private boolean jj_3R_178() { - if (jj_3R_201()) { + private boolean jj_3R_256() { + if (jj_scan_token(INTERPOLATION)) { return true; } return false; } - private boolean jj_3R_232() { - if (jj_scan_token(STRING)) { + private boolean jj_3R_217() { + if (jj_scan_token(MM)) { return true; } return false; } - private boolean jj_3R_231() { - if (jj_3R_266()) { + private boolean jj_3R_216() { + if (jj_scan_token(CM)) { return true; } return false; } - private boolean jj_3R_194() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_232()) { - jj_scanpos = xsp; - if (jj_3R_233()) { - jj_scanpos = xsp; - if (jj_3R_234()) { - jj_scanpos = xsp; - if (jj_3R_235()) { - jj_scanpos = xsp; - if (jj_3R_236()) { - return true; - } - } - } - } + private boolean jj_3R_215() { + if (jj_scan_token(PT)) { + return true; } return false; } - private boolean jj_3R_196() { - Token xsp; - xsp = jj_scanpos; - if (jj_3_3()) { - jj_scanpos = xsp; - if (jj_3R_239()) { - jj_scanpos = xsp; - if (jj_3R_240()) { - return true; - } - } + private boolean jj_3R_214() { + if (jj_scan_token(PERCENTAGE)) { + return true; } return false; } - private boolean jj_3_3() { - if (jj_3R_166()) { + private boolean jj_3R_204() { + if (jj_3R_242()) { return true; } return false; } - private boolean jj_3_6() { - if (jj_3R_169()) { + private boolean jj_3_3() { + if (jj_3R_171()) { return true; } return false; } - private boolean jj_3_1() { - if (jj_3R_165()) { + private boolean jj_3R_213() { + if (jj_scan_token(NUMBER)) { return true; } return false; @@ -9021,7 +7925,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { private Token jj_scanpos, jj_lastpos; private int jj_la; private int jj_gen; - final private int[] jj_la1 = new int[241]; + final private int[] jj_la1 = new int[253]; static private int[] jj_la1_0; static private int[] jj_la1_1; static private int[] jj_la1_2; @@ -9035,55 +7939,57 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { private static void jj_la1_init_0() { jj_la1_0 = new int[] { 0x0, 0xc02, 0xc02, 0x0, 0xc00, 0x2, 0x2, 0x2, - 0xd0000000, 0xc00, 0x2, 0xc00, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2, - 0x0, 0x0, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2, 0xd0000000, 0x0, - 0x2, 0x2, 0x2, 0xd3f45400, 0xd3f45400, 0x2, 0x400000, 0x2, 0x2, - 0x2, 0x2, 0x0, 0x0, 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, 0x2, - 0x2, 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, 0x3f45400, 0x2, 0x2, - 0x2, 0x3100000, 0x2, 0x3100000, 0x3100002, 0x2, 0x480002, - 0x480002, 0x2, 0x0, 0x0, 0x2, 0x2, 0x2, 0x2, 0xd0000000, 0x0, - 0x2, 0x400000, 0x2, 0x2, 0x10000000, 0x10000000, 0x10000000, + 0xd0000000, 0x0, 0xc00, 0x2, 0xc00, 0x2, 0x0, 0x2, 0x0, 0x2, + 0x2, 0x0, 0x0, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2, 0xd0000000, + 0xd0000000, 0x2, 0x2, 0x2, 0xd3f45400, 0xd3f45400, 0x2, + 0x400000, 0x2, 0x2, 0x2, 0x2, 0x0, 0x0, 0x2, 0x0, 0x800000, + 0x2, 0x0, 0x2, 0x2, 0x2, 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, + 0x3f45400, 0x2, 0x2, 0x2, 0x3100000, 0x2, 0x3100000, 0x3100002, + 0x2, 0x480002, 0x480002, 0x2, 0x0, 0x0, 0x2, 0x2, 0x2, 0x2, + 0xd0000000, 0xd0000000, 0x2, 0x400000, 0x2, 0x2, 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000, - 0x10000000, 0x10000000, 0xd0000000, 0x0, 0x0, 0x0, 0x0, - 0xc0000000, 0x2, 0x2, 0xfc000, 0x2, 0x0, 0x2, 0xfc000, 0x0, - 0x2, 0x0, 0x2, 0x0, 0x2, 0x800000, 0x0, 0xd0000000, 0x4d380002, - 0x2, 0xd0000000, 0x2, 0x0, 0x2, 0x4d380002, 0x0, 0x2, - 0xd0000000, 0x2, 0x4d380002, 0x2, 0x2, 0x2, 0x0, 0x2, - 0xd0000000, 0x2, 0x2, 0x400000, 0x2, 0x2, 0x2, 0x2, 0x0, 0x2, - 0xd0000000, 0x0, 0x2, 0x400000, 0x2, 0x2, 0x2, 0x400000, 0x0, - 0x0, 0x300000, 0x2, 0x0, 0x400000, 0x2, 0x300000, 0x2, 0x0, - 0x2, 0x0, 0x2, 0x800000, 0x2, 0x2, 0x2, 0x2, 0x2, 0x0, 0x2, - 0x2, 0x2, 0x400000, 0x2, 0x2, 0x2, 0x0, 0x2, 0x2, 0x2, - 0x400000, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2, 0x2, 0x400000, - 0x0, 0x2, 0x2, 0x0, 0x2, 0x2, 0x2, 0x800000, 0x2, 0x2, 0x0, - 0x800000, 0x2, 0x0, 0x2, 0x0, 0x2, 0x0, 0x2, 0x0, 0x800000, - 0x2, 0x0, 0x2, 0x301000, 0x2, 0x0, 0x2, 0x2, 0x2, 0x2, - 0x8400000, 0x8400000, 0x300000, 0x300000, 0x300000, 0x0, 0x0, - 0x0, 0x300000, 0x2, 0x2, 0x300000, 0x2, 0xd0000000, 0x2, 0x2, - 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, }; + 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0xd0000000, + 0x0, 0x0, 0x0, 0x0, 0xc0000000, 0x2, 0x2, 0xfc000, 0x2, 0x0, + 0x2, 0xfc000, 0x0, 0x2, 0x0, 0x2, 0x0, 0x2, 0x800000, 0x0, + 0xd0000000, 0x0, 0x4d380002, 0x2, 0xd0000000, 0x2, 0x0, 0x2, + 0x4d380002, 0x0, 0x2, 0xd0000000, 0x2, 0x4d380002, 0x2, 0x2, + 0x2, 0x0, 0x2, 0xd0000000, 0x2, 0x2, 0x400000, 0x2, 0x2, 0x2, + 0x2, 0x0, 0x2, 0xd0000000, 0xd0000000, 0x2, 0x400000, 0x2, 0x2, + 0x2, 0x400000, 0x0, 0x0, 0x300000, 0x2, 0x0, 0x400000, 0x2, + 0x300000, 0x2, 0x0, 0x2, 0x0, 0x2, 0x800000, 0x2, 0x2, 0x0, + 0x2, 0x0, 0x2, 0x2, 0x2, 0x400000, 0x2, 0x2, 0x2, 0x2, 0x2, + 0x0, 0x2, 0x2, 0x2, 0x400000, 0x2, 0x2, 0x2, 0x0, 0x2, 0x2, + 0x2, 0x400000, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2, 0x2, + 0x400000, 0x0, 0x2, 0x2, 0x0, 0x2, 0x2, 0x2, 0x800000, 0x2, + 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, 0x0, 0xd0000000, 0x2, 0x0, + 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, 0x301000, 0x2, 0x0, 0x2, + 0x2, 0x2, 0x2, 0x8400000, 0x8400000, 0x300000, 0x300000, + 0x300000, 0x0, 0x0, 0x0, 0x300000, 0x2, 0x2, 0x300000, 0x2, + 0xd0000000, 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, - 0xacc00181, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, - 0x100, 0x0, 0x0, 0x240000, 0x0, 0x240000, 0x0, 0x0, 0xac800181, - 0xa0000000, 0x0, 0x0, 0x0, 0xc000381, 0xc000381, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, - 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x200, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x185, 0x185, 0x0, 0x100, 0x100, - 0x0, 0x0, 0x0, 0x0, 0xac800181, 0xa0000000, 0x0, 0x0, 0x0, 0x0, - 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, - 0x181, 0x100, 0x100, 0x100, 0x100, 0x100, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0000000, - 0xc800181, 0x7e, 0x0, 0xc800181, 0x0, 0x0, 0x0, 0x7e, 0x0, 0x0, - 0xc800181, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc800181, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0xac800181, - 0xa0000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x80, 0x81, - 0x0, 0x80, 0x0, 0x0, 0x81, 0x0, 0x80, 0x0, 0x100, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, - 0x0, 0x0, 0x0, 0xc000000, 0x0, 0x0, 0xc0000, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0xc000100, 0x0, + 0xacc00181, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x100, 0x100, 0x0, 0x0, 0x240000, 0x0, 0x240000, 0x0, 0x0, + 0xac800181, 0xac800181, 0x0, 0x0, 0x0, 0xc000381, 0xc000381, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x100, 0x0, 0x0, + 0x100, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x200, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x185, 0x185, 0x0, + 0x100, 0x100, 0x0, 0x0, 0x0, 0x0, 0xac800181, 0xac800181, 0x0, + 0x0, 0x0, 0x0, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, + 0x81, 0x81, 0x181, 0x100, 0x100, 0x100, 0x100, 0x100, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xa0000000, 0xc800181, 0x0, 0x7e, 0x0, 0xc800181, 0x0, 0x0, + 0x0, 0x7e, 0x0, 0x0, 0xc800181, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x0, + 0x0, 0xc800181, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, + 0xac800181, 0xac800181, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, + 0x80, 0x81, 0x0, 0x80, 0x0, 0x0, 0x81, 0x0, 0x80, 0x0, 0x100, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, + 0x0, 0x0, 0xc000000, 0x0, 0x0, 0xc0000, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0xc000000, 0x181, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0xc000181, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, @@ -9091,59 +7997,60 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } private static void jj_la1_init_2() { - jj_la1_2 = new int[] { 0x0, 0x0, 0x0, 0x80000000, 0x0, 0x0, 0x0, 0x0, - 0x40001100, 0x0, 0x0, 0x0, 0x0, 0x880, 0x0, 0x100, 0x0, 0x0, - 0x100, 0x100, 0x0, 0x0, 0x2000, 0x0, 0x2000, 0x0, 0x0, - 0x40001112, 0x10, 0x0, 0x0, 0x0, 0xc0002b80, 0xc0002b80, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x0, - 0x100, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, - 0x80002a80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x380, - 0x380, 0x0, 0x100, 0x100, 0x0, 0x0, 0x0, 0x0, 0x40001112, 0x10, - 0x0, 0x0, 0x0, 0x0, 0x40000000, 0x40000000, 0x0, 0x0, - 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, - 0x40000000, 0x40000100, 0x100, 0x100, 0x100, 0x100, 0x100, 0x0, - 0x0, 0x0, 0x0, 0x180, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x40, - 0x0, 0x0, 0x0, 0x40001102, 0x1300, 0x0, 0x40001102, 0x0, 0x1, - 0x0, 0x1300, 0x20, 0x0, 0x40001102, 0x0, 0x1300, 0x0, 0x0, 0x0, - 0x1100, 0x0, 0x40001102, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x100, 0x0, 0x40001102, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x1000, 0x1000, 0x7ffffb80, 0x0, 0x0, 0x0, 0x0, 0x7ffffb80, - 0x0, 0x0, 0x0, 0x1100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + jj_la1_2 = new int[] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, + 0x1000, 0x0, 0x0, 0x0, 0x0, 0x880, 0x0, 0x100, 0x0, 0x0, 0x100, + 0x100, 0x0, 0x0, 0x2000, 0x0, 0x2000, 0x0, 0x0, 0x1112, 0x1112, + 0x0, 0x0, 0x0, 0x2b80, 0x2b80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x100, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, + 0x100, 0x0, 0x0, 0x100, 0x0, 0x2a80, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x380, 0x380, 0x0, 0x100, 0x100, 0x0, 0x0, 0x0, + 0x0, 0x1112, 0x1112, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x100, 0x100, 0x100, + 0x100, 0x100, 0x0, 0x0, 0x0, 0x0, 0x180, 0x0, 0x0, 0x0, 0x0, + 0x100, 0x0, 0x40, 0x0, 0x0, 0x0, 0x102, 0x1000, 0x1300, 0x0, + 0x1102, 0x0, 0x1, 0x0, 0x1300, 0x20, 0x0, 0x1102, 0x0, 0x1300, + 0x0, 0x0, 0x0, 0x1100, 0x0, 0x1102, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x100, 0x0, 0x1102, 0x1102, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1000, 0x1000, 0xfffffb80, 0x0, 0x0, 0x0, 0x0, + 0xfffffb80, 0x0, 0x0, 0x0, 0x1100, 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, 0x1000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, - 0x100, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x7ffffb80, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7ffffb80, 0x0, - 0x3fffe200, 0x0, 0x40000980, 0x7fffeb80, 0x0, 0x0, 0x7ffffb80, - 0x0, 0xc0000100, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, }; + 0x0, 0x100, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, + 0xfffffb80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xfffffb80, 0x0, 0xffffe200, 0x0, 0x980, 0xffffeb80, 0x0, 0x0, + 0xfffffb80, 0x0, 0x100, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, + 0x0, }; } private static void jj_la1_init_3() { - jj_la1_3 = new int[] { 0x2, 0x20, 0x20, 0x0, 0x20, 0x0, 0x0, 0x0, 0x1d, - 0x20, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80011, 0x0, 0x0, 0x0, 0x0, - 0x31006f, 0x31006f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x31006f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x100000, 0x100000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80011, + jj_la1_3 = new int[] { 0x8, 0x80, 0x80, 0x2, 0x80, 0x0, 0x0, 0x0, 0x75, + 0x0, 0x80, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x45, 0x45, 0x0, 0x0, 0x0, + 0xc401bf, 0xc401bf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xc401be, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x400000, 0x400000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x45, + 0x45, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, + 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x400000, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x45, 0x0, 0x200000, 0x0, 0x45, 0x0, 0x0, 0x0, 0x200000, + 0x0, 0x0, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x45, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x400000, 0x0, 0x75, 0x75, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x440001, 0x0, 0x0, 0x0, + 0x0, 0x440001, 0x0, 0x0, 0x0, 0x400000, 0x0, 0x0, 0x0, 0x0, + 0x380000, 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, 0x100000, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x11, 0x80000, 0x0, 0x80011, 0x0, 0x0, 0x0, 0x80000, 0x0, - 0x0, 0x80011, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80011, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100000, 0x0, 0x8001d, 0xc, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x110000, 0x0, 0x0, 0x0, - 0x0, 0x110000, 0x0, 0x0, 0x0, 0x100000, 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, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x110000, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x110000, 0x0, 0x100000, 0x0, 0x10000, 0x110000, 0x0, 0x0, - 0x110000, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, }; + 0x0, 0x0, 0x0, 0x1, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x440001, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x440001, 0x0, 0x400000, 0x0, 0x40001, 0x440001, 0x0, 0x0, + 0x440001, 0x0, 0x37, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, }; } - final private JJCalls[] jj_2_rtns = new JJCalls[13]; + final private JJCalls[] jj_2_rtns = new JJCalls[8]; private boolean jj_rescan = false; private int jj_gc = 0; @@ -9153,7 +8060,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 241; i++) { + for (int i = 0; i < 253; i++) { jj_la1[i] = -1; } for (int i = 0; i < jj_2_rtns.length; i++) { @@ -9167,7 +8074,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 241; i++) { + for (int i = 0; i < 253; i++) { jj_la1[i] = -1; } for (int i = 0; i < jj_2_rtns.length; i++) { @@ -9181,7 +8088,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 241; i++) { + for (int i = 0; i < 253; i++) { jj_la1[i] = -1; } for (int i = 0; i < jj_2_rtns.length; i++) { @@ -9195,7 +8102,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 241; i++) { + for (int i = 0; i < 253; i++) { jj_la1[i] = -1; } for (int i = 0; i < jj_2_rtns.length; i++) { @@ -9341,12 +8248,12 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { /** Generate ParseException. */ public ParseException generateParseException() { jj_expentries.clear(); - boolean[] la1tokens = new boolean[118]; + boolean[] la1tokens = new boolean[120]; if (jj_kind >= 0) { la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 241; i++) { + for (int i = 0; i < 253; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1 << j)) != 0) { @@ -9364,7 +8271,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } } } - for (int i = 0; i < 118; i++) { + for (int i = 0; i < 120; i++) { if (la1tokens[i]) { jj_expentry = new int[1]; jj_expentry[0] = i; @@ -9391,7 +8298,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { private void jj_rescan_token() { jj_rescan = true; - for (int i = 0; i < 13; i++) { + for (int i = 0; i < 8; i++) { try { JJCalls p = jj_2_rtns[i]; do { @@ -9423,21 +8330,6 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case 7: jj_3_8(); break; - 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; } } p = p.next; diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj index 1d689dec2c..a0bd883101 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj @@ -650,6 +650,8 @@ TOKEN : | < IN : <NUMBER> "in" > | < PX : <NUMBER> "px" > | < EMS : <NUMBER> "em" > + | < LEM : <NUMBER> "lem" > + | < REM : <NUMBER> "rem" > | < EXS : <NUMBER> "ex" > | < DEG : <NUMBER> "deg" > | < RAD : <NUMBER> "rad" > @@ -770,7 +772,8 @@ void afterImportDeclaration() : } { ( - ( LOOKAHEAD(5)listModifyDirective() | variable() | debuggingDirective() | mixinDirective() | controlDirective() | includeDirective() | styleRule() | media() | page() | fontFace() | keyframes() + ( debuggingDirective() | mixinDirective() | controlDirective() | includeDirective() | styleRule() | media() + | page() | fontFace() | keyframes() | LOOKAHEAD(variable()) variable() | listModifyDirective() | { l = getLocator(); } ret=skipStatement() { if ((ret == null) || (ret.length() == 0)) { @@ -872,7 +875,7 @@ void keyframeSelector(): start = true; documentHandler.startKeyframeSelector(n.image); } - ( LOOKAHEAD(5)ifContentStatement() | controlDirective() | microsoftExtension() )* + (ifContentStatement() | controlDirective() | microsoftExtension() )* <RBRACE> (<S>)* } catch (ThrowedParseException e) { @@ -1157,7 +1160,7 @@ void styleRule() : start = true; documentHandler.startSelector(l); } - ( LOOKAHEAD(5)ifContentStatement() | controlDirective() | microsoftExtension() )* + ( ifContentStatement() | controlDirective() | microsoftExtension() )* <RBRACE> (<S>)* } catch (ThrowedParseException e) { if (errorHandler != null) { @@ -1495,7 +1498,8 @@ void controlDirective() : void ifContentStatement() : {} { - LOOKAHEAD(5)listModifyDirective() | includeDirective() | media() | extendDirective() | variable() | styleRuleOrDeclarationOrNestedProperties() | keyframes() + includeDirective() | media() | extendDirective() | styleRuleOrDeclarationOrNestedProperties() + | keyframes() | LOOKAHEAD(variable()) variable() | listModifyDirective() } void ifDirective() : @@ -1541,7 +1545,7 @@ String booleanExpressionToken() : } { ( - LOOKAHEAD(2) + LOOKAHEAD(containsDirective()) s = containsDirective() |n = < VARIABLE > |n = < IDENT > @@ -1614,7 +1618,7 @@ void mixinDirective() : |(name = functionName() args = arglist()) <RPARAN> (<S>)*) <LBRACE> (<S>)* {documentHandler.startMixinDirective(name, args);} - ( LOOKAHEAD(5)ifContentStatement() | controlDirective() | fontFace() | page())* + ( ifContentStatement() | controlDirective() | fontFace() | page())* <RBRACE>(<S>)* {documentHandler.endMixinDirective(name, args);} } @@ -1711,9 +1715,41 @@ String interpolation() : void listModifyDirective() : { + String list = null; + String remove = null; + String separator = null; + String variable = null; + Token n = null; + Token type = null; } { -(LOOKAHEAD(5)removeDirective()|LOOKAHEAD(5)appendDirective()|LOOKAHEAD(5)containsDirective())(< S >)*< SEMICOLON >(<S>)* + //refactor, remove those 3 LOOKAHEAD(5). + n = < VARIABLE >{ variable = n.image; }(< S >)* ":" (< S >)* + (type = < APPEND> | type = <REMOVE> | type=<CONTAINS> )(< S >)* + (list = listModifyDirectiveArgs(0)) + (< RPARAN >)? < COMMA >(< S >)* + (remove = listModifyDirectiveArgs(1)) + ( < COMMA >(< S >)* n = < IDENT >{ separator = n.image; } (< S >)*)? + < RPARAN > + { + switch (type.kind) { + case APPEND: + documentHandler.appendDirective(variable,list,remove,separator); + break; + case REMOVE: + documentHandler.removeDirective(variable,list,remove,separator); + break; + case CONTAINS: + if(variable == null){ + variable = "$var_"+UUID.randomUUID(); + } + documentHandler.containsDirective(variable,list,remove,separator); + break; + default: + break; + } + } + (< S >)*< SEMICOLON >(<S>)* } @@ -1972,8 +2008,11 @@ void styleRuleOrDeclarationOrNestedProperties() : } { try { - // differentiate between the colon of a pseudo and the colon of nested properties and the colon of a simple property - (LOOKAHEAD(5) styleRule() | debuggingDirective() | declarationOrNestedProperties()) + // differentiate between the colon of a pseudo and the colon of nested properties and the colon of a simple property + // first check if it is a normal styleRule, if not check if it is declarationOrNestedProperties(), if still fails, most likely, it is + // is styleRule with pseudo selector with contains functions. have to do it in this way, because both the styleRule and declarationOrNestedProperties() + // have 'skipStatementUntilXXX', which cannot be LOOKAHEAD properly. + ( debuggingDirective() | LOOKAHEAD(selectorList()<LBRACE>) styleRule() | LOOKAHEAD(3)declarationOrNestedProperties() | styleRule()) } catch (JumpException e) { skipAfterExpression(); // reportWarningSkipText(getLocator(), skipAfterExpression()); @@ -2204,9 +2243,9 @@ LexicalUnitImpl nonVariableTerm(LexicalUnitImpl prev) :
{
LexicalUnitImpl result String s = ""; } { -( ( ( op=unaryOperator() )? - ( - n=<NUMBER> +( ( ( + op=unaryOperator() )? + (n=<NUMBER> { result = LexicalUnitImpl.createNumber(n.beginLine, n.beginColumn, prev, number(op, n, 0)); } | n=<PERCENTAGE> @@ -2233,6 +2272,12 @@ LexicalUnitImpl nonVariableTerm(LexicalUnitImpl prev) :
{
LexicalUnitImpl result | n=<EMS> { result = LexicalUnitImpl.createEMS(n.beginLine, n.beginColumn, prev, number(op, n, 2)); } + | n=<LEM> + { result = LexicalUnitImpl.createLEM(n.beginLine, n.beginColumn, + prev, number(op, n, 3)); } + | n=<REM> + { result = LexicalUnitImpl.createREM(n.beginLine, n.beginColumn, + prev, number(op, n, 3)); } | n=<EXS> { result = LexicalUnitImpl.createEXS(n.beginLine, n.beginColumn, prev, number(op, n, 2)); } @@ -2331,6 +2376,10 @@ LexicalUnitImpl function(char operator, LexicalUnitImpl prev) : String body = skipStatementUntilSemiColon(); return LexicalUnitImpl.createIdent(n.beginLine, n.beginColumn, null, "alpha("+body); + }else if("expression(".equals(fname)){ + String body = skipStatementUntilSemiColon(); + return LexicalUnitImpl.createIdent(n.beginLine, n.beginColumn, + null, "expression("+body); } } ( params=expr() )? ")" diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/ParserConstants.java b/theme-compiler/src/com/vaadin/sass/internal/parser/ParserConstants.java index ebe1f10cd4..c55a13265f 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/ParserConstants.java +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/ParserConstants.java @@ -181,71 +181,75 @@ public interface ParserConstants { /** RegularExpression Id. */ int EMS = 84; /** RegularExpression Id. */ - int EXS = 85; + int LEM = 85; /** RegularExpression Id. */ - int DEG = 86; + int REM = 86; /** RegularExpression Id. */ - int RAD = 87; + int EXS = 87; /** RegularExpression Id. */ - int GRAD = 88; + int DEG = 88; /** RegularExpression Id. */ - int MS = 89; + int RAD = 89; /** RegularExpression Id. */ - int SECOND = 90; + int GRAD = 90; /** RegularExpression Id. */ - int HZ = 91; + int MS = 91; /** RegularExpression Id. */ - int KHZ = 92; + int SECOND = 92; /** RegularExpression Id. */ - int DIMEN = 93; + int HZ = 93; /** RegularExpression Id. */ - int HASH = 94; + int KHZ = 94; /** RegularExpression Id. */ - int IMPORT_SYM = 95; + int DIMEN = 95; /** RegularExpression Id. */ - int MEDIA_SYM = 96; + int HASH = 96; /** RegularExpression Id. */ - int CHARSET_SYM = 97; + int IMPORT_SYM = 97; /** RegularExpression Id. */ - int PAGE_SYM = 98; + int MEDIA_SYM = 98; /** RegularExpression Id. */ - int FONT_FACE_SYM = 99; + int CHARSET_SYM = 99; /** RegularExpression Id. */ - int KEY_FRAME_SYM = 100; + int PAGE_SYM = 100; /** RegularExpression Id. */ - int ATKEYWORD = 101; + int FONT_FACE_SYM = 101; /** RegularExpression Id. */ - int IMPORTANT_SYM = 102; + int KEY_FRAME_SYM = 102; /** RegularExpression Id. */ - int RANGE0 = 103; + int ATKEYWORD = 103; /** RegularExpression Id. */ - int RANGE1 = 104; + int IMPORTANT_SYM = 104; /** RegularExpression Id. */ - int RANGE2 = 105; + int RANGE0 = 105; /** RegularExpression Id. */ - int RANGE3 = 106; + int RANGE1 = 106; /** RegularExpression Id. */ - int RANGE4 = 107; + int RANGE2 = 107; /** RegularExpression Id. */ - int RANGE5 = 108; + int RANGE3 = 108; /** RegularExpression Id. */ - int RANGE6 = 109; + int RANGE4 = 109; /** RegularExpression Id. */ - int RANGE = 110; + int RANGE5 = 110; /** RegularExpression Id. */ - int UNI = 111; + int RANGE6 = 111; /** RegularExpression Id. */ - int UNICODERANGE = 112; + int RANGE = 112; /** RegularExpression Id. */ - int REMOVE = 113; + int UNI = 113; /** RegularExpression Id. */ - int APPEND = 114; + int UNICODERANGE = 114; /** RegularExpression Id. */ - int CONTAINS = 115; + int REMOVE = 115; /** RegularExpression Id. */ - int FUNCTION = 116; + int APPEND = 116; /** RegularExpression Id. */ - int UNKNOWN = 117; + int CONTAINS = 117; + /** RegularExpression Id. */ + int FUNCTION = 118; + /** RegularExpression Id. */ + int UNKNOWN = 119; /** Lexical state. */ int DEFAULT = 0; @@ -273,12 +277,13 @@ public interface ParserConstants { "<MICROSOFT_RULE>", "\"if\"", "<GUARDED_SYM>", "<STRING>", "<IDENT>", "<NUMBER>", "<_URL>", "<URL>", "<VARIABLE>", "<PERCENTAGE>", "<PT>", "<MM>", "<CM>", "<PC>", "<IN>", "<PX>", - "<EMS>", "<EXS>", "<DEG>", "<RAD>", "<GRAD>", "<MS>", "<SECOND>", - "<HZ>", "<KHZ>", "<DIMEN>", "<HASH>", "\"@import\"", "\"@media\"", - "\"@charset\"", "\"@page\"", "\"@font-face\"", "<KEY_FRAME_SYM>", - "<ATKEYWORD>", "<IMPORTANT_SYM>", "<RANGE0>", "<RANGE1>", - "<RANGE2>", "<RANGE3>", "<RANGE4>", "<RANGE5>", "<RANGE6>", - "<RANGE>", "<UNI>", "<UNICODERANGE>", "<REMOVE>", "<APPEND>", - "<CONTAINS>", "<FUNCTION>", "<UNKNOWN>", }; + "<EMS>", "<LEM>", "<REM>", "<EXS>", "<DEG>", "<RAD>", "<GRAD>", + "<MS>", "<SECOND>", "<HZ>", "<KHZ>", "<DIMEN>", "<HASH>", + "\"@import\"", "\"@media\"", "\"@charset\"", "\"@page\"", + "\"@font-face\"", "<KEY_FRAME_SYM>", "<ATKEYWORD>", + "<IMPORTANT_SYM>", "<RANGE0>", "<RANGE1>", "<RANGE2>", "<RANGE3>", + "<RANGE4>", "<RANGE5>", "<RANGE6>", "<RANGE>", "<UNI>", + "<UNICODERANGE>", "<REMOVE>", "<APPEND>", "<CONTAINS>", + "<FUNCTION>", "<UNKNOWN>", }; } diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java b/theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java index 6f0ae24631..e5116bdb49 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java @@ -1,18 +1,3 @@ -/* - * Copyright 2000-2013 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. - */ /* Generated By:JavaCC: Do not edit this line. ParserTokenManager.java */ package com.vaadin.sass.internal.parser; @@ -33,13 +18,10 @@ public class ParserTokenManager implements ParserConstants { case 0: if ((active0 & 0x1c000000000000L) != 0L || (active1 & 0x20L) != 0L) { jjmatchedKind = 72; - return 503; + return 517; } if ((active0 & 0x4000000000L) != 0L) { - return 504; - } - if ((active0 & 0x100000000L) != 0L) { - return 505; + return 518; } if ((active0 & 0x10000L) != 0L) { return 79; @@ -55,187 +37,190 @@ public class ParserTokenManager implements ParserConstants { return 3; } if ((active0 & 0xffc0000000000000L) != 0L - || (active1 & 0xf8000000fL) != 0L) { + || (active1 & 0x3e0000000fL) != 0L) { return 166; } + if ((active0 & 0x100000000L) != 0L) { + return 519; + } return -1; case 1: - if ((active0 & 0xffc0000000000000L) != 0L - || (active1 & 0xf8000000bL) != 0L) { - jjmatchedKind = 101; - jjmatchedPos = 1; - return 506; - } if ((active1 & 0x4L) != 0L) { return 178; } + if ((active0 & 0xffc0000000000000L) != 0L + || (active1 & 0x3e0000000bL) != 0L) { + jjmatchedKind = 103; + jjmatchedPos = 1; + return 520; + } if ((active0 & 0x40L) != 0L) { return 1; } if ((active0 & 0x28000000000000L) != 0L) { jjmatchedKind = 72; jjmatchedPos = 1; - return 503; + return 517; } if ((active0 & 0x14000000000000L) != 0L || (active1 & 0x20L) != 0L) { - return 503; + return 517; } return -1; case 2: if ((active0 & 0x7fc0000000000000L) != 0L - || (active1 & 0xf8000000bL) != 0L) { - jjmatchedKind = 101; + || (active1 & 0x3e0000000bL) != 0L) { + jjmatchedKind = 103; jjmatchedPos = 2; - return 506; + return 520; } if ((active0 & 0x8000000000000000L) != 0L) { - return 506; + return 520; } if ((active0 & 0x28000000000000L) != 0L) { jjmatchedKind = 72; jjmatchedPos = 2; - return 503; + return 517; } if ((active1 & 0x4L) != 0L) { - jjmatchedKind = 101; + jjmatchedKind = 103; jjmatchedPos = 2; return 177; } return -1; case 3: - if ((active0 & 0x1000000000000000L) != 0L) { - return 506; - } if ((active0 & 0x6fc0000000000000L) != 0L - || (active1 & 0xf8000000bL) != 0L) { - jjmatchedKind = 101; + || (active1 & 0x3e0000000bL) != 0L) { + jjmatchedKind = 103; jjmatchedPos = 3; - return 506; + return 520; } - if ((active0 & 0x20000000000000L) != 0L) { - return 503; + if ((active0 & 0x1000000000000000L) != 0L) { + return 520; } if ((active1 & 0x4L) != 0L) { - jjmatchedKind = 101; + jjmatchedKind = 103; jjmatchedPos = 3; return 176; } + if ((active0 & 0x20000000000000L) != 0L) { + return 517; + } if ((active0 & 0x8000000000000L) != 0L) { jjmatchedKind = 72; jjmatchedPos = 3; - return 503; + return 517; } return -1; case 4: - if ((active0 & 0x8000000000000L) != 0L) { - jjmatchedKind = 72; - jjmatchedPos = 4; - return 503; - } if ((active1 & 0x4L) != 0L) { - jjmatchedKind = 101; + jjmatchedKind = 103; jjmatchedPos = 4; return 175; } + if ((active0 & 0x8000000000000L) != 0L) { + jjmatchedKind = 72; + jjmatchedPos = 4; + return 517; + } if ((active0 & 0x2800000000000000L) != 0L - || (active1 & 0x400000001L) != 0L) { - return 506; + || (active1 & 0x1000000001L) != 0L) { + return 520; } if ((active0 & 0x47c0000000000000L) != 0L - || (active1 & 0xb8000000aL) != 0L) { - jjmatchedKind = 101; + || (active1 & 0x2e0000000aL) != 0L) { + jjmatchedKind = 103; jjmatchedPos = 4; - return 506; + return 520; } return -1; case 5: + if ((active0 & 0x4440000000000000L) != 0L + || (active1 & 0x400000000L) != 0L) { + return 520; + } if ((active1 & 0x4L) != 0L) { - jjmatchedKind = 101; + jjmatchedKind = 103; jjmatchedPos = 5; return 174; } if ((active0 & 0x380000000000000L) != 0L - || (active1 & 0xa8000000aL) != 0L) { - jjmatchedKind = 101; + || (active1 & 0x2a0000000aL) != 0L) { + jjmatchedKind = 103; jjmatchedPos = 5; - return 506; - } - if ((active0 & 0x4440000000000000L) != 0L - || (active1 & 0x100000000L) != 0L) { - return 506; + return 520; } if ((active0 & 0x8000000000000L) != 0L) { jjmatchedKind = 72; jjmatchedPos = 5; - return 503; + return 517; } return -1; case 6: + if ((active0 & 0x200000000000000L) != 0L + || (active1 & 0x200000002L) != 0L) { + return 520; + } if ((active0 & 0x180000000000000L) != 0L - || (active1 & 0xa0000000cL) != 0L) { - jjmatchedKind = 101; + || (active1 & 0x280000000cL) != 0L) { + jjmatchedKind = 103; jjmatchedPos = 6; - return 506; - } - if ((active0 & 0x200000000000000L) != 0L - || (active1 & 0x80000002L) != 0L) { - return 506; + return 520; } if ((active0 & 0x8000000000000L) != 0L) { - return 503; + return 517; } return -1; case 7: if ((active0 & 0x100000000000000L) != 0L - || (active1 & 0x80000000cL) != 0L) { - jjmatchedKind = 101; + || (active1 & 0x200000000cL) != 0L) { + jjmatchedKind = 103; jjmatchedPos = 7; - return 506; + return 520; } if ((active0 & 0x80000000000000L) != 0L - || (active1 & 0x200000000L) != 0L) { - return 506; + || (active1 & 0x800000000L) != 0L) { + return 520; } return -1; case 8: - if ((active1 & 0x800000004L) != 0L) { - jjmatchedKind = 101; + if ((active1 & 0x2000000004L) != 0L) { + jjmatchedKind = 103; jjmatchedPos = 8; - return 506; + return 520; } if ((active0 & 0x100000000000000L) != 0L || (active1 & 0x8L) != 0L) { - return 506; + return 520; } return -1; case 9: - if ((active1 & 0x800000000L) != 0L) { - return 506; - } if ((active1 & 0x4L) != 0L) { - jjmatchedKind = 101; + jjmatchedKind = 103; jjmatchedPos = 9; - return 506; + return 520; + } + if ((active1 & 0x2000000000L) != 0L) { + return 520; } return -1; case 10: if ((active1 & 0x4L) != 0L) { - jjmatchedKind = 101; + jjmatchedKind = 103; jjmatchedPos = 10; - return 506; + return 520; } return -1; case 11: if ((active1 & 0x4L) != 0L) { - jjmatchedKind = 101; + jjmatchedKind = 103; jjmatchedPos = 11; - return 506; + return 520; } return -1; case 12: if ((active1 & 0x4L) != 0L) { - jjmatchedKind = 101; + jjmatchedKind = 103; jjmatchedPos = 12; - return 506; + return 520; } return -1; default: @@ -278,7 +263,7 @@ public class ParserTokenManager implements ParserConstants { jjmatchedKind = 21; return jjMoveStringLiteralDfa1_0(0x800L, 0x0L); case 46: - return jjStartNfaWithStates_0(0, 32, 505); + return jjStartNfaWithStates_0(0, 32, 519); case 47: jjmatchedKind = 27; return jjMoveStringLiteralDfa1_0(0x44L, 0x0L); @@ -295,7 +280,7 @@ public class ParserTokenManager implements ParserConstants { case 62: return jjStopAtPos(0, 24); case 64: - return jjMoveStringLiteralDfa1_0(0xffc0000000000000L, 0xf8000000fL); + return jjMoveStringLiteralDfa1_0(0xffc0000000000000L, 0x3e0000000fL); case 91: return jjStopAtPos(0, 28); case 93: @@ -371,7 +356,7 @@ public class ParserTokenManager implements ParserConstants { break; case 67: case 99: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x200000000L); + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x800000000L); case 68: case 100: return jjMoveStringLiteralDfa2_0(active0, 0x400000000000000L, @@ -383,10 +368,10 @@ public class ParserTokenManager implements ParserConstants { case 70: case 102: if ((active1 & 0x20L) != 0L) { - return jjStartNfaWithStates_0(1, 69, 503); + return jjStartNfaWithStates_0(1, 69, 517); } return jjMoveStringLiteralDfa2_0(active0, 0x1100000000000000L, - active1, 0x800000000L); + active1, 0x2000000000L); case 72: case 104: return jjMoveStringLiteralDfa2_0(active0, 0x8000000000000L, @@ -394,26 +379,27 @@ public class ParserTokenManager implements ParserConstants { case 73: case 105: return jjMoveStringLiteralDfa2_0(active0, 0x8080000000000000L, - active1, 0x80000000L); + active1, 0x200000000L); case 77: case 109: return jjMoveStringLiteralDfa2_0(active0, 0x40000000000000L, - active1, 0x100000000L); + active1, 0x400000000L); case 78: case 110: if ((active0 & 0x10000000000000L) != 0L) { - return jjStartNfaWithStates_0(1, 52, 503); + return jjStartNfaWithStates_0(1, 52, 517); } break; case 79: case 111: if ((active0 & 0x4000000000000L) != 0L) { - return jjStartNfaWithStates_0(1, 50, 503); + return jjStartNfaWithStates_0(1, 50, 517); } break; case 80: case 112: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x400000000L); + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, + 0x1000000000L); case 82: case 114: return jjMoveStringLiteralDfa2_0(active0, 0x220000000000000L, @@ -458,21 +444,21 @@ public class ParserTokenManager implements ParserConstants { case 65: case 97: return jjMoveStringLiteralDfa3_0(active0, 0x2800000000000000L, - active1, 0x400000000L); + active1, 0x1000000000L); case 69: case 101: return jjMoveStringLiteralDfa3_0(active0, 0x600000000000000L, - active1, 0x100000000L); + active1, 0x400000000L); case 70: case 102: if ((active0 & 0x8000000000000000L) != 0L) { - return jjStartNfaWithStates_0(2, 63, 506); + return jjStartNfaWithStates_0(2, 63, 520); } break; case 72: case 104: return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000000L, - active1, 0x200000000L); + active1, 0x800000000L); case 73: case 105: return jjMoveStringLiteralDfa3_0(active0, 0x40000000000000L, @@ -482,7 +468,7 @@ public class ParserTokenManager implements ParserConstants { return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x1L); case 77: case 109: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x80000004L); + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x200000004L); case 78: case 110: return jjMoveStringLiteralDfa3_0(active0, 0x80000000000000L, @@ -490,7 +476,7 @@ public class ParserTokenManager implements ParserConstants { case 79: case 111: return jjMoveStringLiteralDfa3_0(active0, 0x1020000000000000L, - active1, 0x800000000L); + active1, 0x2000000000L); case 82: case 114: return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000L, @@ -527,7 +513,7 @@ public class ParserTokenManager implements ParserConstants { break; case 65: case 97: - return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x200000000L); + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800000000L); case 66: case 98: return jjMoveStringLiteralDfa4_0(active0, 0x400000000000000L, @@ -538,10 +524,11 @@ public class ParserTokenManager implements ParserConstants { active1, 0L); case 68: case 100: - return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x100000000L); + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x400000000L); case 71: case 103: - return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x400000000L); + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, + 0x1000000000L); case 73: case 105: return jjMoveStringLiteralDfa4_0(active0, 0x4000000000000000L, @@ -549,24 +536,24 @@ public class ParserTokenManager implements ParserConstants { case 77: case 109: if ((active0 & 0x20000000000000L) != 0L) { - return jjStartNfaWithStates_0(3, 53, 503); + return jjStartNfaWithStates_0(3, 53, 517); } break; case 78: case 110: return jjMoveStringLiteralDfa4_0(active0, 0x100000000000000L, - active1, 0x800000000L); + active1, 0x2000000000L); case 79: case 111: return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000L, active1, 0x4L); case 80: case 112: - return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x80000008L); + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x200000008L); case 82: case 114: if ((active0 & 0x1000000000000000L) != 0L) { - return jjStartNfaWithStates_0(3, 60, 506); + return jjStartNfaWithStates_0(3, 60, 520); } return jjMoveStringLiteralDfa4_0(active0, 0x800000000000000L, active1, 0L); @@ -606,21 +593,21 @@ public class ParserTokenManager implements ParserConstants { case 69: case 101: if ((active1 & 0x1L) != 0L) { - return jjStartNfaWithStates_0(4, 64, 506); - } else if ((active1 & 0x400000000L) != 0L) { - return jjStartNfaWithStates_0(4, 98, 506); + return jjStartNfaWithStates_0(4, 64, 520); + } else if ((active1 & 0x1000000000L) != 0L) { + return jjStartNfaWithStates_0(4, 100, 520); } return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x2L); case 72: case 104: if ((active0 & 0x2000000000000000L) != 0L) { - return jjStartNfaWithStates_0(4, 61, 506); + return jjStartNfaWithStates_0(4, 61, 520); } break; case 73: case 105: return jjMoveStringLiteralDfa5_0(active0, 0x40000000000000L, - active1, 0x100000000L); + active1, 0x400000000L); case 76: case 108: return jjMoveStringLiteralDfa5_0(active0, 0x4080000000000000L, @@ -628,21 +615,22 @@ public class ParserTokenManager implements ParserConstants { case 78: case 110: if ((active0 & 0x800000000000000L) != 0L) { - return jjStartNfaWithStates_0(4, 59, 506); + return jjStartNfaWithStates_0(4, 59, 520); } break; case 79: case 111: - return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x80000000L); + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x200000000L); case 80: case 112: return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8L); case 82: case 114: - return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x200000000L); + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x800000000L); case 84: case 116: - return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x800000000L); + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, + 0x2000000000L); case 85: case 117: return jjMoveStringLiteralDfa5_0(active0, 0x608000000000000L, @@ -669,30 +657,31 @@ public class ParserTokenManager implements ParserConstants { } switch (curChar) { case 45: - return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x800000004L); + return jjMoveStringLiteralDfa6_0(active0, 0L, active1, + 0x2000000004L); case 65: case 97: - if ((active1 & 0x100000000L) != 0L) { - return jjStartNfaWithStates_0(5, 96, 506); + if ((active1 & 0x400000000L) != 0L) { + return jjStartNfaWithStates_0(5, 98, 520); } break; case 69: case 101: if ((active0 & 0x4000000000000000L) != 0L) { - return jjStartNfaWithStates_0(5, 62, 506); + return jjStartNfaWithStates_0(5, 62, 520); } break; case 71: case 103: if ((active0 & 0x400000000000000L) != 0L) { - return jjStartNfaWithStates_0(5, 58, 506); + return jjStartNfaWithStates_0(5, 58, 520); } return jjMoveStringLiteralDfa6_0(active0, 0x8000000000000L, active1, 0L); case 78: case 110: if ((active0 & 0x40000000000000L) != 0L) { - return jjStartNfaWithStates_0(5, 54, 506); + return jjStartNfaWithStates_0(5, 54, 520); } return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x2L); case 79: @@ -701,10 +690,10 @@ public class ParserTokenManager implements ParserConstants { case 82: case 114: return jjMoveStringLiteralDfa6_0(active0, 0x200000000000000L, - active1, 0x80000000L); + active1, 0x200000000L); case 83: case 115: - return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x200000000L); + return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x800000000L); case 84: case 116: return jjMoveStringLiteralDfa6_0(active0, 0x100000000000000L, @@ -734,20 +723,21 @@ public class ParserTokenManager implements ParserConstants { case 68: case 100: if ((active1 & 0x2L) != 0L) { - return jjStartNfaWithStates_0(6, 65, 506); + return jjStartNfaWithStates_0(6, 65, 520); } return jjMoveStringLiteralDfa7_0(active0, 0x80000000000000L, active1, 0x4L); case 69: case 101: - return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x200000000L); + return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x800000000L); case 70: case 102: - return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x800000000L); + return jjMoveStringLiteralDfa7_0(active0, 0L, active1, + 0x2000000000L); case 72: case 104: if ((active0 & 0x8000000000000L) != 0L) { - return jjStartNfaWithStates_0(6, 51, 503); + return jjStartNfaWithStates_0(6, 51, 517); } break; case 73: @@ -757,7 +747,7 @@ public class ParserTokenManager implements ParserConstants { case 78: case 110: if ((active0 & 0x200000000000000L) != 0L) { - return jjStartNfaWithStates_0(6, 57, 506); + return jjStartNfaWithStates_0(6, 57, 520); } break; case 82: @@ -765,8 +755,8 @@ public class ParserTokenManager implements ParserConstants { return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x8L); case 84: case 116: - if ((active1 & 0x80000000L) != 0L) { - return jjStartNfaWithStates_0(6, 95, 506); + if ((active1 & 0x200000000L) != 0L) { + return jjStartNfaWithStates_0(6, 97, 520); } break; default: @@ -789,11 +779,12 @@ public class ParserTokenManager implements ParserConstants { switch (curChar) { case 65: case 97: - return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x800000000L); + return jjMoveStringLiteralDfa8_0(active0, 0L, active1, + 0x2000000000L); case 69: case 101: if ((active0 & 0x80000000000000L) != 0L) { - return jjStartNfaWithStates_0(7, 55, 506); + return jjStartNfaWithStates_0(7, 55, 520); } break; case 79: @@ -802,8 +793,8 @@ public class ParserTokenManager implements ParserConstants { active1, 0x4L); case 84: case 116: - if ((active1 & 0x200000000L) != 0L) { - return jjStartNfaWithStates_0(7, 97, 506); + if ((active1 & 0x800000000L) != 0L) { + return jjStartNfaWithStates_0(7, 99, 520); } return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x8L); default: @@ -826,17 +817,18 @@ public class ParserTokenManager implements ParserConstants { switch (curChar) { case 67: case 99: - return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x800000004L); + return jjMoveStringLiteralDfa9_0(active0, 0L, active1, + 0x2000000004L); case 78: case 110: if ((active0 & 0x100000000000000L) != 0L) { - return jjStartNfaWithStates_0(8, 56, 506); + return jjStartNfaWithStates_0(8, 56, 520); } break; case 83: case 115: if ((active1 & 0x8L) != 0L) { - return jjStartNfaWithStates_0(8, 67, 506); + return jjStartNfaWithStates_0(8, 67, 520); } break; default: @@ -859,8 +851,8 @@ public class ParserTokenManager implements ParserConstants { switch (curChar) { case 69: case 101: - if ((active1 & 0x800000000L) != 0L) { - return jjStartNfaWithStates_0(9, 99, 506); + if ((active1 & 0x2000000000L) != 0L) { + return jjStartNfaWithStates_0(9, 101, 520); } break; case 85: @@ -946,7 +938,7 @@ public class ParserTokenManager implements ParserConstants { case 84: case 116: if ((active1 & 0x4L) != 0L) { - return jjStartNfaWithStates_0(13, 66, 506); + return jjStartNfaWithStates_0(13, 66, 520); } break; default: @@ -971,7 +963,7 @@ public class ParserTokenManager implements ParserConstants { private int jjMoveNfa_0(int startState, int curPos) { int startsAt = 0; - jjnewStateCnt = 503; + jjnewStateCnt = 517; int i = 1; jjstateSet[0] = startState; int kind = 0x7fffffff; @@ -983,13 +975,13 @@ public class ParserTokenManager implements ParserConstants { long l = 1L << curChar; do { switch (jjstateSet[--i]) { - case 506: + case 520: case 113: if ((0x3ff200000000000L & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); break; @@ -1014,61 +1006,36 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff200000000000L & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); break; - case 504: - if ((0x100003600L & l) != 0L) { - jjCheckNAddTwoStates(251, 260); - } - if ((0x100003600L & l) != 0L) { - jjCheckNAddTwoStates(243, 250); - } - break; - case 503: - if ((0x3ff200000000000L & l) != 0L) { - jjCheckNAddStates(0, 3); - } else if ((0x100003600L & l) != 0L) { - jjCheckNAddTwoStates(231, 232); - } else if (curChar == 40) { - if (kind > 116) { - kind = 116; - } - } - if ((0x3ff200000000000L & l) != 0L) { - if (kind > 72) { - kind = 72; - } - jjCheckNAddTwoStates(220, 221); - } - break; case 4: if ((0x3ff000000000000L & l) != 0L) { if (kind > 73) { kind = 73; } - jjCheckNAddStates(4, 77); + jjCheckNAddStates(0, 81); } else if ((0x100003600L & l) != 0L) { if (kind > 1) { kind = 1; } jjCheckNAdd(0); } else if (curChar == 46) { - jjCheckNAddStates(78, 95); + jjCheckNAddStates(82, 101); } else if (curChar == 45) { - jjAddStates(96, 97); + jjAddStates(102, 103); } else if (curChar == 33) { - jjCheckNAddStates(98, 101); + jjCheckNAddStates(104, 107); } else if (curChar == 35) { jjCheckNAddTwoStates(100, 101); } else if (curChar == 36) { - jjCheckNAddStates(102, 105); + jjCheckNAddStates(108, 111); } else if (curChar == 39) { - jjCheckNAddStates(106, 109); + jjCheckNAddStates(112, 115); } else if (curChar == 34) { - jjCheckNAddStates(110, 113); + jjCheckNAddStates(116, 119); } else if (curChar == 47) { jjstateSet[jjnewStateCnt++] = 3; } @@ -1078,10 +1045,35 @@ public class ParserTokenManager implements ParserConstants { jjstateSet[jjnewStateCnt++] = 5; } break; + case 518: + if ((0x100003600L & l) != 0L) { + jjCheckNAddTwoStates(251, 260); + } + if ((0x100003600L & l) != 0L) { + jjCheckNAddTwoStates(243, 250); + } + break; + case 517: + if ((0x3ff200000000000L & l) != 0L) { + jjCheckNAddStates(120, 123); + } else if ((0x100003600L & l) != 0L) { + jjCheckNAddTwoStates(231, 232); + } else if (curChar == 40) { + if (kind > 118) { + kind = 118; + } + } + if ((0x3ff200000000000L & l) != 0L) { + if (kind > 72) { + kind = 72; + } + jjCheckNAddTwoStates(220, 221); + } + break; case 175: if ((0x3ff200000000000L & l) != 0L) { - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); } @@ -1091,12 +1083,12 @@ public class ParserTokenManager implements ParserConstants { break; case 33: if ((0x3ff200000000000L & l) != 0L) { - jjCheckNAddStates(0, 3); + jjCheckNAddStates(120, 123); } else if ((0x100003600L & l) != 0L) { jjCheckNAddTwoStates(231, 232); } else if (curChar == 40) { - if (kind > 116) { - kind = 116; + if (kind > 118) { + kind = 118; } } if ((0x3ff200000000000L & l) != 0L) { @@ -1106,33 +1098,48 @@ public class ParserTokenManager implements ParserConstants { jjCheckNAddTwoStates(220, 221); } break; - case 505: + case 176: + if ((0x3ff200000000000L & l) == 0L) { + break; + } + if (kind > 103) { + kind = 103; + } + jjCheckNAddTwoStates(113, 114); + break; + case 519: + if ((0x3ff000000000000L & l) != 0L) { + jjCheckNAddStates(124, 128); + } + if ((0x3ff000000000000L & l) != 0L) { + jjCheckNAddTwoStates(322, 325); + } if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(114, 118); + jjCheckNAddTwoStates(319, 321); } if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(314, 317); + jjCheckNAddTwoStates(317, 318); } if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(311, 313); + jjCheckNAddTwoStates(314, 316); } if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(309, 310); + jjCheckNAddTwoStates(309, 313); } if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(306, 308); + jjCheckNAddTwoStates(305, 308); } if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(301, 305); + jjCheckNAddTwoStates(301, 304); } if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(297, 300); + jjCheckNAddTwoStates(298, 300); } if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(293, 296); + jjCheckNAddTwoStates(294, 297); } if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(290, 292); + jjCheckNAddTwoStates(290, 293); } if ((0x3ff000000000000L & l) != 0L) { jjCheckNAddTwoStates(287, 289); @@ -1165,21 +1172,12 @@ public class ParserTokenManager implements ParserConstants { jjCheckNAdd(266); } break; - case 176: - if ((0x3ff200000000000L & l) == 0L) { - break; - } - if (kind > 101) { - kind = 101; - } - jjCheckNAddTwoStates(113, 114); - break; case 177: if ((0x3ff200000000000L & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); break; @@ -1214,7 +1212,7 @@ public class ParserTokenManager implements ParserConstants { break; case 6: if (curChar == 36) { - jjCheckNAddStates(119, 122); + jjCheckNAddStates(129, 132); } break; case 7: @@ -1224,77 +1222,77 @@ public class ParserTokenManager implements ParserConstants { break; case 9: if ((0x3ff200000000000L & l) != 0L) { - jjCheckNAddStates(123, 125); + jjCheckNAddStates(133, 135); } break; case 12: if ((0xffffffff00000000L & l) != 0L) { - jjCheckNAddStates(123, 125); + jjCheckNAddStates(133, 135); } break; case 13: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(126, 130); + jjCheckNAddStates(136, 140); } break; case 14: if ((0x100003600L & l) != 0L) { - jjCheckNAddStates(123, 125); + jjCheckNAddStates(133, 135); } break; case 15: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(131, 138); + jjCheckNAddStates(141, 148); } break; case 16: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(139, 142); + jjCheckNAddStates(149, 152); } break; case 17: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(143, 147); + jjCheckNAddStates(153, 157); } break; case 18: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(148, 153); + jjCheckNAddStates(158, 163); } break; case 19: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(154, 160); + jjCheckNAddStates(164, 170); } break; case 22: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(161, 165); + jjCheckNAddStates(171, 175); } break; case 23: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(166, 173); + jjCheckNAddStates(176, 183); } break; case 24: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(174, 177); + jjCheckNAddStates(184, 187); } break; case 25: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(178, 182); + jjCheckNAddStates(188, 192); } break; case 26: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(183, 188); + jjCheckNAddStates(193, 198); } break; case 27: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(189, 195); + jjCheckNAddStates(199, 205); } break; case 28: @@ -1314,12 +1312,12 @@ public class ParserTokenManager implements ParserConstants { break; case 44: if (curChar == 34) { - jjCheckNAddStates(110, 113); + jjCheckNAddStates(116, 119); } break; case 45: if ((0xfffffffb00000200L & l) != 0L) { - jjCheckNAddStates(110, 113); + jjCheckNAddStates(116, 119); } break; case 46: @@ -1329,57 +1327,57 @@ public class ParserTokenManager implements ParserConstants { break; case 48: if (curChar == 12) { - jjCheckNAddStates(110, 113); + jjCheckNAddStates(116, 119); } break; case 50: if ((0xffffffff00000000L & l) != 0L) { - jjCheckNAddStates(110, 113); + jjCheckNAddStates(116, 119); } break; case 51: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(196, 201); + jjCheckNAddStates(206, 211); } break; case 52: if ((0x100003600L & l) != 0L) { - jjCheckNAddStates(110, 113); + jjCheckNAddStates(116, 119); } break; case 53: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(202, 210); + jjCheckNAddStates(212, 220); } break; case 54: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(211, 215); + jjCheckNAddStates(221, 225); } break; case 55: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(216, 221); + jjCheckNAddStates(226, 231); } break; case 56: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(222, 228); + jjCheckNAddStates(232, 238); } break; case 57: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(229, 236); + jjCheckNAddStates(239, 246); } break; case 58: if (curChar == 13) { - jjCheckNAddStates(110, 113); + jjCheckNAddStates(116, 119); } break; case 59: if (curChar == 10) { - jjCheckNAddStates(110, 113); + jjCheckNAddStates(116, 119); } break; case 60: @@ -1389,12 +1387,12 @@ public class ParserTokenManager implements ParserConstants { break; case 61: if (curChar == 39) { - jjCheckNAddStates(106, 109); + jjCheckNAddStates(112, 115); } break; case 62: if ((0xffffff7f00000200L & l) != 0L) { - jjCheckNAddStates(106, 109); + jjCheckNAddStates(112, 115); } break; case 63: @@ -1404,57 +1402,57 @@ public class ParserTokenManager implements ParserConstants { break; case 65: if (curChar == 12) { - jjCheckNAddStates(106, 109); + jjCheckNAddStates(112, 115); } break; case 67: if ((0xffffffff00000000L & l) != 0L) { - jjCheckNAddStates(106, 109); + jjCheckNAddStates(112, 115); } break; case 68: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(237, 242); + jjCheckNAddStates(247, 252); } break; case 69: if ((0x100003600L & l) != 0L) { - jjCheckNAddStates(106, 109); + jjCheckNAddStates(112, 115); } break; case 70: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(243, 251); + jjCheckNAddStates(253, 261); } break; case 71: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(252, 256); + jjCheckNAddStates(262, 266); } break; case 72: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(257, 262); + jjCheckNAddStates(267, 272); } break; case 73: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(263, 269); + jjCheckNAddStates(273, 279); } break; case 74: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(270, 277); + jjCheckNAddStates(280, 287); } break; case 75: if (curChar == 13) { - jjCheckNAddStates(106, 109); + jjCheckNAddStates(112, 115); } break; case 76: if (curChar == 10) { - jjCheckNAddStates(106, 109); + jjCheckNAddStates(112, 115); } break; case 77: @@ -1464,7 +1462,7 @@ public class ParserTokenManager implements ParserConstants { break; case 78: if (curChar == 36) { - jjCheckNAddStates(102, 105); + jjCheckNAddStates(108, 111); } break; case 81: @@ -1492,7 +1490,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(278, 281); + jjCheckNAddStates(288, 291); break; case 85: if ((0x100003600L & l) == 0L) { @@ -1510,7 +1508,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(282, 288); + jjCheckNAddStates(292, 298); break; case 87: if ((0x3ff000000000000L & l) == 0L) { @@ -1519,7 +1517,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(289, 291); + jjCheckNAddStates(299, 301); break; case 88: if ((0x3ff000000000000L & l) == 0L) { @@ -1528,7 +1526,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(292, 295); + jjCheckNAddStates(302, 305); break; case 89: if ((0x3ff000000000000L & l) == 0L) { @@ -1537,7 +1535,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(296, 300); + jjCheckNAddStates(306, 310); break; case 90: if ((0x3ff000000000000L & l) == 0L) { @@ -1546,7 +1544,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(301, 306); + jjCheckNAddStates(311, 316); break; case 93: if ((0x3ff000000000000L & l) == 0L) { @@ -1555,7 +1553,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(307, 310); + jjCheckNAddStates(317, 320); break; case 94: if ((0x3ff000000000000L & l) == 0L) { @@ -1564,7 +1562,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(311, 317); + jjCheckNAddStates(321, 327); break; case 95: if ((0x3ff000000000000L & l) == 0L) { @@ -1573,7 +1571,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(318, 320); + jjCheckNAddStates(328, 330); break; case 96: if ((0x3ff000000000000L & l) == 0L) { @@ -1582,7 +1580,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(321, 324); + jjCheckNAddStates(331, 334); break; case 97: if ((0x3ff000000000000L & l) == 0L) { @@ -1591,7 +1589,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(325, 329); + jjCheckNAddStates(335, 339); break; case 98: if ((0x3ff000000000000L & l) == 0L) { @@ -1600,7 +1598,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(330, 335); + jjCheckNAddStates(340, 345); break; case 99: if (curChar == 35) { @@ -1611,8 +1609,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff200000000000L & l) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } jjCheckNAddTwoStates(100, 101); break; @@ -1620,8 +1618,8 @@ public class ParserTokenManager implements ParserConstants { if ((0xffffffff00000000L & l) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } jjCheckNAddTwoStates(100, 101); break; @@ -1629,17 +1627,17 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } - jjCheckNAddStates(336, 339); + jjCheckNAddStates(346, 349); break; case 104: if ((0x100003600L & l) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } jjCheckNAddTwoStates(100, 101); break; @@ -1647,46 +1645,46 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } - jjCheckNAddStates(340, 346); + jjCheckNAddStates(350, 356); break; case 106: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } - jjCheckNAddStates(347, 349); + jjCheckNAddStates(357, 359); break; case 107: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } - jjCheckNAddStates(350, 353); + jjCheckNAddStates(360, 363); break; case 108: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } - jjCheckNAddStates(354, 358); + jjCheckNAddStates(364, 368); break; case 109: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } - jjCheckNAddStates(359, 364); + jjCheckNAddStates(369, 374); break; case 111: if (curChar == 45) { @@ -1697,8 +1695,8 @@ public class ParserTokenManager implements ParserConstants { if ((0xffffffff00000000L & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); break; @@ -1706,17 +1704,17 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(365, 368); + jjCheckNAddStates(375, 378); break; case 117: if ((0x100003600L & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); break; @@ -1724,129 +1722,129 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(369, 375); + jjCheckNAddStates(379, 385); break; case 119: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(376, 378); + jjCheckNAddStates(386, 388); break; case 120: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(379, 382); + jjCheckNAddStates(389, 392); break; case 121: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(383, 387); + jjCheckNAddStates(393, 397); break; case 122: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(388, 393); + jjCheckNAddStates(398, 403); break; case 125: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(394, 397); + jjCheckNAddStates(404, 407); break; case 126: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(398, 404); + jjCheckNAddStates(408, 414); break; case 127: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(405, 407); + jjCheckNAddStates(415, 417); break; case 128: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(408, 411); + jjCheckNAddStates(418, 421); break; case 129: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(412, 416); + jjCheckNAddStates(422, 426); break; case 130: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(417, 422); + jjCheckNAddStates(427, 432); break; case 132: if ((0x100003600L & l) != 0L) { - jjAddStates(423, 424); + jjAddStates(433, 434); } break; case 133: - if (curChar == 40 && kind > 113) { - kind = 113; + if (curChar == 40 && kind > 115) { + kind = 115; } break; case 140: if ((0x100003600L & l) != 0L) { - jjAddStates(425, 426); + jjAddStates(435, 436); } break; case 141: - if (curChar == 40 && kind > 114) { - kind = 114; + if (curChar == 40 && kind > 116) { + kind = 116; } break; case 148: if ((0x100003600L & l) != 0L) { - jjAddStates(427, 428); + jjAddStates(437, 438); } break; case 149: - if (curChar == 40 && kind > 115) { - kind = 115; + if (curChar == 40 && kind > 117) { + kind = 117; } break; case 179: @@ -1909,7 +1907,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 72) { kind = 72; } - jjCheckNAddStates(429, 432); + jjCheckNAddStates(439, 442); break; case 224: if ((0x100003600L & l) == 0L) { @@ -1927,7 +1925,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 72) { kind = 72; } - jjCheckNAddStates(433, 439); + jjCheckNAddStates(443, 449); break; case 226: if ((0x3ff000000000000L & l) == 0L) { @@ -1936,7 +1934,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 72) { kind = 72; } - jjCheckNAddStates(440, 442); + jjCheckNAddStates(450, 452); break; case 227: if ((0x3ff000000000000L & l) == 0L) { @@ -1945,7 +1943,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 72) { kind = 72; } - jjCheckNAddStates(443, 446); + jjCheckNAddStates(453, 456); break; case 228: if ((0x3ff000000000000L & l) == 0L) { @@ -1954,7 +1952,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 72) { kind = 72; } - jjCheckNAddStates(447, 451); + jjCheckNAddStates(457, 461); break; case 229: if ((0x3ff000000000000L & l) == 0L) { @@ -1963,11 +1961,11 @@ public class ParserTokenManager implements ParserConstants { if (kind > 72) { kind = 72; } - jjCheckNAddStates(452, 457); + jjCheckNAddStates(462, 467); break; case 230: if ((0x3ff200000000000L & l) != 0L) { - jjCheckNAddStates(0, 3); + jjCheckNAddStates(120, 123); } break; case 231: @@ -1976,54 +1974,54 @@ public class ParserTokenManager implements ParserConstants { } break; case 232: - if (curChar == 40 && kind > 116) { - kind = 116; + if (curChar == 40 && kind > 118) { + kind = 118; } break; case 234: if ((0xffffffff00000000L & l) != 0L) { - jjCheckNAddStates(0, 3); + jjCheckNAddStates(120, 123); } break; case 235: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(458, 462); + jjCheckNAddStates(468, 472); } break; case 236: if ((0x100003600L & l) != 0L) { - jjCheckNAddStates(0, 3); + jjCheckNAddStates(120, 123); } break; case 237: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(463, 470); + jjCheckNAddStates(473, 480); } break; case 238: - case 444: + case 452: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(471, 474); + jjCheckNAddStates(481, 484); } break; case 239: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(475, 479); + jjCheckNAddStates(485, 489); } break; case 240: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(480, 485); + jjCheckNAddStates(490, 495); } break; case 241: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(486, 492); + jjCheckNAddStates(496, 502); } break; case 242: if (curChar == 33) { - jjCheckNAddStates(98, 101); + jjCheckNAddStates(104, 107); } break; case 243: @@ -2038,12 +2036,12 @@ public class ParserTokenManager implements ParserConstants { break; case 261: if (curChar == 45) { - jjAddStates(96, 97); + jjAddStates(102, 103); } break; case 265: if (curChar == 46) { - jjCheckNAddStates(78, 95); + jjCheckNAddStates(82, 101); } break; case 266: @@ -2102,1057 +2100,1097 @@ public class ParserTokenManager implements ParserConstants { break; case 290: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(290, 292); + jjCheckNAddTwoStates(290, 293); } break; - case 293: + case 294: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(293, 296); + jjCheckNAddTwoStates(294, 297); } break; - case 297: + case 298: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(297, 300); + jjCheckNAddTwoStates(298, 300); } break; case 301: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(301, 305); + jjCheckNAddTwoStates(301, 304); } break; - case 306: + case 305: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(306, 308); + jjCheckNAddTwoStates(305, 308); } break; case 309: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(309, 310); + jjCheckNAddTwoStates(309, 313); } break; - case 311: + case 314: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(311, 313); + jjCheckNAddTwoStates(314, 316); } break; - case 314: + case 317: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(314, 317); + jjCheckNAddTwoStates(317, 318); } break; - case 318: + case 319: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(114, 118); + jjCheckNAddTwoStates(319, 321); } break; - case 319: + case 322: + if ((0x3ff000000000000L & l) != 0L) { + jjCheckNAddTwoStates(322, 325); + } + break; + case 326: + if ((0x3ff000000000000L & l) != 0L) { + jjCheckNAddStates(124, 128); + } + break; + case 327: if (curChar == 45) { - jjCheckNAdd(320); + jjCheckNAdd(328); } break; - case 321: + case 329: if ((0x3ff200000000000L & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddTwoStates(321, 322); + jjCheckNAddTwoStates(329, 330); break; - case 323: + case 331: if ((0xffffffff00000000L & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddTwoStates(321, 322); + jjCheckNAddTwoStates(329, 330); break; - case 324: + case 332: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(493, 496); + jjCheckNAddStates(503, 506); break; - case 325: + case 333: if ((0x100003600L & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddTwoStates(321, 322); + jjCheckNAddTwoStates(329, 330); break; - case 326: + case 334: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(497, 503); + jjCheckNAddStates(507, 513); break; - case 327: + case 335: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(504, 506); + jjCheckNAddStates(514, 516); break; - case 328: + case 336: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(507, 510); + jjCheckNAddStates(517, 520); break; - case 329: + case 337: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(511, 515); + jjCheckNAddStates(521, 525); break; - case 330: + case 338: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(516, 521); + jjCheckNAddStates(526, 531); break; - case 333: + case 341: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(522, 525); + jjCheckNAddStates(532, 535); break; - case 334: + case 342: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(526, 532); + jjCheckNAddStates(536, 542); break; - case 335: + case 343: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(533, 535); + jjCheckNAddStates(543, 545); break; - case 336: + case 344: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(536, 539); + jjCheckNAddStates(546, 549); break; - case 337: + case 345: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(540, 544); + jjCheckNAddStates(550, 554); break; - case 338: + case 346: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(545, 550); + jjCheckNAddStates(555, 560); break; - case 340: + case 348: if (curChar == 40) { - jjCheckNAddStates(551, 556); + jjCheckNAddStates(561, 566); } break; - case 341: + case 349: if ((0xfffffc7a00000000L & l) != 0L) { - jjCheckNAddStates(557, 560); + jjCheckNAddStates(567, 570); } break; - case 342: + case 350: if ((0x100003600L & l) != 0L) { - jjCheckNAddTwoStates(342, 343); + jjCheckNAddTwoStates(350, 351); } break; - case 343: + case 351: if (curChar == 41 && kind > 75) { kind = 75; } break; - case 345: + case 353: if ((0xffffffff00000000L & l) != 0L) { - jjCheckNAddStates(557, 560); + jjCheckNAddStates(567, 570); } break; - case 346: + case 354: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(561, 565); + jjCheckNAddStates(571, 575); } break; - case 347: + case 355: if ((0x100003600L & l) != 0L) { - jjCheckNAddStates(557, 560); + jjCheckNAddStates(567, 570); } break; - case 348: + case 356: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(566, 573); + jjCheckNAddStates(576, 583); } break; - case 349: + case 357: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(574, 577); + jjCheckNAddStates(584, 587); } break; - case 350: + case 358: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(578, 582); + jjCheckNAddStates(588, 592); } break; - case 351: + case 359: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(583, 588); + jjCheckNAddStates(593, 598); } break; - case 352: + case 360: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(589, 595); + jjCheckNAddStates(599, 605); } break; - case 353: + case 361: if (curChar == 39) { - jjCheckNAddStates(596, 599); + jjCheckNAddStates(606, 609); } break; - case 354: + case 362: if ((0xffffff7f00000200L & l) != 0L) { - jjCheckNAddStates(596, 599); + jjCheckNAddStates(606, 609); } break; - case 355: + case 363: if (curChar == 39) { - jjCheckNAddTwoStates(342, 343); + jjCheckNAddTwoStates(350, 351); } break; - case 357: + case 365: if (curChar == 12) { - jjCheckNAddStates(596, 599); + jjCheckNAddStates(606, 609); } break; - case 359: + case 367: if ((0xffffffff00000000L & l) != 0L) { - jjCheckNAddStates(596, 599); + jjCheckNAddStates(606, 609); } break; - case 360: + case 368: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(600, 605); + jjCheckNAddStates(610, 615); } break; - case 361: + case 369: if ((0x100003600L & l) != 0L) { - jjCheckNAddStates(596, 599); + jjCheckNAddStates(606, 609); } break; - case 362: + case 370: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(606, 614); + jjCheckNAddStates(616, 624); } break; - case 363: + case 371: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(615, 619); + jjCheckNAddStates(625, 629); } break; - case 364: + case 372: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(620, 625); + jjCheckNAddStates(630, 635); } break; - case 365: + case 373: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(626, 632); + jjCheckNAddStates(636, 642); } break; - case 366: + case 374: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(633, 640); + jjCheckNAddStates(643, 650); } break; - case 367: + case 375: if (curChar == 13) { - jjCheckNAddStates(596, 599); + jjCheckNAddStates(606, 609); } break; - case 368: + case 376: if (curChar == 10) { - jjCheckNAddStates(596, 599); + jjCheckNAddStates(606, 609); } break; - case 369: + case 377: if (curChar == 13) { - jjstateSet[jjnewStateCnt++] = 368; + jjstateSet[jjnewStateCnt++] = 376; } break; - case 370: + case 378: if (curChar == 34) { - jjCheckNAddStates(641, 644); + jjCheckNAddStates(651, 654); } break; - case 371: + case 379: if ((0xfffffffb00000200L & l) != 0L) { - jjCheckNAddStates(641, 644); + jjCheckNAddStates(651, 654); } break; - case 372: + case 380: if (curChar == 34) { - jjCheckNAddTwoStates(342, 343); + jjCheckNAddTwoStates(350, 351); } break; - case 374: + case 382: if (curChar == 12) { - jjCheckNAddStates(641, 644); + jjCheckNAddStates(651, 654); } break; - case 376: + case 384: if ((0xffffffff00000000L & l) != 0L) { - jjCheckNAddStates(641, 644); + jjCheckNAddStates(651, 654); } break; - case 377: + case 385: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(645, 650); + jjCheckNAddStates(655, 660); } break; - case 378: + case 386: if ((0x100003600L & l) != 0L) { - jjCheckNAddStates(641, 644); + jjCheckNAddStates(651, 654); } break; - case 379: + case 387: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(651, 659); + jjCheckNAddStates(661, 669); } break; - case 380: + case 388: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(660, 664); + jjCheckNAddStates(670, 674); } break; - case 381: + case 389: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(665, 670); + jjCheckNAddStates(675, 680); } break; - case 382: + case 390: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(671, 677); + jjCheckNAddStates(681, 687); } break; - case 383: + case 391: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(678, 685); + jjCheckNAddStates(688, 695); } break; - case 384: + case 392: if (curChar == 13) { - jjCheckNAddStates(641, 644); + jjCheckNAddStates(651, 654); } break; - case 385: + case 393: if (curChar == 10) { - jjCheckNAddStates(641, 644); + jjCheckNAddStates(651, 654); } break; - case 386: + case 394: if (curChar == 13) { - jjstateSet[jjnewStateCnt++] = 385; + jjstateSet[jjnewStateCnt++] = 393; } break; - case 387: + case 395: if ((0x100003600L & l) != 0L) { - jjCheckNAddStates(686, 692); + jjCheckNAddStates(696, 702); } break; - case 390: + case 398: if (curChar == 43) { - jjAddStates(693, 694); + jjAddStates(703, 704); } break; - case 391: + case 399: if (curChar != 63) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjstateSet[jjnewStateCnt++] = 392; + jjstateSet[jjnewStateCnt++] = 400; break; - case 392: + case 400: if (curChar != 63) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAddStates(695, 698); + jjCheckNAddStates(705, 708); break; - case 393: - if (curChar == 63 && kind > 112) { - kind = 112; + case 401: + if (curChar == 63 && kind > 114) { + kind = 114; } break; - case 394: - case 409: - case 413: - case 416: - case 419: + case 402: + case 417: + case 421: + case 424: + case 427: if (curChar != 63) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAdd(393); + jjCheckNAdd(401); break; - case 395: + case 403: if (curChar != 63) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAddTwoStates(393, 394); + jjCheckNAddTwoStates(401, 402); break; - case 396: + case 404: if (curChar != 63) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAddStates(699, 701); + jjCheckNAddStates(709, 711); break; - case 397: + case 405: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjAddStates(702, 707); + jjAddStates(712, 717); break; - case 398: + case 406: if ((0x3ff000000000000L & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 399; + jjstateSet[jjnewStateCnt++] = 407; } break; - case 399: + case 407: if ((0x3ff000000000000L & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 400; + jjstateSet[jjnewStateCnt++] = 408; } break; - case 400: + case 408: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAdd(401); + jjCheckNAdd(409); } break; - case 401: - if ((0x3ff000000000000L & l) != 0L && kind > 112) { - kind = 112; + case 409: + if ((0x3ff000000000000L & l) != 0L && kind > 114) { + kind = 114; } break; - case 402: + case 410: if ((0x3ff000000000000L & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 403; + jjstateSet[jjnewStateCnt++] = 411; } break; - case 403: + case 411: if ((0x3ff000000000000L & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 404; + jjstateSet[jjnewStateCnt++] = 412; } break; - case 404: + case 412: if ((0x3ff000000000000L & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 405; + jjstateSet[jjnewStateCnt++] = 413; } break; - case 405: + case 413: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAdd(393); + jjCheckNAdd(401); break; - case 406: + case 414: if ((0x3ff000000000000L & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 407; + jjstateSet[jjnewStateCnt++] = 415; } break; - case 407: + case 415: if ((0x3ff000000000000L & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 408; + jjstateSet[jjnewStateCnt++] = 416; } break; - case 408: + case 416: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjstateSet[jjnewStateCnt++] = 409; + jjstateSet[jjnewStateCnt++] = 417; break; - case 410: + case 418: if ((0x3ff000000000000L & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 411; + jjstateSet[jjnewStateCnt++] = 419; } break; - case 411: + case 419: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjstateSet[jjnewStateCnt++] = 412; + jjstateSet[jjnewStateCnt++] = 420; break; - case 412: + case 420: if (curChar != 63) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAddTwoStates(393, 413); + jjCheckNAddTwoStates(401, 421); break; - case 414: + case 422: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjstateSet[jjnewStateCnt++] = 415; + jjstateSet[jjnewStateCnt++] = 423; break; - case 415: + case 423: if (curChar != 63) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAddStates(708, 710); + jjCheckNAddStates(718, 720); break; - case 417: + case 425: if (curChar != 63) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAddTwoStates(393, 416); + jjCheckNAddTwoStates(401, 424); break; - case 418: + case 426: if (curChar != 63) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAddStates(711, 714); + jjCheckNAddStates(721, 724); break; - case 420: + case 428: if (curChar != 63) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAddTwoStates(393, 419); + jjCheckNAddTwoStates(401, 427); break; - case 421: + case 429: if (curChar != 63) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAddStates(715, 717); + jjCheckNAddStates(725, 727); break; - case 422: + case 430: if (curChar == 43) { - jjstateSet[jjnewStateCnt++] = 423; + jjstateSet[jjnewStateCnt++] = 431; } break; - case 423: + case 431: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(424, 430); + jjCheckNAddTwoStates(432, 438); } break; - case 424: + case 432: if (curChar == 45) { - jjstateSet[jjnewStateCnt++] = 425; + jjstateSet[jjnewStateCnt++] = 433; } break; - case 425: + case 433: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjstateSet[jjnewStateCnt++] = 426; + jjstateSet[jjnewStateCnt++] = 434; break; - case 426: + case 434: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAddStates(718, 721); + jjCheckNAddStates(728, 731); break; - case 427: + case 435: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAdd(401); + jjCheckNAdd(409); break; - case 428: + case 436: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAddTwoStates(401, 427); + jjCheckNAddTwoStates(409, 435); break; - case 429: + case 437: if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAddStates(722, 724); + jjCheckNAddStates(732, 734); break; - case 430: + case 438: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(725, 729); + jjCheckNAddStates(735, 739); } break; - case 431: + case 439: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAdd(424); + jjCheckNAdd(432); } break; - case 432: + case 440: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(431, 424); + jjCheckNAddTwoStates(439, 432); } break; - case 433: + case 441: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(730, 732); + jjCheckNAddStates(740, 742); } break; - case 434: + case 442: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(733, 736); + jjCheckNAddStates(743, 746); } break; - case 436: + case 444: if ((0x3ff000000000000L & l) == 0L) { break; } if (kind > 72) { kind = 72; } - jjCheckNAddStates(737, 740); + jjCheckNAddStates(747, 750); break; - case 437: + case 445: if ((0x3ff000000000000L & l) == 0L) { break; } if (kind > 72) { kind = 72; } - jjCheckNAddStates(741, 747); + jjCheckNAddStates(751, 757); break; - case 438: + case 446: if ((0x3ff000000000000L & l) == 0L) { break; } if (kind > 72) { kind = 72; } - jjCheckNAddStates(748, 750); + jjCheckNAddStates(758, 760); break; - case 439: + case 447: if ((0x3ff000000000000L & l) == 0L) { break; } if (kind > 72) { kind = 72; } - jjCheckNAddStates(751, 754); + jjCheckNAddStates(761, 764); break; - case 440: + case 448: if ((0x3ff000000000000L & l) == 0L) { break; } if (kind > 72) { kind = 72; } - jjCheckNAddStates(755, 759); + jjCheckNAddStates(765, 769); break; - case 441: + case 449: if ((0x3ff000000000000L & l) == 0L) { break; } if (kind > 72) { kind = 72; } - jjCheckNAddStates(760, 765); + jjCheckNAddStates(770, 775); break; - case 442: + case 450: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(766, 770); + jjCheckNAddStates(776, 780); } break; - case 443: + case 451: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(771, 778); + jjCheckNAddStates(781, 788); } break; - case 445: + case 453: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(779, 783); + jjCheckNAddStates(789, 793); } break; - case 446: + case 454: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(784, 789); + jjCheckNAddStates(794, 799); } break; - case 447: + case 455: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(790, 796); + jjCheckNAddStates(800, 806); } break; - case 448: + case 456: if ((0x3ff000000000000L & l) == 0L) { break; } if (kind > 73) { kind = 73; } - jjCheckNAddStates(4, 77); + jjCheckNAddStates(0, 81); break; - case 449: + case 457: if ((0x3ff000000000000L & l) == 0L) { break; } if (kind > 73) { kind = 73; } - jjCheckNAdd(449); + jjCheckNAdd(457); break; - case 450: + case 458: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(450, 451); + jjCheckNAddTwoStates(458, 459); } break; - case 451: + case 459: if (curChar == 46) { jjCheckNAdd(266); } break; - case 452: + case 460: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(452, 268); + jjCheckNAddTwoStates(460, 268); } break; - case 453: + case 461: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(453, 454); + jjCheckNAddTwoStates(461, 462); } break; - case 454: + case 462: if (curChar == 46) { jjCheckNAdd(267); } break; - case 455: + case 463: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(455, 271); + jjCheckNAddTwoStates(463, 271); } break; - case 456: + case 464: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(456, 457); + jjCheckNAddTwoStates(464, 465); } break; - case 457: + case 465: if (curChar == 46) { jjCheckNAdd(269); } break; - case 458: + case 466: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(458, 274); + jjCheckNAddTwoStates(466, 274); } break; - case 459: + case 467: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(459, 460); + jjCheckNAddTwoStates(467, 468); } break; - case 460: + case 468: if (curChar == 46) { jjCheckNAdd(272); } break; - case 461: + case 469: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(461, 277); + jjCheckNAddTwoStates(469, 277); } break; - case 462: + case 470: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(462, 463); + jjCheckNAddTwoStates(470, 471); } break; - case 463: + case 471: if (curChar == 46) { jjCheckNAdd(275); } break; - case 464: + case 472: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(464, 280); + jjCheckNAddTwoStates(472, 280); } break; - case 465: + case 473: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(465, 466); + jjCheckNAddTwoStates(473, 474); } break; - case 466: + case 474: if (curChar == 46) { jjCheckNAdd(278); } break; - case 467: + case 475: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(467, 283); + jjCheckNAddTwoStates(475, 283); } break; - case 468: + case 476: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(468, 469); + jjCheckNAddTwoStates(476, 477); } break; - case 469: + case 477: if (curChar == 46) { jjCheckNAdd(281); } break; - case 470: + case 478: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(470, 286); + jjCheckNAddTwoStates(478, 286); } break; - case 471: + case 479: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(471, 472); + jjCheckNAddTwoStates(479, 480); } break; - case 472: + case 480: if (curChar == 46) { jjCheckNAdd(284); } break; - case 473: + case 481: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(473, 289); + jjCheckNAddTwoStates(481, 289); } break; - case 474: + case 482: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(474, 475); + jjCheckNAddTwoStates(482, 483); } break; - case 475: + case 483: if (curChar == 46) { jjCheckNAdd(287); } break; - case 476: + case 484: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(476, 292); + jjCheckNAddTwoStates(484, 293); } break; - case 477: + case 485: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(477, 478); + jjCheckNAddTwoStates(485, 486); } break; - case 478: + case 486: if (curChar == 46) { jjCheckNAdd(290); } break; - case 479: + case 487: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(479, 296); + jjCheckNAddTwoStates(487, 297); } break; - case 480: + case 488: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(480, 481); + jjCheckNAddTwoStates(488, 489); } break; - case 481: + case 489: if (curChar == 46) { - jjCheckNAdd(293); + jjCheckNAdd(294); } break; - case 482: + case 490: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(482, 300); + jjCheckNAddTwoStates(490, 300); } break; - case 483: + case 491: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(483, 484); + jjCheckNAddTwoStates(491, 492); } break; - case 484: + case 492: if (curChar == 46) { - jjCheckNAdd(297); + jjCheckNAdd(298); } break; - case 485: + case 493: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(485, 305); + jjCheckNAddTwoStates(493, 304); } break; - case 486: + case 494: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(486, 487); + jjCheckNAddTwoStates(494, 495); } break; - case 487: + case 495: if (curChar == 46) { jjCheckNAdd(301); } break; - case 488: + case 496: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(488, 308); + jjCheckNAddTwoStates(496, 308); } break; - case 489: + case 497: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(489, 490); + jjCheckNAddTwoStates(497, 498); } break; - case 490: + case 498: if (curChar == 46) { - jjCheckNAdd(306); + jjCheckNAdd(305); } break; - case 491: + case 499: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(491, 310); + jjCheckNAddTwoStates(499, 313); } break; - case 492: + case 500: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(492, 493); + jjCheckNAddTwoStates(500, 501); } break; - case 493: + case 501: if (curChar == 46) { jjCheckNAdd(309); } break; - case 494: + case 502: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(494, 313); + jjCheckNAddTwoStates(502, 316); } break; - case 495: + case 503: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(495, 496); + jjCheckNAddTwoStates(503, 504); } break; - case 496: + case 504: if (curChar == 46) { - jjCheckNAdd(311); + jjCheckNAdd(314); } break; - case 497: + case 505: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(497, 317); + jjCheckNAddTwoStates(505, 318); } break; - case 498: + case 506: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(498, 499); + jjCheckNAddTwoStates(506, 507); } break; - case 499: + case 507: if (curChar == 46) { - jjCheckNAdd(314); + jjCheckNAdd(317); } break; - case 500: + case 508: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddStates(797, 801); + jjCheckNAddTwoStates(508, 321); } break; - case 501: + case 509: if ((0x3ff000000000000L & l) != 0L) { - jjCheckNAddTwoStates(501, 502); + jjCheckNAddTwoStates(509, 510); } break; - case 502: + case 510: + if (curChar == 46) { + jjCheckNAdd(319); + } + break; + case 511: + if ((0x3ff000000000000L & l) != 0L) { + jjCheckNAddTwoStates(511, 325); + } + break; + case 512: + if ((0x3ff000000000000L & l) != 0L) { + jjCheckNAddTwoStates(512, 513); + } + break; + case 513: if (curChar == 46) { - jjCheckNAdd(318); + jjCheckNAdd(322); + } + break; + case 514: + if ((0x3ff000000000000L & l) != 0L) { + jjCheckNAddStates(807, 811); + } + break; + case 515: + if ((0x3ff000000000000L & l) != 0L) { + jjCheckNAddTwoStates(515, 516); + } + break; + case 516: + if (curChar == 46) { + jjCheckNAdd(326); } break; default: @@ -3163,10 +3201,10 @@ public class ParserTokenManager implements ParserConstants { long l = 1L << (curChar & 077); do { switch (jjstateSet[--i]) { - case 506: + case 520: if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); } else if (curChar == 92) { @@ -3175,8 +3213,8 @@ public class ParserTokenManager implements ParserConstants { break; case 166: if ((0x7fffffe07fffffeL & l) != 0L) { - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); } else if (curChar == 92) { @@ -3188,8 +3226,8 @@ public class ParserTokenManager implements ParserConstants { break; case 174: if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); } else if (curChar == 92) { @@ -3199,7 +3237,32 @@ public class ParserTokenManager implements ParserConstants { jjstateSet[jjnewStateCnt++] = 173; } break; - case 504: + case 4: + if ((0x7fffffe07fffffeL & l) != 0L) { + if (kind > 72) { + kind = 72; + } + jjCheckNAddStates(812, 817); + } else if (curChar == 92) { + jjCheckNAddStates(818, 821); + } else if (curChar == 64) { + jjAddStates(822, 826); + } + if ((0x20000000200000L & l) != 0L) { + jjAddStates(827, 829); + } 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; + } else if (curChar == 64) { + jjAddStates(830, 833); + } + break; + case 518: if ((0x20000000200L & l) != 0L) { jjstateSet[jjnewStateCnt++] = 259; } else if ((0x1000000010L & l) != 0L) { @@ -3208,8 +3271,8 @@ public class ParserTokenManager implements ParserConstants { break; case 178: if ((0x7fffffe07fffffeL & l) != 0L) { - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); } @@ -3224,9 +3287,9 @@ public class ParserTokenManager implements ParserConstants { jjstateSet[jjnewStateCnt++] = 177; } break; - case 503: + case 517: if ((0x7fffffe87fffffeL & l) != 0L) { - jjCheckNAddStates(0, 3); + jjCheckNAddStates(120, 123); } else if (curChar == 92) { jjCheckNAddTwoStates(222, 223); } @@ -3239,35 +3302,10 @@ public class ParserTokenManager implements ParserConstants { jjCheckNAddTwoStates(234, 235); } break; - case 4: - if ((0x7fffffe07fffffeL & l) != 0L) { - if (kind > 72) { - kind = 72; - } - jjCheckNAddStates(802, 807); - } else if (curChar == 92) { - jjCheckNAddStates(808, 811); - } else if (curChar == 64) { - jjAddStates(812, 816); - } - if ((0x20000000200000L & l) != 0L) { - jjAddStates(817, 819); - } 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; - } else if (curChar == 64) { - jjAddStates(820, 823); - } - break; case 175: if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); } else if (curChar == 92) { @@ -3276,7 +3314,7 @@ public class ParserTokenManager implements ParserConstants { break; case 33: if ((0x7fffffe87fffffeL & l) != 0L) { - jjCheckNAddStates(0, 3); + jjCheckNAddStates(120, 123); } else if (curChar == 92) { jjCheckNAddTwoStates(222, 223); } @@ -3294,8 +3332,8 @@ public class ParserTokenManager implements ParserConstants { break; case 176: if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); } else if (curChar == 92) { @@ -3307,7 +3345,7 @@ public class ParserTokenManager implements ParserConstants { break; case 42: if ((0x7fffffe07fffffeL & l) != 0L) { - jjCheckNAddStates(0, 3); + jjCheckNAddStates(120, 123); } if ((0x7fffffe07fffffeL & l) != 0L) { if (kind > 72) { @@ -3321,8 +3359,8 @@ public class ParserTokenManager implements ParserConstants { break; case 177: if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); } else if (curChar == 92) { @@ -3356,12 +3394,12 @@ public class ParserTokenManager implements ParserConstants { break; case 8: if ((0x7fffffe07fffffeL & l) != 0L) { - jjCheckNAddStates(123, 125); + jjCheckNAddStates(133, 135); } break; case 9: if ((0x7fffffe87fffffeL & l) != 0L) { - jjCheckNAddStates(123, 125); + jjCheckNAddStates(133, 135); } break; case 10: @@ -3376,37 +3414,37 @@ public class ParserTokenManager implements ParserConstants { break; case 12: if ((0x7fffffffffffffffL & l) != 0L) { - jjCheckNAddStates(123, 125); + jjCheckNAddStates(133, 135); } break; case 13: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(126, 130); + jjCheckNAddStates(136, 140); } break; case 15: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(131, 138); + jjCheckNAddStates(141, 148); } break; case 16: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(139, 142); + jjCheckNAddStates(149, 152); } break; case 17: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(143, 147); + jjCheckNAddStates(153, 157); } break; case 18: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(148, 153); + jjCheckNAddStates(158, 163); } break; case 19: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(154, 160); + jjCheckNAddStates(164, 170); } break; case 21: @@ -3416,32 +3454,32 @@ public class ParserTokenManager implements ParserConstants { break; case 22: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(161, 165); + jjCheckNAddStates(171, 175); } break; case 23: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(166, 173); + jjCheckNAddStates(176, 183); } break; case 24: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(174, 177); + jjCheckNAddStates(184, 187); } break; case 25: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(178, 182); + jjCheckNAddStates(188, 192); } break; case 26: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(183, 188); + jjCheckNAddStates(193, 198); } break; case 27: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(189, 195); + jjCheckNAddStates(199, 205); } break; case 29: @@ -3498,93 +3536,93 @@ public class ParserTokenManager implements ParserConstants { case 45: case 50: if ((0x7fffffffffffffffL & l) != 0L) { - jjCheckNAddStates(110, 113); + jjCheckNAddStates(116, 119); } break; case 47: if (curChar == 92) { - jjAddStates(824, 827); + jjAddStates(834, 837); } break; case 49: if (curChar == 92) { - jjAddStates(828, 829); + jjAddStates(838, 839); } break; case 51: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(196, 201); + jjCheckNAddStates(206, 211); } break; case 53: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(202, 210); + jjCheckNAddStates(212, 220); } break; case 54: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(211, 215); + jjCheckNAddStates(221, 225); } break; case 55: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(216, 221); + jjCheckNAddStates(226, 231); } break; case 56: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(222, 228); + jjCheckNAddStates(232, 238); } break; case 57: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(229, 236); + jjCheckNAddStates(239, 246); } break; case 62: case 67: if ((0x7fffffffffffffffL & l) != 0L) { - jjCheckNAddStates(106, 109); + jjCheckNAddStates(112, 115); } break; case 64: if (curChar == 92) { - jjAddStates(830, 833); + jjAddStates(840, 843); } break; case 66: if (curChar == 92) { - jjAddStates(834, 835); + jjAddStates(844, 845); } break; case 68: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(237, 242); + jjCheckNAddStates(247, 252); } break; case 70: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(243, 251); + jjCheckNAddStates(253, 261); } break; case 71: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(252, 256); + jjCheckNAddStates(262, 266); } break; case 72: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(257, 262); + jjCheckNAddStates(267, 272); } break; case 73: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(263, 269); + jjCheckNAddStates(273, 279); } break; case 74: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(270, 277); + jjCheckNAddStates(280, 287); } break; case 80: @@ -3626,7 +3664,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(278, 281); + jjCheckNAddStates(288, 291); break; case 86: if ((0x7e0000007eL & l) == 0L) { @@ -3635,7 +3673,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(282, 288); + jjCheckNAddStates(292, 298); break; case 87: if ((0x7e0000007eL & l) == 0L) { @@ -3644,7 +3682,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(289, 291); + jjCheckNAddStates(299, 301); break; case 88: if ((0x7e0000007eL & l) == 0L) { @@ -3653,7 +3691,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(292, 295); + jjCheckNAddStates(302, 305); break; case 89: if ((0x7e0000007eL & l) == 0L) { @@ -3662,7 +3700,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(296, 300); + jjCheckNAddStates(306, 310); break; case 90: if ((0x7e0000007eL & l) == 0L) { @@ -3671,7 +3709,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(301, 306); + jjCheckNAddStates(311, 316); break; case 92: if (curChar == 92) { @@ -3685,7 +3723,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(307, 310); + jjCheckNAddStates(317, 320); break; case 94: if ((0x7e0000007eL & l) == 0L) { @@ -3694,7 +3732,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(311, 317); + jjCheckNAddStates(321, 327); break; case 95: if ((0x7e0000007eL & l) == 0L) { @@ -3703,7 +3741,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(318, 320); + jjCheckNAddStates(328, 330); break; case 96: if ((0x7e0000007eL & l) == 0L) { @@ -3712,7 +3750,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(321, 324); + jjCheckNAddStates(331, 334); break; case 97: if ((0x7e0000007eL & l) == 0L) { @@ -3721,7 +3759,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(325, 329); + jjCheckNAddStates(335, 339); break; case 98: if ((0x7e0000007eL & l) == 0L) { @@ -3730,28 +3768,28 @@ public class ParserTokenManager implements ParserConstants { if (kind > 76) { kind = 76; } - jjCheckNAddStates(330, 335); + jjCheckNAddStates(340, 345); break; case 100: if ((0x7fffffe87fffffeL & l) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } jjCheckNAddTwoStates(100, 101); break; case 101: if (curChar == 92) { - jjAddStates(836, 837); + jjAddStates(846, 847); } break; case 102: if ((0x7fffffffffffffffL & l) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } jjCheckNAddTwoStates(100, 101); break; @@ -3759,67 +3797,67 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } - jjCheckNAddStates(336, 339); + jjCheckNAddStates(346, 349); break; case 105: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } - jjCheckNAddStates(340, 346); + jjCheckNAddStates(350, 356); break; case 106: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } - jjCheckNAddStates(347, 349); + jjCheckNAddStates(357, 359); break; case 107: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } - jjCheckNAddStates(350, 353); + jjCheckNAddStates(360, 363); break; case 108: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } - jjCheckNAddStates(354, 358); + jjCheckNAddStates(364, 368); break; case 109: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } - jjCheckNAddStates(359, 364); + jjCheckNAddStates(369, 374); break; case 110: if (curChar == 64) { - jjAddStates(820, 823); + jjAddStates(830, 833); } break; case 112: if ((0x7fffffe07fffffeL & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); break; @@ -3827,8 +3865,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7fffffe87fffffeL & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); break; @@ -3841,8 +3879,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7fffffffffffffffL & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); break; @@ -3850,55 +3888,55 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(365, 368); + jjCheckNAddStates(375, 378); break; case 118: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(369, 375); + jjCheckNAddStates(379, 385); break; case 119: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(376, 378); + jjCheckNAddStates(386, 388); break; case 120: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(379, 382); + jjCheckNAddStates(389, 392); break; case 121: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(383, 387); + jjCheckNAddStates(393, 397); break; case 122: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(388, 393); + jjCheckNAddStates(398, 403); break; case 124: if (curChar == 92) { @@ -3909,59 +3947,59 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(394, 397); + jjCheckNAddStates(404, 407); break; case 126: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(398, 404); + jjCheckNAddStates(408, 414); break; case 127: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(405, 407); + jjCheckNAddStates(415, 417); break; case 128: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(408, 411); + jjCheckNAddStates(418, 421); break; case 129: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(412, 416); + jjCheckNAddStates(422, 426); break; case 130: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } - jjCheckNAddStates(417, 422); + jjCheckNAddStates(427, 432); break; case 131: if ((0x2000000020L & l) != 0L) { - jjAddStates(423, 424); + jjAddStates(433, 434); } break; case 134: @@ -3991,7 +4029,7 @@ public class ParserTokenManager implements ParserConstants { break; case 139: if ((0x1000000010L & l) != 0L) { - jjAddStates(425, 426); + jjAddStates(435, 436); } break; case 142: @@ -4021,7 +4059,7 @@ public class ParserTokenManager implements ParserConstants { break; case 147: if ((0x8000000080000L & l) != 0L) { - jjAddStates(427, 428); + jjAddStates(437, 438); } break; case 150: @@ -4061,12 +4099,12 @@ public class ParserTokenManager implements ParserConstants { break; case 157: if (curChar == 64) { - jjAddStates(812, 816); + jjAddStates(822, 826); } break; case 158: - if ((0x8000000080000L & l) != 0L && kind > 100) { - kind = 100; + if ((0x8000000080000L & l) != 0L && kind > 102) { + kind = 102; } break; case 159: @@ -4318,7 +4356,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 72) { kind = 72; } - jjCheckNAddStates(429, 432); + jjCheckNAddStates(439, 442); break; case 225: if ((0x7e0000007eL & l) == 0L) { @@ -4327,7 +4365,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 72) { kind = 72; } - jjCheckNAddStates(433, 439); + jjCheckNAddStates(443, 449); break; case 226: if ((0x7e0000007eL & l) == 0L) { @@ -4336,7 +4374,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 72) { kind = 72; } - jjCheckNAddStates(440, 442); + jjCheckNAddStates(450, 452); break; case 227: if ((0x7e0000007eL & l) == 0L) { @@ -4345,7 +4383,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 72) { kind = 72; } - jjCheckNAddStates(443, 446); + jjCheckNAddStates(453, 456); break; case 228: if ((0x7e0000007eL & l) == 0L) { @@ -4354,7 +4392,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 72) { kind = 72; } - jjCheckNAddStates(447, 451); + jjCheckNAddStates(457, 461); break; case 229: if ((0x7e0000007eL & l) == 0L) { @@ -4363,11 +4401,11 @@ public class ParserTokenManager implements ParserConstants { if (kind > 72) { kind = 72; } - jjCheckNAddStates(452, 457); + jjCheckNAddStates(462, 467); break; case 230: if ((0x7fffffe87fffffeL & l) != 0L) { - jjCheckNAddStates(0, 3); + jjCheckNAddStates(120, 123); } break; case 233: @@ -4377,38 +4415,38 @@ public class ParserTokenManager implements ParserConstants { break; case 234: if ((0x7fffffffffffffffL & l) != 0L) { - jjCheckNAddStates(0, 3); + jjCheckNAddStates(120, 123); } break; case 235: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(458, 462); + jjCheckNAddStates(468, 472); } break; case 237: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(463, 470); + jjCheckNAddStates(473, 480); } break; case 238: - case 444: + case 452: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(471, 474); + jjCheckNAddStates(481, 484); } break; case 239: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(475, 479); + jjCheckNAddStates(485, 489); } break; case 240: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(480, 485); + jjCheckNAddStates(490, 495); } break; case 241: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(486, 492); + jjCheckNAddStates(496, 502); } break; case 244: @@ -4447,8 +4485,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 252: - if ((0x10000000100000L & l) != 0L && kind > 102) { - kind = 102; + if ((0x10000000100000L & l) != 0L && kind > 104) { + kind = 104; } break; case 253: @@ -4502,7 +4540,7 @@ public class ParserTokenManager implements ParserConstants { break; case 263: if ((0x7fffffe07fffffeL & l) != 0L) { - jjCheckNAddStates(0, 3); + jjCheckNAddStates(120, 123); } break; case 264: @@ -4512,7 +4550,7 @@ public class ParserTokenManager implements ParserConstants { if (kind > 72) { kind = 72; } - jjCheckNAddStates(802, 807); + jjCheckNAddStates(812, 817); break; case 270: if ((0x10000000100000L & l) != 0L && kind > 78) { @@ -4585,7 +4623,7 @@ public class ParserTokenManager implements ParserConstants { } break; case 291: - if ((0x100000001000000L & l) != 0L && kind > 85) { + if ((0x200000002000L & l) != 0L && kind > 85) { kind = 85; } break; @@ -4594,641 +4632,671 @@ public class ParserTokenManager implements ParserConstants { jjstateSet[jjnewStateCnt++] = 291; } break; - case 294: - if ((0x8000000080L & l) != 0L && kind > 86) { - kind = 86; + case 293: + if ((0x100000001000L & l) != 0L) { + jjstateSet[jjnewStateCnt++] = 292; } break; case 295: - if ((0x2000000020L & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 294; + if ((0x200000002000L & l) != 0L && kind > 86) { + kind = 86; } break; case 296: - if ((0x1000000010L & l) != 0L) { + if ((0x2000000020L & l) != 0L) { jjstateSet[jjnewStateCnt++] = 295; } break; - case 298: - if ((0x1000000010L & l) != 0L && kind > 87) { - kind = 87; + case 297: + if ((0x4000000040000L & l) != 0L) { + jjstateSet[jjnewStateCnt++] = 296; } break; case 299: - if ((0x200000002L & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 298; + if ((0x100000001000000L & l) != 0L && kind > 87) { + kind = 87; } break; case 300: - if ((0x4000000040000L & l) != 0L) { + if ((0x2000000020L & l) != 0L) { jjstateSet[jjnewStateCnt++] = 299; } break; case 302: - if ((0x1000000010L & l) != 0L && kind > 88) { + if ((0x8000000080L & l) != 0L && kind > 88) { kind = 88; } break; case 303: - if ((0x200000002L & l) != 0L) { + if ((0x2000000020L & l) != 0L) { jjstateSet[jjnewStateCnt++] = 302; } break; case 304: - if ((0x4000000040000L & l) != 0L) { + if ((0x1000000010L & l) != 0L) { jjstateSet[jjnewStateCnt++] = 303; } break; - case 305: - if ((0x8000000080L & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 304; + case 306: + if ((0x1000000010L & l) != 0L && kind > 89) { + kind = 89; } break; case 307: - if ((0x8000000080000L & l) != 0L && kind > 89) { - kind = 89; + if ((0x200000002L & l) != 0L) { + jjstateSet[jjnewStateCnt++] = 306; } break; case 308: - if ((0x200000002000L & l) != 0L) { + if ((0x4000000040000L & l) != 0L) { jjstateSet[jjnewStateCnt++] = 307; } break; case 310: - if ((0x8000000080000L & l) != 0L && kind > 90) { + if ((0x1000000010L & l) != 0L && kind > 90) { kind = 90; } break; + case 311: + if ((0x200000002L & l) != 0L) { + jjstateSet[jjnewStateCnt++] = 310; + } + break; case 312: - if ((0x400000004000000L & l) != 0L && kind > 91) { - kind = 91; + if ((0x4000000040000L & l) != 0L) { + jjstateSet[jjnewStateCnt++] = 311; } break; case 313: - if ((0x10000000100L & l) != 0L) { + if ((0x8000000080L & l) != 0L) { jjstateSet[jjnewStateCnt++] = 312; } break; case 315: - if ((0x400000004000000L & l) != 0L && kind > 92) { - kind = 92; + if ((0x8000000080000L & l) != 0L && kind > 91) { + kind = 91; } break; case 316: - if ((0x10000000100L & l) != 0L) { + if ((0x200000002000L & l) != 0L) { jjstateSet[jjnewStateCnt++] = 315; } break; - case 317: - if ((0x80000000800L & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 316; + case 318: + if ((0x8000000080000L & l) != 0L && kind > 92) { + kind = 92; } break; case 320: + if ((0x400000004000000L & l) != 0L && kind > 93) { + kind = 93; + } + break; + case 321: + if ((0x10000000100L & l) != 0L) { + jjstateSet[jjnewStateCnt++] = 320; + } + break; + case 323: + if ((0x400000004000000L & l) != 0L && kind > 94) { + kind = 94; + } + break; + case 324: + if ((0x10000000100L & l) != 0L) { + jjstateSet[jjnewStateCnt++] = 323; + } + break; + case 325: + if ((0x80000000800L & l) != 0L) { + jjstateSet[jjnewStateCnt++] = 324; + } + break; + case 328: if ((0x7fffffe07fffffeL & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddTwoStates(321, 322); + jjCheckNAddTwoStates(329, 330); break; - case 321: + case 329: if ((0x7fffffe87fffffeL & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddTwoStates(321, 322); + jjCheckNAddTwoStates(329, 330); break; - case 322: + case 330: if (curChar == 92) { - jjCheckNAddTwoStates(323, 324); + jjCheckNAddTwoStates(331, 332); } break; - case 323: + case 331: if ((0x7fffffffffffffffL & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddTwoStates(321, 322); + jjCheckNAddTwoStates(329, 330); break; - case 324: + case 332: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(493, 496); + jjCheckNAddStates(503, 506); break; - case 326: + case 334: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(497, 503); + jjCheckNAddStates(507, 513); break; - case 327: + case 335: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(504, 506); + jjCheckNAddStates(514, 516); break; - case 328: + case 336: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(507, 510); + jjCheckNAddStates(517, 520); break; - case 329: + case 337: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(511, 515); + jjCheckNAddStates(521, 525); break; - case 330: + case 338: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(516, 521); + jjCheckNAddStates(526, 531); break; - case 332: + case 340: if (curChar == 92) { - jjCheckNAddTwoStates(323, 333); + jjCheckNAddTwoStates(331, 341); } break; - case 333: + case 341: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(522, 525); + jjCheckNAddStates(532, 535); break; - case 334: + case 342: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(526, 532); + jjCheckNAddStates(536, 542); break; - case 335: + case 343: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(533, 535); + jjCheckNAddStates(543, 545); break; - case 336: + case 344: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(536, 539); + jjCheckNAddStates(546, 549); break; - case 337: + case 345: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(540, 544); + jjCheckNAddStates(550, 554); break; - case 338: + case 346: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddStates(545, 550); + jjCheckNAddStates(555, 560); break; - case 339: + case 347: if ((0x20000000200000L & l) != 0L) { - jjAddStates(817, 819); + jjAddStates(827, 829); } break; - case 341: - case 345: + case 349: + case 353: if ((0x7fffffffffffffffL & l) != 0L) { - jjCheckNAddStates(557, 560); + jjCheckNAddStates(567, 570); } break; - case 344: + case 352: if (curChar == 92) { - jjAddStates(838, 839); + jjAddStates(848, 849); } break; - case 346: + case 354: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(561, 565); + jjCheckNAddStates(571, 575); } break; - case 348: + case 356: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(566, 573); + jjCheckNAddStates(576, 583); } break; - case 349: + case 357: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(574, 577); + jjCheckNAddStates(584, 587); } break; - case 350: + case 358: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(578, 582); + jjCheckNAddStates(588, 592); } break; - case 351: + case 359: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(583, 588); + jjCheckNAddStates(593, 598); } break; - case 352: + case 360: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(589, 595); + jjCheckNAddStates(599, 605); } break; - case 354: - case 359: + case 362: + case 367: if ((0x7fffffffffffffffL & l) != 0L) { - jjCheckNAddStates(596, 599); + jjCheckNAddStates(606, 609); } break; - case 356: + case 364: if (curChar == 92) { - jjAddStates(840, 843); + jjAddStates(850, 853); } break; - case 358: + case 366: if (curChar == 92) { - jjAddStates(844, 845); + jjAddStates(854, 855); } break; - case 360: + case 368: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(600, 605); + jjCheckNAddStates(610, 615); } break; - case 362: + case 370: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(606, 614); + jjCheckNAddStates(616, 624); } break; - case 363: + case 371: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(615, 619); + jjCheckNAddStates(625, 629); } break; - case 364: + case 372: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(620, 625); + jjCheckNAddStates(630, 635); } break; - case 365: + case 373: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(626, 632); + jjCheckNAddStates(636, 642); } break; - case 366: + case 374: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(633, 640); + jjCheckNAddStates(643, 650); } break; - case 371: - case 376: + case 379: + case 384: if ((0x7fffffffffffffffL & l) != 0L) { - jjCheckNAddStates(641, 644); + jjCheckNAddStates(651, 654); } break; - case 373: + case 381: if (curChar == 92) { - jjAddStates(846, 849); + jjAddStates(856, 859); } break; - case 375: + case 383: if (curChar == 92) { - jjAddStates(850, 851); + jjAddStates(860, 861); } break; - case 377: + case 385: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(645, 650); + jjCheckNAddStates(655, 660); } break; - case 379: + case 387: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(651, 659); + jjCheckNAddStates(661, 669); } break; - case 380: + case 388: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(660, 664); + jjCheckNAddStates(670, 674); } break; - case 381: + case 389: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(665, 670); + jjCheckNAddStates(675, 680); } break; - case 382: + case 390: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(671, 677); + jjCheckNAddStates(681, 687); } break; - case 383: + case 391: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(678, 685); + jjCheckNAddStates(688, 695); } break; - case 388: + case 396: if ((0x100000001000L & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 340; + jjstateSet[jjnewStateCnt++] = 348; } break; - case 389: + case 397: if ((0x4000000040000L & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 388; + jjstateSet[jjnewStateCnt++] = 396; } break; - case 397: + case 405: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjAddStates(702, 707); + jjAddStates(712, 717); break; - case 398: + case 406: if ((0x7e0000007eL & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 399; + jjstateSet[jjnewStateCnt++] = 407; } break; - case 399: + case 407: if ((0x7e0000007eL & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 400; + jjstateSet[jjnewStateCnt++] = 408; } break; - case 400: + case 408: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAdd(401); + jjCheckNAdd(409); } break; - case 401: - if ((0x7e0000007eL & l) != 0L && kind > 112) { - kind = 112; + case 409: + if ((0x7e0000007eL & l) != 0L && kind > 114) { + kind = 114; } break; - case 402: + case 410: if ((0x7e0000007eL & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 403; + jjstateSet[jjnewStateCnt++] = 411; } break; - case 403: + case 411: if ((0x7e0000007eL & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 404; + jjstateSet[jjnewStateCnt++] = 412; } break; - case 404: + case 412: if ((0x7e0000007eL & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 405; + jjstateSet[jjnewStateCnt++] = 413; } break; - case 405: + case 413: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjstateSet[jjnewStateCnt++] = 393; + jjstateSet[jjnewStateCnt++] = 401; break; - case 406: + case 414: if ((0x7e0000007eL & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 407; + jjstateSet[jjnewStateCnt++] = 415; } break; - case 407: + case 415: if ((0x7e0000007eL & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 408; + jjstateSet[jjnewStateCnt++] = 416; } break; - case 408: + case 416: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjstateSet[jjnewStateCnt++] = 409; + jjstateSet[jjnewStateCnt++] = 417; break; - case 410: + case 418: if ((0x7e0000007eL & l) != 0L) { - jjstateSet[jjnewStateCnt++] = 411; + jjstateSet[jjnewStateCnt++] = 419; } break; - case 411: + case 419: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjstateSet[jjnewStateCnt++] = 412; + jjstateSet[jjnewStateCnt++] = 420; break; - case 414: + case 422: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjstateSet[jjnewStateCnt++] = 415; + jjstateSet[jjnewStateCnt++] = 423; break; - case 423: + case 431: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddTwoStates(424, 430); + jjCheckNAddTwoStates(432, 438); } break; - case 425: + case 433: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjstateSet[jjnewStateCnt++] = 426; + jjstateSet[jjnewStateCnt++] = 434; break; - case 426: + case 434: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAddStates(718, 721); + jjCheckNAddStates(728, 731); break; - case 427: + case 435: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAdd(401); + jjCheckNAdd(409); break; - case 428: + case 436: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAddTwoStates(401, 427); + jjCheckNAddTwoStates(409, 435); break; - case 429: + case 437: if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 112) { - kind = 112; + if (kind > 114) { + kind = 114; } - jjCheckNAddStates(722, 724); + jjCheckNAddStates(732, 734); break; - case 430: + case 438: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(725, 729); + jjCheckNAddStates(735, 739); } break; - case 431: + case 439: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAdd(424); + jjCheckNAdd(432); } break; - case 432: + case 440: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddTwoStates(431, 424); + jjCheckNAddTwoStates(439, 432); } break; - case 433: + case 441: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(730, 732); + jjCheckNAddStates(740, 742); } break; - case 434: + case 442: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(733, 736); + jjCheckNAddStates(743, 746); } break; - case 435: + case 443: if (curChar == 92) { - jjCheckNAddStates(808, 811); + jjCheckNAddStates(818, 821); } break; - case 436: + case 444: if ((0x7e0000007eL & l) == 0L) { break; } if (kind > 72) { kind = 72; } - jjCheckNAddStates(737, 740); + jjCheckNAddStates(747, 750); break; - case 437: + case 445: if ((0x7e0000007eL & l) == 0L) { break; } if (kind > 72) { kind = 72; } - jjCheckNAddStates(741, 747); + jjCheckNAddStates(751, 757); break; - case 438: + case 446: if ((0x7e0000007eL & l) == 0L) { break; } if (kind > 72) { kind = 72; } - jjCheckNAddStates(748, 750); + jjCheckNAddStates(758, 760); break; - case 439: + case 447: if ((0x7e0000007eL & l) == 0L) { break; } if (kind > 72) { kind = 72; } - jjCheckNAddStates(751, 754); + jjCheckNAddStates(761, 764); break; - case 440: + case 448: if ((0x7e0000007eL & l) == 0L) { break; } if (kind > 72) { kind = 72; } - jjCheckNAddStates(755, 759); + jjCheckNAddStates(765, 769); break; - case 441: + case 449: if ((0x7e0000007eL & l) == 0L) { break; } if (kind > 72) { kind = 72; } - jjCheckNAddStates(760, 765); + jjCheckNAddStates(770, 775); break; - case 442: + case 450: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(766, 770); + jjCheckNAddStates(776, 780); } break; - case 443: + case 451: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(771, 778); + jjCheckNAddStates(781, 788); } break; - case 445: + case 453: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(779, 783); + jjCheckNAddStates(789, 793); } break; - case 446: + case 454: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(784, 789); + jjCheckNAddStates(794, 799); } break; - case 447: + case 455: if ((0x7e0000007eL & l) != 0L) { - jjCheckNAddStates(790, 796); + jjCheckNAddStates(800, 806); } break; default: @@ -5240,14 +5308,14 @@ public class ParserTokenManager implements ParserConstants { long l2 = 1L << (curChar & 077); do { switch (jjstateSet[--i]) { - case 506: + case 520: case 113: case 115: if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); break; @@ -5255,8 +5323,8 @@ public class ParserTokenManager implements ParserConstants { if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); break; @@ -5264,12 +5332,21 @@ public class ParserTokenManager implements ParserConstants { if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); break; - case 503: + case 4: + if ((jjbitVec0[i2] & l2) == 0L) { + break; + } + if (kind > 41) { + kind = 41; + } + jjCheckNAddStates(812, 817); + break; + case 517: if ((jjbitVec0[i2] & l2) != 0L) { if (kind > 72) { kind = 72; @@ -5277,24 +5354,15 @@ public class ParserTokenManager implements ParserConstants { jjCheckNAddTwoStates(220, 221); } if ((jjbitVec0[i2] & l2) != 0L) { - jjCheckNAddStates(0, 3); + jjCheckNAddStates(120, 123); } break; - case 4: - if ((jjbitVec0[i2] & l2) == 0L) { - break; - } - if (kind > 41) { - kind = 41; - } - jjCheckNAddStates(802, 807); - break; case 175: if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); break; @@ -5306,15 +5374,15 @@ public class ParserTokenManager implements ParserConstants { jjCheckNAddTwoStates(220, 221); } if ((jjbitVec0[i2] & l2) != 0L) { - jjCheckNAddStates(0, 3); + jjCheckNAddStates(120, 123); } break; case 176: if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); break; @@ -5322,8 +5390,8 @@ public class ParserTokenManager implements ParserConstants { if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 101) { - kind = 101; + if (kind > 103) { + kind = 103; } jjCheckNAddTwoStates(113, 114); break; @@ -5347,19 +5415,19 @@ public class ParserTokenManager implements ParserConstants { case 12: case 20: if ((jjbitVec0[i2] & l2) != 0L) { - jjCheckNAddStates(123, 125); + jjCheckNAddStates(133, 135); } break; case 45: case 50: if ((jjbitVec0[i2] & l2) != 0L) { - jjCheckNAddStates(110, 113); + jjCheckNAddStates(116, 119); } break; case 62: case 67: if ((jjbitVec0[i2] & l2) != 0L) { - jjCheckNAddStates(106, 109); + jjCheckNAddStates(112, 115); } break; case 100: @@ -5367,8 +5435,8 @@ public class ParserTokenManager implements ParserConstants { if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 94) { - kind = 94; + if (kind > 96) { + kind = 96; } jjCheckNAddTwoStates(100, 101); break; @@ -5385,36 +5453,36 @@ public class ParserTokenManager implements ParserConstants { case 230: case 234: if ((jjbitVec0[i2] & l2) != 0L) { - jjCheckNAddStates(0, 3); + jjCheckNAddStates(120, 123); } break; - case 321: - case 323: + case 329: case 331: + case 339: if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 93) { - kind = 93; + if (kind > 95) { + kind = 95; } - jjCheckNAddTwoStates(321, 322); + jjCheckNAddTwoStates(329, 330); break; - case 341: - case 345: + case 349: + case 353: if ((jjbitVec0[i2] & l2) != 0L) { - jjCheckNAddStates(557, 560); + jjCheckNAddStates(567, 570); } break; - case 354: - case 359: + case 362: + case 367: if ((jjbitVec0[i2] & l2) != 0L) { - jjCheckNAddStates(596, 599); + jjCheckNAddStates(606, 609); } break; - case 371: - case 376: + case 379: + case 384: if ((jjbitVec0[i2] & l2) != 0L) { - jjCheckNAddStates(641, 644); + jjCheckNAddStates(651, 654); } break; default: @@ -5428,7 +5496,7 @@ public class ParserTokenManager implements ParserConstants { kind = 0x7fffffff; } ++curPos; - if ((i = jjnewStateCnt) == (startsAt = 503 - (jjnewStateCnt = startsAt))) { + if ((i = jjnewStateCnt) == (startsAt = 517 - (jjnewStateCnt = startsAt))) { return curPos; } try { @@ -5587,68 +5655,69 @@ public class ParserTokenManager implements ParserConstants { return 2; } - static final int[] jjnextStates = { 230, 231, 232, 233, 449, 450, 451, 452, - 453, 454, 268, 455, 456, 457, 271, 458, 459, 460, 274, 461, 462, - 463, 277, 464, 465, 466, 280, 467, 468, 469, 283, 470, 471, 472, - 286, 473, 474, 475, 289, 476, 477, 478, 292, 479, 480, 481, 296, - 482, 483, 484, 300, 485, 486, 487, 305, 488, 489, 490, 308, 491, - 492, 493, 310, 494, 495, 496, 313, 497, 498, 499, 317, 500, 501, - 502, 319, 320, 331, 332, 266, 267, 269, 272, 275, 278, 281, 284, - 287, 290, 293, 297, 301, 306, 309, 311, 314, 318, 262, 263, 243, - 250, 251, 260, 79, 80, 91, 92, 62, 63, 64, 66, 45, 46, 47, 49, 318, - 319, 320, 331, 332, 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, 10, 11, 24, 14, 9, 10, 11, - 24, 14, 9, 10, 11, 25, 24, 14, 9, 10, 11, 25, 26, 45, 52, 46, 47, - 49, 53, 45, 54, 52, 46, 47, 49, 55, 56, 57, 45, 52, 46, 47, 49, 45, - 54, 52, 46, 47, 49, 45, 54, 52, 46, 47, 49, 55, 45, 54, 52, 46, 47, - 49, 55, 56, 62, 69, 63, 64, 66, 70, 62, 71, 69, 63, 64, 66, 72, 73, - 74, 62, 69, 63, 64, 66, 62, 71, 69, 63, 64, 66, 62, 71, 69, 63, 64, - 66, 72, 62, 71, 69, 63, 64, 66, 72, 73, 81, 85, 82, 86, 81, 87, 85, - 82, 88, 89, 90, 81, 85, 82, 81, 87, 85, 82, 81, 87, 85, 82, 88, 81, - 87, 85, 82, 88, 89, 85, 81, 82, 94, 95, 85, 81, 82, 96, 97, 98, 85, - 81, 82, 95, 85, 81, 82, 95, 85, 81, 82, 96, 95, 85, 81, 82, 96, 97, - 100, 104, 101, 105, 100, 106, 104, 101, 107, 108, 109, 100, 104, - 101, 100, 106, 104, 101, 100, 106, 104, 101, 107, 100, 106, 104, - 101, 107, 108, 113, 117, 114, 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, 141, - 148, 149, 220, 224, 221, 225, 220, 226, 224, 221, 227, 228, 229, - 220, 224, 221, 220, 226, 224, 221, 220, 226, 224, 221, 227, 220, - 226, 224, 221, 227, 228, 230, 232, 233, 236, 237, 230, 238, 232, - 233, 236, 239, 240, 241, 230, 232, 233, 236, 230, 238, 232, 233, - 236, 230, 238, 232, 233, 236, 239, 230, 238, 232, 233, 236, 239, - 240, 321, 325, 322, 326, 321, 327, 325, 322, 328, 329, 330, 321, - 325, 322, 321, 327, 325, 322, 321, 327, 325, 322, 328, 321, 327, - 325, 322, 328, 329, 325, 321, 322, 334, 335, 325, 321, 322, 336, - 337, 338, 325, 321, 322, 335, 325, 321, 322, 335, 325, 321, 322, - 336, 335, 325, 321, 322, 336, 337, 341, 353, 370, 343, 344, 387, - 341, 342, 343, 344, 341, 343, 344, 347, 348, 341, 349, 343, 344, - 347, 350, 351, 352, 341, 343, 344, 347, 341, 349, 343, 344, 347, - 341, 349, 343, 344, 347, 350, 341, 349, 343, 344, 347, 350, 351, - 354, 355, 356, 358, 354, 361, 355, 356, 358, 362, 354, 363, 361, - 355, 356, 358, 364, 365, 366, 354, 361, 355, 356, 358, 354, 363, - 361, 355, 356, 358, 354, 363, 361, 355, 356, 358, 364, 354, 363, - 361, 355, 356, 358, 364, 365, 371, 372, 373, 375, 371, 378, 372, - 373, 375, 379, 371, 380, 378, 372, 373, 375, 381, 382, 383, 371, - 378, 372, 373, 375, 371, 380, 378, 372, 373, 375, 371, 380, 378, - 372, 373, 375, 381, 371, 380, 378, 372, 373, 375, 381, 382, 341, - 353, 370, 342, 343, 344, 387, 391, 397, 393, 394, 395, 396, 393, - 394, 395, 398, 402, 406, 410, 414, 418, 393, 416, 417, 393, 419, - 420, 421, 393, 419, 420, 401, 427, 428, 429, 401, 427, 428, 431, - 424, 432, 433, 434, 431, 424, 432, 431, 424, 432, 433, 224, 220, - 221, 437, 438, 224, 220, 221, 439, 440, 441, 224, 220, 221, 438, - 224, 220, 221, 438, 224, 220, 221, 439, 438, 224, 220, 221, 439, - 440, 230, 232, 233, 236, 443, 444, 230, 232, 233, 236, 445, 446, - 447, 444, 230, 232, 233, 236, 444, 230, 232, 233, 236, 445, 444, - 230, 232, 233, 236, 445, 446, 500, 319, 320, 331, 332, 220, 230, - 231, 232, 233, 221, 222, 436, 234, 442, 166, 179, 190, 206, 218, - 389, 390, 422, 111, 112, 123, 124, 48, 58, 60, 59, 50, 51, 65, 75, - 77, 76, 67, 68, 102, 103, 345, 346, 357, 367, 369, 368, 359, 360, - 374, 384, 386, 385, 376, 377, }; + static final int[] jjnextStates = { 457, 458, 459, 460, 461, 462, 268, 463, + 464, 465, 271, 466, 467, 468, 274, 469, 470, 471, 277, 472, 473, + 474, 280, 475, 476, 477, 283, 478, 479, 480, 286, 481, 482, 483, + 289, 484, 485, 486, 293, 487, 488, 489, 297, 490, 491, 492, 300, + 493, 494, 495, 304, 496, 497, 498, 308, 499, 500, 501, 313, 502, + 503, 504, 316, 505, 506, 507, 318, 508, 509, 510, 321, 511, 512, + 513, 325, 514, 515, 516, 327, 328, 339, 340, 266, 267, 269, 272, + 275, 278, 281, 284, 287, 290, 294, 298, 301, 305, 309, 314, 317, + 319, 322, 326, 262, 263, 243, 250, 251, 260, 79, 80, 91, 92, 62, + 63, 64, 66, 45, 46, 47, 49, 230, 231, 232, 233, 326, 327, 328, 339, + 340, 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, 10, 11, 24, 14, 9, 10, 11, 24, 14, 9, 10, + 11, 25, 24, 14, 9, 10, 11, 25, 26, 45, 52, 46, 47, 49, 53, 45, 54, + 52, 46, 47, 49, 55, 56, 57, 45, 52, 46, 47, 49, 45, 54, 52, 46, 47, + 49, 45, 54, 52, 46, 47, 49, 55, 45, 54, 52, 46, 47, 49, 55, 56, 62, + 69, 63, 64, 66, 70, 62, 71, 69, 63, 64, 66, 72, 73, 74, 62, 69, 63, + 64, 66, 62, 71, 69, 63, 64, 66, 62, 71, 69, 63, 64, 66, 72, 62, 71, + 69, 63, 64, 66, 72, 73, 81, 85, 82, 86, 81, 87, 85, 82, 88, 89, 90, + 81, 85, 82, 81, 87, 85, 82, 81, 87, 85, 82, 88, 81, 87, 85, 82, 88, + 89, 85, 81, 82, 94, 95, 85, 81, 82, 96, 97, 98, 85, 81, 82, 95, 85, + 81, 82, 95, 85, 81, 82, 96, 95, 85, 81, 82, 96, 97, 100, 104, 101, + 105, 100, 106, 104, 101, 107, 108, 109, 100, 104, 101, 100, 106, + 104, 101, 100, 106, 104, 101, 107, 100, 106, 104, 101, 107, 108, + 113, 117, 114, 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, 141, 148, 149, 220, + 224, 221, 225, 220, 226, 224, 221, 227, 228, 229, 220, 224, 221, + 220, 226, 224, 221, 220, 226, 224, 221, 227, 220, 226, 224, 221, + 227, 228, 230, 232, 233, 236, 237, 230, 238, 232, 233, 236, 239, + 240, 241, 230, 232, 233, 236, 230, 238, 232, 233, 236, 230, 238, + 232, 233, 236, 239, 230, 238, 232, 233, 236, 239, 240, 329, 333, + 330, 334, 329, 335, 333, 330, 336, 337, 338, 329, 333, 330, 329, + 335, 333, 330, 329, 335, 333, 330, 336, 329, 335, 333, 330, 336, + 337, 333, 329, 330, 342, 343, 333, 329, 330, 344, 345, 346, 333, + 329, 330, 343, 333, 329, 330, 343, 333, 329, 330, 344, 343, 333, + 329, 330, 344, 345, 349, 361, 378, 351, 352, 395, 349, 350, 351, + 352, 349, 351, 352, 355, 356, 349, 357, 351, 352, 355, 358, 359, + 360, 349, 351, 352, 355, 349, 357, 351, 352, 355, 349, 357, 351, + 352, 355, 358, 349, 357, 351, 352, 355, 358, 359, 362, 363, 364, + 366, 362, 369, 363, 364, 366, 370, 362, 371, 369, 363, 364, 366, + 372, 373, 374, 362, 369, 363, 364, 366, 362, 371, 369, 363, 364, + 366, 362, 371, 369, 363, 364, 366, 372, 362, 371, 369, 363, 364, + 366, 372, 373, 379, 380, 381, 383, 379, 386, 380, 381, 383, 387, + 379, 388, 386, 380, 381, 383, 389, 390, 391, 379, 386, 380, 381, + 383, 379, 388, 386, 380, 381, 383, 379, 388, 386, 380, 381, 383, + 389, 379, 388, 386, 380, 381, 383, 389, 390, 349, 361, 378, 350, + 351, 352, 395, 399, 405, 401, 402, 403, 404, 401, 402, 403, 406, + 410, 414, 418, 422, 426, 401, 424, 425, 401, 427, 428, 429, 401, + 427, 428, 409, 435, 436, 437, 409, 435, 436, 439, 432, 440, 441, + 442, 439, 432, 440, 439, 432, 440, 441, 224, 220, 221, 445, 446, + 224, 220, 221, 447, 448, 449, 224, 220, 221, 446, 224, 220, 221, + 446, 224, 220, 221, 447, 446, 224, 220, 221, 447, 448, 230, 232, + 233, 236, 451, 452, 230, 232, 233, 236, 453, 454, 455, 452, 230, + 232, 233, 236, 452, 230, 232, 233, 236, 453, 452, 230, 232, 233, + 236, 453, 454, 514, 327, 328, 339, 340, 220, 230, 231, 232, 233, + 221, 222, 444, 234, 450, 166, 179, 190, 206, 218, 397, 398, 430, + 111, 112, 123, 124, 48, 58, 60, 59, 50, 51, 65, 75, 77, 76, 67, 68, + 102, 103, 353, 354, 365, 375, 377, 376, 367, 368, 382, 392, 394, + 393, 384, 385, }; /** Token literal values. */ public static final String[] jjstrLiteralImages = { "", null, null, null, @@ -5663,7 +5732,7 @@ public class ParserTokenManager implements ParserConstants { 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 = { "DEFAULT", @@ -5678,14 +5747,14 @@ public class ParserTokenManager implements ParserConstants { -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 = { 0xfffc03fffffffc03L, 0x3f007ffffffbffL, }; + -1, -1, -1, -1, -1, -1, -1, -1, -1, }; + static final long[] jjtoToken = { 0xfffc03fffffffc03L, 0xfc01fffffffbffL, }; static final long[] jjtoSkip = { 0x190L, 0x0L, }; static final long[] jjtoSpecial = { 0x80L, 0x0L, }; static final long[] jjtoMore = { 0x26cL, 0x0L, }; protected CharStream input_stream; - private final int[] jjrounds = new int[503]; - private final int[] jjstateSet = new int[1006]; + private final int[] jjrounds = new int[517]; + private final int[] jjstateSet = new int[1034]; private final StringBuilder jjimage = new StringBuilder(); private StringBuilder image = jjimage; private int jjimageLen; @@ -5714,7 +5783,7 @@ public class ParserTokenManager implements ParserConstants { private void ReInitRounds() { int i; jjround = 0x80000001; - for (i = 503; i-- > 0;) { + for (i = 517; i-- > 0;) { jjrounds[i] = 0x80000000; } } @@ -5766,6 +5835,21 @@ public class ParserTokenManager implements ParserConstants { int jjmatchedPos; int jjmatchedKind; + /* + * Copyright 2000-2013 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. + */ /** Get the next Token. */ public Token getNextToken() { Token specialToken = null; @@ -5791,8 +5875,8 @@ public class ParserTokenManager implements ParserConstants { jjmatchedKind = 0x7fffffff; jjmatchedPos = 0; curPos = jjMoveStringLiteralDfa0_0(); - if (jjmatchedPos == 0 && jjmatchedKind > 117) { - jjmatchedKind = 117; + if (jjmatchedPos == 0 && jjmatchedKind > 119) { + jjmatchedKind = 119; } break; case 1: diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/SCSSLexicalUnit.java b/theme-compiler/src/com/vaadin/sass/internal/parser/SCSSLexicalUnit.java index c94367b741..935e4e5abd 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/SCSSLexicalUnit.java +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/SCSSLexicalUnit.java @@ -20,6 +20,9 @@ import org.w3c.css.sac.LexicalUnit; public interface SCSSLexicalUnit extends LexicalUnit { static final short SCSS_VARIABLE = 100; + static final short SAC_LEM = 200; + static final short SAC_REM = 201; + LexicalUnitImpl divide(LexicalUnitImpl denominator); LexicalUnitImpl add(LexicalUnitImpl another); diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/SCSSParseException.java b/theme-compiler/src/com/vaadin/sass/internal/parser/SCSSParseException.java new file mode 100644 index 0000000000..6d56c8128e --- /dev/null +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/SCSSParseException.java @@ -0,0 +1,34 @@ +/* + * Copyright 2000-2013 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.sass.internal.parser; + +public class SCSSParseException extends ParseException { + private ParseException parseException; + private String fileName; + + public SCSSParseException(ParseException parseException, String fileName) { + this.parseException = parseException; + this.fileName = fileName; + } + + @Override + public String getMessage() { + StringBuilder builder = new StringBuilder(); + builder.append("Error when parsing file ").append(fileName) + .append("\n").append(parseException.getMessage()); + return builder.toString(); + } +} diff --git a/theme-compiler/src/com/vaadin/sass/internal/tree/FunctionNode.java b/theme-compiler/src/com/vaadin/sass/internal/tree/FunctionNode.java index 919db1fdd7..ced4671051 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/tree/FunctionNode.java +++ b/theme-compiler/src/com/vaadin/sass/internal/tree/FunctionNode.java @@ -19,6 +19,7 @@ package com.vaadin.sass.internal.tree; import java.util.ArrayList; import com.vaadin.sass.internal.ScssStylesheet; +import com.vaadin.sass.internal.util.StringUtil; public class FunctionNode extends Node implements IVariableNode { private static final long serialVersionUID = -5383104165955523923L; @@ -47,8 +48,9 @@ public class FunctionNode extends Node implements IVariableNode { @Override public void replaceVariables(ArrayList<VariableNode> variables) { for (final VariableNode node : variables) { - if (args.contains(node.getName())) { - args.replaceAll(node.getName(), node.getExpr().toString()); + if (StringUtil.containsVariable(args, node.getName())) { + args = StringUtil.replaceVariable(args, node.getName(), node + .getExpr().toString()); } } } diff --git a/theme-compiler/src/com/vaadin/sass/internal/tree/MicrosoftRuleNode.java b/theme-compiler/src/com/vaadin/sass/internal/tree/MicrosoftRuleNode.java index 1644c1c336..3938188a72 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/tree/MicrosoftRuleNode.java +++ b/theme-compiler/src/com/vaadin/sass/internal/tree/MicrosoftRuleNode.java @@ -18,6 +18,7 @@ package com.vaadin.sass.internal.tree; import java.util.ArrayList; import com.vaadin.sass.internal.ScssStylesheet; +import com.vaadin.sass.internal.util.StringUtil; public class MicrosoftRuleNode extends Node implements IVariableNode { @@ -32,9 +33,9 @@ public class MicrosoftRuleNode extends Node implements IVariableNode { @Override public void replaceVariables(ArrayList<VariableNode> variables) { for (final VariableNode var : variables) { - if (value.contains("$" + var.getName())) { - value = value.replaceAll("$" + var.getName(), var.getExpr() - .toString()); + if (StringUtil.containsVariable(value, var.getName())) { + value = StringUtil.replaceVariable(value, var.getName(), var + .getExpr().toString()); } } } diff --git a/theme-compiler/src/com/vaadin/sass/internal/tree/NestPropertiesNode.java b/theme-compiler/src/com/vaadin/sass/internal/tree/NestPropertiesNode.java index 63a42034bf..fc50cfda61 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/tree/NestPropertiesNode.java +++ b/theme-compiler/src/com/vaadin/sass/internal/tree/NestPropertiesNode.java @@ -59,10 +59,9 @@ public class NestPropertiesNode extends Node implements IVariableNode { @Override public void replaceVariables(ArrayList<VariableNode> variables) { - for (final VariableNode node : variables) { - if (name.contains(node.getName())) { - name = name.replaceAll(node.getName(), node.getExpr() - .toString()); + for (Node child : getChildren()) { + if (child instanceof RuleNode) { + ((RuleNode) child).replaceVariables(variables); } } } diff --git a/theme-compiler/src/com/vaadin/sass/internal/tree/RuleNode.java b/theme-compiler/src/com/vaadin/sass/internal/tree/RuleNode.java index 73ab31b4a1..a78d9d66d2 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/tree/RuleNode.java +++ b/theme-compiler/src/com/vaadin/sass/internal/tree/RuleNode.java @@ -21,6 +21,7 @@ import java.util.regex.Pattern; import com.vaadin.sass.internal.ScssStylesheet; import com.vaadin.sass.internal.parser.LexicalUnitImpl; +import com.vaadin.sass.internal.util.StringUtil; public class RuleNode extends Node implements IVariableNode { private static final long serialVersionUID = 6653493127869037022L; @@ -95,28 +96,14 @@ public class RuleNode extends Node implements IVariableNode { if (value.getLexicalUnitType() == LexicalUnitImpl.SAC_FUNCTION) { if (value.getParameters() != null) { - if (value.getParameters().toString() - .contains(node.getName())) { - + if (StringUtil.containsVariable(value.getParameters() + .toString(), node.getName())) { LexicalUnitImpl param = value.getParameters(); while (param != null) { - if (param.getValue().toString() - .contains(node.getName())) { - - String value = node.getExpr().toString(); - - LexicalUnitImpl prev = param - .getPreviousLexicalUnit(); - LexicalUnitImpl next = param - .getNextLexicalUnit(); - - if (param.getLexicalUnitType() == LexicalUnitImpl.SCSS_VARIABLE) { - param.setStringValue(value); - param.setLexicalUnitType(node.getExpr() - .getLexicalUnitType()); - param.setPrevLexicalUnit(prev); - param.setNextLexicalUnit(next); - } + if (param.getLexicalUnitType() == LexicalUnitImpl.SCSS_VARIABLE + && param.getValue().toString() + .equals(node.getName())) { + param.replaceValue(node.getExpr()); } param = param.getNextLexicalUnit(); } diff --git a/theme-compiler/src/com/vaadin/sass/internal/tree/SimpleNode.java b/theme-compiler/src/com/vaadin/sass/internal/tree/SimpleNode.java index cb27498562..796f4d8d1d 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/tree/SimpleNode.java +++ b/theme-compiler/src/com/vaadin/sass/internal/tree/SimpleNode.java @@ -18,6 +18,7 @@ package com.vaadin.sass.internal.tree; import java.util.ArrayList; import com.vaadin.sass.internal.ScssStylesheet; +import com.vaadin.sass.internal.util.StringUtil; /** * A simple BlockNode where input text equals output. <b>Note : </b> ignores any @@ -44,9 +45,9 @@ public class SimpleNode extends Node implements IVariableNode { @Override public void replaceVariables(ArrayList<VariableNode> variables) { for (final VariableNode node : variables) { - if (text.contains(node.getName())) { - text = text.replaceAll(node.getName(), node.getExpr() - .toString()); + if (StringUtil.containsVariable(text, node.getName())) { + text = StringUtil.replaceVariable(text, node.getName(), node + .getExpr().toString()); } } } diff --git a/theme-compiler/src/com/vaadin/sass/internal/tree/VariableNode.java b/theme-compiler/src/com/vaadin/sass/internal/tree/VariableNode.java index f9b6f9dc8e..90be727f88 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/tree/VariableNode.java +++ b/theme-compiler/src/com/vaadin/sass/internal/tree/VariableNode.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import com.vaadin.sass.internal.ScssStylesheet; import com.vaadin.sass.internal.parser.LexicalUnitImpl; +import com.vaadin.sass.internal.util.StringUtil; import com.vaadin.sass.internal.visitor.VariableNodeHandler; public class VariableNode extends Node implements IVariableNode { @@ -72,10 +73,11 @@ public class VariableNode extends Node implements IVariableNode { for (final VariableNode node : variables) { if (!equals(node)) { - if (expr.toString().contains("$" + node.getName())) { + if (StringUtil + .containsVariable(expr.toString(), node.getName())) { if (expr.getParameters() != null - && expr.getParameters().toString() - .contains("$" + node.getName())) { + && StringUtil.containsVariable(expr.getParameters() + .toString(), node.getName())) { replaceValues(expr.getParameters(), node); } else if (expr.getLexicalUnitType() == LexicalUnitImpl.SCSS_VARIABLE) { replaceValues(expr, node); diff --git a/theme-compiler/src/com/vaadin/sass/internal/tree/controldirective/IfNode.java b/theme-compiler/src/com/vaadin/sass/internal/tree/controldirective/IfNode.java index de8a5a8551..af795a58c3 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/tree/controldirective/IfNode.java +++ b/theme-compiler/src/com/vaadin/sass/internal/tree/controldirective/IfNode.java @@ -16,12 +16,12 @@ package com.vaadin.sass.internal.tree.controldirective; import java.util.ArrayList; -import java.util.regex.Pattern; import com.vaadin.sass.internal.ScssStylesheet; import com.vaadin.sass.internal.tree.IVariableNode; import com.vaadin.sass.internal.tree.Node; import com.vaadin.sass.internal.tree.VariableNode; +import com.vaadin.sass.internal.util.StringUtil; public class IfNode extends Node implements IfElseNode, IVariableNode { private String expression; @@ -47,10 +47,9 @@ public class IfNode extends Node implements IfElseNode, IVariableNode { @Override public void replaceVariables(ArrayList<VariableNode> variables) { for (final VariableNode node : variables) { - String variable = "$" + node.getName(); - if (expression.contains(variable)) { - expression = expression.replaceAll(Pattern.quote(variable), - node.getExpr().toString()); + if (StringUtil.containsVariable(expression, node.getName())) { + expression = StringUtil.replaceVariable(expression, + node.getName(), node.getExpr().toString()); } } } diff --git a/theme-compiler/src/com/vaadin/sass/internal/util/StringUtil.java b/theme-compiler/src/com/vaadin/sass/internal/util/StringUtil.java index dcfd3db5c6..cf227fe3a3 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/util/StringUtil.java +++ b/theme-compiler/src/com/vaadin/sass/internal/util/StringUtil.java @@ -21,6 +21,8 @@ import java.util.Collection; import java.util.Iterator; import java.util.LinkedList; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class StringUtil { private static final String FOLDER_SEPARATOR = "/"; // folder separator @@ -133,4 +135,45 @@ public class StringUtil { String delim) { return collectionToDelimitedString(coll, delim, "", ""); } + + /** + * Check if a String contains a SCSS variable, using whole word match. + * + * @param text + * text to be checked + * @Param varName SCSS variable name to be checked. (Without '$' sign) + * @return true if the text contains the SCSS variable, false if not + */ + public static boolean containsVariable(String text, String varName) { + StringBuilder builder = new StringBuilder(); + // (?![\\w-]) means lookahead, the next one shouldn't be a word + // character nor a dash. + builder.append("\\$").append(Pattern.quote(varName)) + .append("(?![\\w-])"); + Pattern pattern = Pattern.compile(builder.toString()); + Matcher matcher = pattern.matcher(text); + return matcher.find(); + } + + /** + * Replace the SCSS variable in a String to its corresponding value, using + * whole word match. + * + * @param text + * text which contains the SCSS variable + * @param varName + * SCSS variable name + * @param value + * the value of the SCSS variable + * @return the String after replacing + */ + public static String replaceVariable(String text, String varName, + String value) { + StringBuilder builder = new StringBuilder(); + // (?![\\w-]) means lookahead, the next one shouldn't be a word + // character nor a dash. + builder.append("\\$").append(Pattern.quote(varName)) + .append("(?![\\w-])"); + return text.replaceAll(builder.toString(), value); + } } diff --git a/theme-compiler/tests/resources/automatic/css/expressions.css b/theme-compiler/tests/resources/automatic/css/expressions.css new file mode 100644 index 0000000000..453502c21d --- /dev/null +++ b/theme-compiler/tests/resources/automatic/css/expressions.css @@ -0,0 +1,3 @@ +.v-ie6 .v-window-modalitycurtain { + top: expression(document.documentElement.scrollTop + "px"); +}
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/css/mixin-multiple-params.css b/theme-compiler/tests/resources/automatic/css/mixin-multiple-params.css new file mode 100644 index 0000000000..affb47896f --- /dev/null +++ b/theme-compiler/tests/resources/automatic/css/mixin-multiple-params.css @@ -0,0 +1,4 @@ +-webkit-test: foo bar; +-moz-test: foo bar; +-webkit-test: foo bar zoo; +-moz-test: foo bar zoo;
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/css/negative-rem-value.css b/theme-compiler/tests/resources/automatic/css/negative-rem-value.css new file mode 100644 index 0000000000..fdb638c61c --- /dev/null +++ b/theme-compiler/tests/resources/automatic/css/negative-rem-value.css @@ -0,0 +1,5 @@ +* { + top: -0.0625rem; + bottom: -0.0625lem; + margin-top: -1px; +}
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/css/selector-with-parenthesis.css b/theme-compiler/tests/resources/automatic/css/selector-with-parenthesis.css new file mode 100644 index 0000000000..5b9066b7f0 --- /dev/null +++ b/theme-compiler/tests/resources/automatic/css/selector-with-parenthesis.css @@ -0,0 +1,5 @@ +@charset "UTF-8"; + +.foo .v-button:not(.link) { + color: #323232; +}
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/css/var-in-css-function.css b/theme-compiler/tests/resources/automatic/css/var-in-css-function.css new file mode 100644 index 0000000000..07a921678d --- /dev/null +++ b/theme-compiler/tests/resources/automatic/css/var-in-css-function.css @@ -0,0 +1,4 @@ +.v-window-footer { + background: linear-gradient(bottom, hsl(110, 50%, 98%), hsl(110, 50%, 90%)); + abc: rgba(rgb(0, 255, 13), 0.85); +}
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/css/var-substring-match.css b/theme-compiler/tests/resources/automatic/css/var-substring-match.css new file mode 100644 index 0000000000..54c97eac63 --- /dev/null +++ b/theme-compiler/tests/resources/automatic/css/var-substring-match.css @@ -0,0 +1,3 @@ +.foo { + font-size: 10px; +}
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/scss/expressions.scss b/theme-compiler/tests/resources/automatic/scss/expressions.scss new file mode 100644 index 0000000000..453502c21d --- /dev/null +++ b/theme-compiler/tests/resources/automatic/scss/expressions.scss @@ -0,0 +1,3 @@ +.v-ie6 .v-window-modalitycurtain { + top: expression(document.documentElement.scrollTop + "px"); +}
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/scss/mixin-multiple-params.scss b/theme-compiler/tests/resources/automatic/scss/mixin-multiple-params.scss new file mode 100644 index 0000000000..2695ef9860 --- /dev/null +++ b/theme-compiler/tests/resources/automatic/scss/mixin-multiple-params.scss @@ -0,0 +1,10 @@ +@mixin test2 ($p1, $p2) { + -webkit-test: $p1 $p2; + -moz-test: $p1 $p2; +} +@mixin test3 ($p1, $p2, $p3) { + -webkit-test: $p1 $p2 $p3; + -moz-test: $p1 $p2 $p3; +} +@include test2(foo, bar); +@include test3(foo, bar, zoo);
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/scss/negative-rem-value.scss b/theme-compiler/tests/resources/automatic/scss/negative-rem-value.scss new file mode 100644 index 0000000000..20c001fc42 --- /dev/null +++ b/theme-compiler/tests/resources/automatic/scss/negative-rem-value.scss @@ -0,0 +1,5 @@ +* { + top: -.0625rem; + bottom: -.0625lem; + margin-top: -1px; +}
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/scss/selector-with-parenthesis.scss b/theme-compiler/tests/resources/automatic/scss/selector-with-parenthesis.scss new file mode 100644 index 0000000000..8bc6271e29 --- /dev/null +++ b/theme-compiler/tests/resources/automatic/scss/selector-with-parenthesis.scss @@ -0,0 +1,11 @@ +@charset "UTF-8"; + +@mixin buttons { + .v-button:not(.link) { + color: #323232; + } +} + +.foo { + @include buttons; +}
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/scss/var-in-css-function.scss b/theme-compiler/tests/resources/automatic/scss/var-in-css-function.scss new file mode 100644 index 0000000000..72b371ba57 --- /dev/null +++ b/theme-compiler/tests/resources/automatic/scss/var-in-css-function.scss @@ -0,0 +1,15 @@ +$very_light: 98%; +$light: 90%; + +$hue1: 110; +$saturation1: 50%; +$very_light1: hsl($hue1, $saturation1, $very_light); +$light1: hsl($hue1, $saturation1, $light); + +$color: rgb(0, 255, 13); +.v-window-footer { + background: linear-gradient(bottom, $very_light1, $light1); + abc: rgba($color, .85); +} + + diff --git a/theme-compiler/tests/resources/automatic/scss/var-substring-match.scss b/theme-compiler/tests/resources/automatic/scss/var-substring-match.scss new file mode 100644 index 0000000000..5acfb799a1 --- /dev/null +++ b/theme-compiler/tests/resources/automatic/scss/var-substring-match.scss @@ -0,0 +1,8 @@ +@mixin mx($f: 10px) { + .foo { + font: { + size: $f; + } + } +} +@include mx;
\ No newline at end of file diff --git a/theme-compiler/tests/resources/basic/reindeer.css b/theme-compiler/tests/resources/basic/reindeer.css index af02070e72..869ce71367 100644 --- a/theme-compiler/tests/resources/basic/reindeer.css +++ b/theme-compiler/tests/resources/basic/reindeer.css @@ -2414,6 +2414,7 @@ div.v-window-header { .v-shadow-window { position: absolute; + top: expression(document.documentElement.scrollTop + "px"); } .v-shadow-window .top-left { diff --git a/theme-compiler/tests/src/com/vaadin/sass/internal/util/StringUtilTest.java b/theme-compiler/tests/src/com/vaadin/sass/internal/util/StringUtilTest.java new file mode 100644 index 0000000000..b05b0e9dcf --- /dev/null +++ b/theme-compiler/tests/src/com/vaadin/sass/internal/util/StringUtilTest.java @@ -0,0 +1,53 @@ +package com.vaadin.sass.internal.util; + +import org.junit.Assert; +import org.junit.Test; + +public class StringUtilTest { + + @Test + public void testContainsVariable() { + String sentence = "$var1 var2"; + String word = "var"; + Assert.assertFalse(StringUtil.containsVariable(sentence, word)); + + word = "var1"; + Assert.assertTrue(StringUtil.containsVariable(sentence, word)); + + String var2 = "var2"; + Assert.assertFalse(StringUtil.containsVariable(sentence, var2)); + } + + @Test + public void testContainsVariableWithDash() { + String sentence = "$var- var2"; + String word = "var"; + Assert.assertFalse(StringUtil.containsVariable(sentence, word)); + } + + @Test + public void testReplaceVariable() { + String sentence = "$var1 var2"; + String word = "var"; + String value = "abc"; + Assert.assertEquals(sentence, + StringUtil.replaceVariable(sentence, word, value)); + + word = "var1"; + Assert.assertEquals("abc var2", + StringUtil.replaceVariable(sentence, word, value)); + + String var2 = "var2"; + Assert.assertEquals(sentence, + StringUtil.replaceVariable(sentence, var2, value)); + } + + @Test + public void testReplaceVariableWithDash() { + String sentence = "$var- var2"; + String word = "var"; + String value = "abc"; + Assert.assertEquals(sentence, + StringUtil.replaceVariable(sentence, word, value)); + } +} diff --git a/uitest/src/com/vaadin/tests/components/OutOfSyncTest.html b/uitest/src/com/vaadin/tests/components/OutOfSyncTest.html new file mode 100644 index 0000000000..4828069e2a --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/OutOfSyncTest.html @@ -0,0 +1,38 @@ +<?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/OutOfSyncTest?restartApplication</td> + <td></td> +</tr> +<tr> + <td>pause</td> + <td>1000</td> + <td></td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runOutOfSyncTest::/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<!--Out of sync occured -> the button should be removed--> +<tr> + <td>assertElementNotPresent</td> + <td>vaadin=runOutOfSyncTest::/VButton[0]</td> + <td></td> +</tr> + +</tbody></table> +</body> +</html> diff --git a/uitest/src/com/vaadin/tests/components/OutOfSyncTest.java b/uitest/src/com/vaadin/tests/components/OutOfSyncTest.java new file mode 100644 index 0000000000..0efb519e8d --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/OutOfSyncTest.java @@ -0,0 +1,55 @@ +package com.vaadin.tests.components; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; +import com.vaadin.ui.Button.ClickListener; +import com.vaadin.ui.Notification; + +public class OutOfSyncTest extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + Button b = new Button("Click me after 1s to be out of sync"); + b.addClickListener(new ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + Notification.show("This code will never be reached"); + } + }); + setContent(b); + Thread t = new Thread(new Runnable() { + + @Override + public void run() { + try { + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + // Remove button but prevent repaint -> causes out of sync + // issues + getSession().lock(); + try { + setContent(null); + getConnectorTracker().markClean(OutOfSyncTest.this); + } finally { + getSession().unlock(); + } + } + }); + t.start(); + } + + @Override + protected String getTestDescription() { + return "Click the button after 1s when it has been removed server side (causing synchronization problems)"; + } + + @Override + protected Integer getTicketNumber() { + return 10780; + } + +} diff --git a/uitest/src/com/vaadin/tests/components/button/ButtonToggleIcons.html b/uitest/src/com/vaadin/tests/components/button/ButtonToggleIcons.html new file mode 100644 index 0000000000..642abd8120 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/button/ButtonToggleIcons.html @@ -0,0 +1,72 @@ +<?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.button.ButtonToggleIcons?restartApplication</td> + <td></td> +</tr> +<tr> + <td>assertNotCSSClass</td> + <td>vaadin=runcomvaadintestscomponentsbuttonButtonToggleIcons::/VVerticalLayout[0]/Slot[0]/VButton[0]/domChild[0]/domChild[0]</td> + <td>v-icon</td> +</tr> +<tr> + <td>assertNotCSSClass</td> + <td>vaadin=runcomvaadintestscomponentsbuttonButtonToggleIcons::/VVerticalLayout[0]/Slot[1]/VNativeButton[0]/domChild[0]</td> + <td>v-icon</td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestscomponentsbuttonButtonToggleIcons::/VVerticalLayout[0]/Slot[0]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>assertCSSClass</td> + <td>vaadin=runcomvaadintestscomponentsbuttonButtonToggleIcons::/VVerticalLayout[0]/Slot[0]/VButton[0]/domChild[0]/domChild[0]</td> + <td>v-icon</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentsbuttonButtonToggleIcons::/VVerticalLayout[0]/Slot[1]/VNativeButton[0]</td> + <td>40,14</td> +</tr> +<tr> + <td>assertCSSClass</td> + <td>vaadin=runcomvaadintestscomponentsbuttonButtonToggleIcons::/VVerticalLayout[0]/Slot[1]/VNativeButton[0]/domChild[0]</td> + <td>v-icon</td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runcomvaadintestscomponentsbuttonButtonToggleIcons::/VVerticalLayout[0]/Slot[0]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>assertNotCSSClass</td> + <td>vaadin=runcomvaadintestscomponentsbuttonButtonToggleIcons::/VVerticalLayout[0]/Slot[0]/VButton[0]/domChild[0]/domChild[0]</td> + <td>v-icon</td> +</tr> +<tr> + <td>mouseClick</td> + <td>vaadin=runcomvaadintestscomponentsbuttonButtonToggleIcons::/VVerticalLayout[0]/Slot[1]/VNativeButton[0]</td> + <td>40,14</td> +</tr> +<tr> + <td>assertNotCSSClass</td> + <td>vaadin=runcomvaadintestscomponentsbuttonButtonToggleIcons::/VVerticalLayout[0]/Slot[1]/VNativeButton[0]/domChild[0]</td> + <td>v-icon</td> +</tr> + +</tbody></table> +</body> +</html> diff --git a/uitest/src/com/vaadin/tests/components/button/ButtonToggleIcons.java b/uitest/src/com/vaadin/tests/components/button/ButtonToggleIcons.java new file mode 100644 index 0000000000..626ed1d250 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/button/ButtonToggleIcons.java @@ -0,0 +1,38 @@ +package com.vaadin.tests.components.button;
+
+import com.vaadin.server.ThemeResource;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Button.ClickListener;
+import com.vaadin.ui.NativeButton;
+import com.vaadin.ui.UI;
+import com.vaadin.ui.VerticalLayout;
+
+@SuppressWarnings("serial")
+public class ButtonToggleIcons extends UI {
+
+ @Override
+ protected void init(final VaadinRequest request) {
+ final VerticalLayout layout = new VerticalLayout();
+ setContent(layout);
+
+ final ThemeResource iconResource = new ThemeResource(
+ "../runo/icons/16/arrow-left.png");
+
+ final ClickListener iconToggleListener = new ClickListener() {
+ @Override
+ public void buttonClick(final ClickEvent event) {
+ final Button btn = event.getButton();
+ if (btn.getIcon() == null) {
+ btn.setIcon(iconResource);
+ } else {
+ btn.setIcon(null);
+ }
+ }
+ };
+
+ layout.addComponent(new Button("Toggle icon", iconToggleListener));
+ layout.addComponent(new NativeButton("Toggle icon", iconToggleListener));
+ }
+}
\ No newline at end of file diff --git a/uitest/src/com/vaadin/tests/components/combobox/ComboBoxDataSourceChange.java b/uitest/src/com/vaadin/tests/components/combobox/ComboBoxDataSourceChange.java index 1f2973ccb7..dea1deb9b5 100644 --- a/uitest/src/com/vaadin/tests/components/combobox/ComboBoxDataSourceChange.java +++ b/uitest/src/com/vaadin/tests/components/combobox/ComboBoxDataSourceChange.java @@ -86,8 +86,8 @@ public class ComboBoxDataSourceChange extends TestBase { cb2.addListener(new Property.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { - currentValue - .setValue(event.getProperty().getValue().toString()); + currentValue.setValue(String.valueOf(event.getProperty() + .getValue())); } }); } diff --git a/uitest/src/com/vaadin/tests/components/orderedlayout/HorizontalLayoutVerticalAlign.html b/uitest/src/com/vaadin/tests/components/orderedlayout/HorizontalLayoutVerticalAlign.html new file mode 100644 index 0000000000..d16e4a3354 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/orderedlayout/HorizontalLayoutVerticalAlign.html @@ -0,0 +1,27 @@ +<?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.orderedlayout.HorizontalLayoutVerticalAlign?restartApplication</td> + <td></td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td>alignments</td> +</tr> + +</tbody></table> +</body> +</html> diff --git a/uitest/src/com/vaadin/tests/components/orderedlayout/HorizontalLayoutVerticalAlign.java b/uitest/src/com/vaadin/tests/components/orderedlayout/HorizontalLayoutVerticalAlign.java new file mode 100644 index 0000000000..4dc9d8129e --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/orderedlayout/HorizontalLayoutVerticalAlign.java @@ -0,0 +1,44 @@ +package com.vaadin.tests.components.orderedlayout; + +import com.vaadin.tests.components.TestBase; +import com.vaadin.ui.Alignment; +import com.vaadin.ui.HorizontalLayout; +import com.vaadin.ui.Label; +import com.vaadin.ui.TextArea; + +public class HorizontalLayoutVerticalAlign extends TestBase { + + @Override + protected void setup() { + HorizontalLayout p = new HorizontalLayout(); + + p.addComponent(new TextArea()); + + Label top = new Label("top"); + p.addComponent(top); + p.setComponentAlignment(top, Alignment.TOP_CENTER); + + Label middle = new Label("middle"); + p.addComponent(middle); + p.setComponentAlignment(middle, Alignment.MIDDLE_CENTER); + + Label bottom = new Label("bottom"); + p.addComponent(bottom); + p.setComponentAlignment(bottom, Alignment.BOTTOM_CENTER); + + p.addComponent(new TextArea()); + + addComponent(p); + } + + @Override + protected String getDescription() { + return "Vertical alignments should be top-middle-bottom"; + } + + @Override + protected Integer getTicketNumber() { + return 10852; + } + +} diff --git a/uitest/src/com/vaadin/tests/components/table/SetDataSourceWithPropertyIds.java b/uitest/src/com/vaadin/tests/components/table/SetDataSourceWithPropertyIds.java index f6eb893528..5749912f43 100644 --- a/uitest/src/com/vaadin/tests/components/table/SetDataSourceWithPropertyIds.java +++ b/uitest/src/com/vaadin/tests/components/table/SetDataSourceWithPropertyIds.java @@ -4,7 +4,6 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.List; -import com.vaadin.data.Buffered.SourceException; import com.vaadin.data.util.BeanItemContainer; import com.vaadin.server.VaadinRequest; import com.vaadin.shared.ui.MarginInfo; @@ -12,6 +11,7 @@ import com.vaadin.tests.components.AbstractTestUI; import com.vaadin.ui.Button; import com.vaadin.ui.Label; import com.vaadin.ui.Table; +import com.vaadin.ui.Table.CacheUpdateException; public class SetDataSourceWithPropertyIds extends AbstractTestUI { @@ -71,7 +71,7 @@ public class SetDataSourceWithPropertyIds extends AbstractTestUI { table.setContainerDataSource(jobContainer); table.setVisibleColumns(new String[] { "jobId" }); label.setValue("no Exception"); - } catch (SourceException e) { + } catch (CacheUpdateException e) { ArrayList<String> propertyIds = new ArrayList<String>(); propertyIds.add("jobId"); table.setContainerDataSource(jobContainer, propertyIds); diff --git a/uitest/src/com/vaadin/tests/components/table/TableDragColumn.html b/uitest/src/com/vaadin/tests/components/table/TableDragColumn.html index 7c2dc2813c..5d0ba160fe 100644 --- a/uitest/src/com/vaadin/tests/components/table/TableDragColumn.html +++ b/uitest/src/com/vaadin/tests/components/table/TableDragColumn.html @@ -53,7 +53,7 @@ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[3]/VMenuBar[0]#item1</td> <td>37,8</td> </tr> -<!-- Drag column to a new location --> +<!-- Drag and drop column 1 to the left of column 4 --> <tr> <td>drag</td> <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[2]</td> @@ -67,7 +67,7 @@ <tr> <td>drop</td> <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[0]/domChild[2]/domChild[2]</td> - <td>10,10</td> + <td>70,10</td> </tr> <tr> <td>screenCapture</td> diff --git a/uitest/src/com/vaadin/tests/components/uitest/base_theme_test.html b/uitest/src/com/vaadin/tests/components/uitest/base_theme_test.html index 7bb36b7ebb..99051a9e7b 100644 --- a/uitest/src/com/vaadin/tests/components/uitest/base_theme_test.html +++ b/uitest/src/com/vaadin/tests/components/uitest/base_theme_test.html @@ -17,11 +17,6 @@ <td></td> </tr> <tr> - <td>setSpeed</td> - <td>150</td> - <td>150</td> -</tr> -<tr> <td>screenCapture</td> <td></td> <td>labels</td> @@ -68,11 +63,6 @@ </tr> <tr> <td>mouseClick</td> - <td>//div[@id='testsampler']/div[2]/div/div[3]/div/div</td> - <td>402,158</td> -</tr> -<tr> - <td>mouseClick</td> <td>//div[@id='datefield1']/button</td> <td>14,9</td> </tr> diff --git a/uitest/src/com/vaadin/tests/components/uitest/chameleon_theme_test.html b/uitest/src/com/vaadin/tests/components/uitest/chameleon_theme_test.html index ff112e4dc4..c4534b8064 100644 --- a/uitest/src/com/vaadin/tests/components/uitest/chameleon_theme_test.html +++ b/uitest/src/com/vaadin/tests/components/uitest/chameleon_theme_test.html @@ -16,12 +16,7 @@ <td>/run/ThemeTestUI?restartApplication&theme=chameleon</td> <td></td> </tr> -<tr> - <td>setSpeed</td> - <td>150</td> - <td>150</td> -</tr> -<tr> +<tr> <td>screenCapture</td> <td></td> <td>labels</td> @@ -68,11 +63,6 @@ </tr> <tr> <td>mouseClick</td> - <td>//div[@id='testsampler']/div[2]/div/div[3]/div/div</td> - <td>402,158</td> -</tr> -<tr> - <td>mouseClick</td> <td>//div[@id='datefield1']/button</td> <td>14,9</td> </tr> diff --git a/uitest/src/com/vaadin/tests/components/uitest/liferay_theme_test.html b/uitest/src/com/vaadin/tests/components/uitest/liferay_theme_test.html index 109f1f1610..0a073b5384 100644 --- a/uitest/src/com/vaadin/tests/components/uitest/liferay_theme_test.html +++ b/uitest/src/com/vaadin/tests/components/uitest/liferay_theme_test.html @@ -17,11 +17,6 @@ <td></td> </tr> <tr> - <td>setSpeed</td> - <td>150</td> - <td>150</td> -</tr> -<tr> <td>screenCapture</td> <td></td> <td>labels</td> @@ -68,11 +63,6 @@ </tr> <tr> <td>mouseClick</td> - <td>//div[@id='testsampler']/div[2]/div/div[3]/div/div</td> - <td>402,158</td> -</tr> -<tr> - <td>mouseClick</td> <td>//div[@id='datefield1']/button</td> <td>14,9</td> </tr> diff --git a/uitest/src/com/vaadin/tests/components/uitest/reindeer_theme_test.html b/uitest/src/com/vaadin/tests/components/uitest/reindeer_theme_test.html index f5a654b21a..441a87a088 100644 --- a/uitest/src/com/vaadin/tests/components/uitest/reindeer_theme_test.html +++ b/uitest/src/com/vaadin/tests/components/uitest/reindeer_theme_test.html @@ -17,11 +17,6 @@ <td></td> </tr> <tr> - <td>setSpeed</td> - <td>150</td> - <td>150</td> -</tr> -<tr> <td>screenCapture</td> <td></td> <td>labels</td> @@ -68,11 +63,6 @@ </tr> <tr> <td>mouseClick</td> - <td>//div[@id='testsampler']/div[2]/div/div[3]/div/div</td> - <td>402,158</td> -</tr> -<tr> - <td>mouseClick</td> <td>//div[@id='datefield1']/button</td> <td>14,9</td> </tr> diff --git a/uitest/src/com/vaadin/tests/components/uitest/runo_theme_test.html b/uitest/src/com/vaadin/tests/components/uitest/runo_theme_test.html index 3c65875684..33939ef076 100644 --- a/uitest/src/com/vaadin/tests/components/uitest/runo_theme_test.html +++ b/uitest/src/com/vaadin/tests/components/uitest/runo_theme_test.html @@ -17,11 +17,6 @@ <td></td> </tr> <tr> - <td>setSpeed</td> - <td>150</td> - <td>150</td> -</tr> -<tr> <td>screenCapture</td> <td></td> <td>labels</td> @@ -68,11 +63,6 @@ </tr> <tr> <td>mouseClick</td> - <td>//div[@id='testsampler']/div[2]/div/div[3]/div/div</td> - <td>402,158</td> -</tr> -<tr> - <td>mouseClick</td> <td>//div[@id='datefield1']/button</td> <td>14,9</td> </tr> diff --git a/uitest/src/com/vaadin/tests/components/upload/TestFileUpload.java b/uitest/src/com/vaadin/tests/components/upload/TestFileUpload.java index ad86d0f593..b57c236b20 100644 --- a/uitest/src/com/vaadin/tests/components/upload/TestFileUpload.java +++ b/uitest/src/com/vaadin/tests/components/upload/TestFileUpload.java @@ -8,8 +8,11 @@ import org.apache.commons.codec.digest.DigestUtils; import com.vaadin.tests.components.TestBase; import com.vaadin.tests.util.Log; import com.vaadin.ui.Upload; -import com.vaadin.ui.Upload.FinishedEvent; +import com.vaadin.ui.Upload.FailedEvent; +import com.vaadin.ui.Upload.FailedListener; import com.vaadin.ui.Upload.Receiver; +import com.vaadin.ui.Upload.SucceededEvent; +import com.vaadin.ui.Upload.SucceededListener; public class TestFileUpload extends TestBase implements Receiver { @@ -27,10 +30,22 @@ public class TestFileUpload extends TestBase implements Receiver { } }); u.setId("UPL"); - u.addListener(new Upload.FinishedListener() { + u.addFailedListener(new FailedListener() { @Override - public void uploadFinished(FinishedEvent event) { + public void uploadFailed(FailedEvent event) { + String hash = DigestUtils.md5Hex(baos.toByteArray()); + + log.log("<span style=\"color: red;\">Upload failed. Name: " + + event.getFilename() + ", Size: " + baos.size() + + ", md5: " + hash + "</span>"); + baos.reset(); + } + }); + u.addSucceededListener(new SucceededListener() { + + @Override + public void uploadSucceeded(SucceededEvent event) { String hash = DigestUtils.md5Hex(baos.toByteArray()); log.log("Upload finished. Name: " + event.getFilename() + ", Size: " + baos.size() + ", md5: " + hash); diff --git a/uitest/src/com/vaadin/tests/overlays/OverlayTouchScrolling.java b/uitest/src/com/vaadin/tests/overlays/OverlayTouchScrolling.java new file mode 100644 index 0000000000..fdcfdf7266 --- /dev/null +++ b/uitest/src/com/vaadin/tests/overlays/OverlayTouchScrolling.java @@ -0,0 +1,56 @@ +/* +@VaadinApache2LicenseForJavaFiles@ + */ + +package com.vaadin.tests.overlays; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; +import com.vaadin.ui.Component; +import com.vaadin.ui.CssLayout; +import com.vaadin.ui.Label; +import com.vaadin.ui.Notification; + +public class OverlayTouchScrolling extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + + final CssLayout green = new CssLayout(); + green.setSizeFull(); + final CssLayout layout = new CssLayout() { + @Override + protected String getCss(Component c) { + return "background:green;"; + } + }; + layout.setSizeFull(); + layout.addComponent(green); + setContent(layout); + + Button button = new Button("Tap me with a touch device"); + button.addClickListener(new Button.ClickListener() { + @Override + public void buttonClick(ClickEvent event) { + + Notification + .show("Now close this and you can scroll in mad places."); + green.addComponent(new Label( + "Thank you for clicking, now scroll (with touch device) to area without green background, which shouldn't be possible.")); + } + }); + green.addComponent(button); + } + + @Override + protected String getTestDescription() { + return "Using overlays breaks top level scrolling on touch devices"; + } + + @Override + protected Integer getTicketNumber() { + return 10860; + } +} diff --git a/uitest/vaadin-server.xml b/uitest/vaadin-server.xml index 3628483436..e02fab8564 100644 --- a/uitest/vaadin-server.xml +++ b/uitest/vaadin-server.xml @@ -11,6 +11,10 @@ <java classname="org.mortbay.jetty.runner.Runner" fork="yes"> <arg value="--port" /> <arg value="8888" /> + <arg value="--out" /> + <arg value="${vaadin.basedir}/result/jetty.out" /> + <arg value="--log" /> + <arg value="${vaadin.basedir}/result/jetty.log" /> <arg value="${war.file}" /> <classpath refid="classpath.jetty" /> <jvmarg value="-ea" /> |