📄 lexicalunitimpl.java
字号:
/* * LexicalUnitImpl.java * * Steady State CSS2 Parser * * Copyright (C) 1999, 2002 Steady State Software Ltd. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * To contact the authors of the library, write to Steady State Software Ltd., * 49 Littleworth, Wing, Buckinghamshire, LU7 0JX, England * * http://www.steadystate.com/css/ * mailto:css@steadystate.co.uk * * $Id: LexicalUnitImpl.java,v 1.1.1.1 2003/12/28 21:23:08 davidsch Exp $ */package com.steadystate.css.parser;import java.io.Serializable;import org.w3c.css.sac.*;/** * * @author David Schweinsberg * @version $Release$ */public class LexicalUnitImpl implements LexicalUnit, Serializable {/* public static final short SAC_OPERATOR_COMMA = 0; public static final short SAC_OPERATOR_PLUS = 1; public static final short SAC_OPERATOR_MINUS = 2; public static final short SAC_OPERATOR_MULTIPLY = 3; public static final short SAC_OPERATOR_SLASH = 4; public static final short SAC_OPERATOR_MOD = 5; public static final short SAC_OPERATOR_EXP = 6; public static final short SAC_OPERATOR_LT = 7; public static final short SAC_OPERATOR_GT = 8; public static final short SAC_OPERATOR_LE = 9; public static final short SAC_OPERATOR_GE = 10; public static final short SAC_OPERATOR_TILDE = 11; public static final short SAC_INHERIT = 12; public static final short SAC_INTEGER = 13; public static final short SAC_REAL = 14; public static final short SAC_EM = 15; public static final short SAC_EX = 16; public static final short SAC_PIXEL = 17; public static final short SAC_INCH = 18; public static final short SAC_CENTIMETER = 19; public static final short SAC_MILLIMETER = 20; public static final short SAC_POINT = 21; public static final short SAC_PICA = 22; public static final short SAC_PERCENTAGE = 23; public static final short SAC_URI = 24; public static final short SAC_COUNTER_FUNCTION = 25; public static final short SAC_COUNTERS_FUNCTION = 26; public static final short SAC_RGBCOLOR = 27; public static final short SAC_DEGREE = 28; public static final short SAC_GRADIAN = 29; public static final short SAC_RADIAN = 30; public static final short SAC_MILLISECOND = 31; public static final short SAC_SECOND = 32; public static final short SAC_HERTZ = 33; public static final short SAC_KILOHERTZ = 34; public static final short SAC_IDENT = 35; public static final short SAC_STRING_VALUE = 36; public static final short SAC_ATTR = 37; public static final short SAC_RECT_FUNCTION = 38; public static final short SAC_UNICODERANGE = 39; public static final short SAC_SUB_EXPRESSION = 40; public static final short SAC_FUNCTION = 41; public static final short SAC_DIMENSION = 42;*/ private short _type; private LexicalUnit _next; private LexicalUnit _prev;// private int _intVal; private float _floatVal; private String _dimension; private String _function; private LexicalUnit _params; private String _stringVal; protected LexicalUnitImpl(LexicalUnit previous, short type) { _type = type; _prev = previous; if (_prev != null) { ((LexicalUnitImpl)_prev)._next = this; } } /** * Integer */ protected LexicalUnitImpl(LexicalUnit previous, int value) { this(previous, SAC_INTEGER);// _intVal = value; _floatVal = value; } /** * Dimension */ protected LexicalUnitImpl(LexicalUnit previous, short type, float value) { this(previous, type); _floatVal = value; } /** * Unknown dimension */ protected LexicalUnitImpl( LexicalUnit previous, short type, String dimension, float value) { this(previous, type); _dimension = dimension; _floatVal = value; } /** * String */ protected LexicalUnitImpl(LexicalUnit previous, short type, String value) { this(previous, type); _stringVal = value; } /** * Function */ protected LexicalUnitImpl( LexicalUnit previous, short type, String name, LexicalUnit params) { this(previous, type); _function = name; _params = params; } public short getLexicalUnitType() { return _type; } public LexicalUnit getNextLexicalUnit() { return _next; } public LexicalUnit getPreviousLexicalUnit() { return _prev; } public int getIntegerValue() {// return _intVal; return (int) _floatVal; } public float getFloatValue() { return _floatVal; } public String getDimensionUnitText() { switch (_type) { case SAC_EM: return "em"; case SAC_EX: return "ex"; case SAC_PIXEL: return "px"; case SAC_INCH: return "in"; case SAC_CENTIMETER: return "cm"; case SAC_MILLIMETER: return "mm"; case SAC_POINT: return "pt"; case SAC_PICA: return "pc"; case SAC_PERCENTAGE: return "%"; case SAC_DEGREE: return "deg"; case SAC_GRADIAN: return "grad"; case SAC_RADIAN: return "rad"; case SAC_MILLISECOND: return "ms"; case SAC_SECOND: return "s"; case SAC_HERTZ: return "Hz"; case SAC_KILOHERTZ: return "kHz"; case SAC_DIMENSION: return _dimension; } return ""; } public String getFunctionName() { return _function; } public LexicalUnit getParameters() { return _params; } public String getStringValue() { return _stringVal; } public LexicalUnit getSubValues() { return _params; } public String toString() { StringBuffer sb = new StringBuffer(); switch (_type) { case SAC_OPERATOR_COMMA: sb.append(","); break; case SAC_OPERATOR_PLUS: sb.append("+"); break; case SAC_OPERATOR_MINUS: sb.append("-"); break; case SAC_OPERATOR_MULTIPLY: sb.append("*"); break; case SAC_OPERATOR_SLASH: sb.append("/"); break; case SAC_OPERATOR_MOD: sb.append("%"); break; case SAC_OPERATOR_EXP: sb.append("^"); break; case SAC_OPERATOR_LT: sb.append("<"); break; case SAC_OPERATOR_GT: sb.append(">"); break; case SAC_OPERATOR_LE: sb.append("<="); break; case SAC_OPERATOR_GE: sb.append(">="); break; case SAC_OPERATOR_TILDE: sb.append("~"); break; case SAC_INHERIT: sb.append("inherit"); break; case SAC_INTEGER: sb.append(String.valueOf(getIntegerValue())); break; case SAC_REAL: sb.append(trimFloat(getFloatValue())); break; case SAC_EM: case SAC_EX: case SAC_PIXEL: case SAC_INCH: case SAC_CENTIMETER: case SAC_MILLIMETER: case SAC_POINT: case SAC_PICA: case SAC_PERCENTAGE: case SAC_DEGREE: case SAC_GRADIAN: case SAC_RADIAN: case SAC_MILLISECOND: case SAC_SECOND: case SAC_HERTZ: case SAC_KILOHERTZ: case SAC_DIMENSION: sb.append(trimFloat(getFloatValue())) .append(getDimensionUnitText()); break; case SAC_URI: sb.append("url(").append(getStringValue()).append(")"); break; case SAC_COUNTER_FUNCTION: sb.append("counter("); appendParams(sb, _params); sb.append(")"); break; case SAC_COUNTERS_FUNCTION: sb.append("counters("); appendParams(sb, _params); sb.append(")"); break; case SAC_RGBCOLOR: sb.append("rgb("); appendParams(sb, _params); sb.append(")"); break; case SAC_IDENT: sb.append(getStringValue()); break; case SAC_STRING_VALUE: sb.append("\"").append(getStringValue()).append("\""); break; case SAC_ATTR: sb.append("attr("); appendParams(sb, _params); sb.append(")"); break; case SAC_RECT_FUNCTION: sb.append("rect("); appendParams(sb, _params); sb.append(")"); break; case SAC_UNICODERANGE: sb.append(getStringValue()); break; case SAC_SUB_EXPRESSION: sb.append(getStringValue()); break; case SAC_FUNCTION: sb.append(getFunctionName()); appendParams(sb, _params); sb.append(")"); break; } return sb.toString(); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -