blueprintengineparser.java
来自「JAVA的一些源码 JAVA2 STANDARD EDITION DEVELO」· Java 代码 · 共 1,112 行 · 第 1/3 页
JAVA
1,112 行
case SYM_HORIZONTAL: info.orientation = GTKConstants.HORIZONTAL; break; case SYM_VERTICAL: info.orientation = GTKConstants.VERTICAL; break; default: return SYM_HORIZONTAL; } return GTKScanner.TOKEN_NONE; } private int parseFile(String[] retVal) throws IOException { int token; token = scanner.getToken(); token = scanner.getToken(); if (token != GTKScanner.TOKEN_EQUAL_SIGN) { return GTKScanner.TOKEN_EQUAL_SIGN; } token = scanner.getToken(); if (token != GTKScanner.TOKEN_STRING) { return GTKScanner.TOKEN_STRING; } retVal[0] = parser.resolvePixmapPath(scanner.currValue.stringVal); return GTKScanner.TOKEN_NONE; } private int parseStretch(boolean[] retVal) throws IOException { int token; token = scanner.getToken(); token = scanner.getToken(); if (token != GTKScanner.TOKEN_EQUAL_SIGN) { return GTKScanner.TOKEN_EQUAL_SIGN; } token = scanner.getToken(); switch(token) { case SYM_TRUE: retVal[0] = true; break; case SYM_FALSE: retVal[0] = false; break; default: return SYM_TRUE; } return GTKScanner.TOKEN_NONE; } private int parseBorder(Insets[] retVal) throws IOException { int left = 0; int right = 0; int top = 0; int bottom = 0; scanner.getToken(); if (scanner.getToken() != GTKScanner.TOKEN_EQUAL_SIGN) { return GTKScanner.TOKEN_EQUAL_SIGN; } if (scanner.getToken() != GTKScanner.TOKEN_LEFT_CURLY) { return GTKScanner.TOKEN_LEFT_CURLY; } if (scanner.getToken() != GTKScanner.TOKEN_INT) { return GTKScanner.TOKEN_INT; } left = (int)scanner.currValue.longVal; if (scanner.getToken() != GTKScanner.TOKEN_COMMA) { return GTKScanner.TOKEN_COMMA; } if (scanner.getToken() != GTKScanner.TOKEN_INT) { return GTKScanner.TOKEN_INT; } right = (int)scanner.currValue.longVal; if (scanner.getToken() != GTKScanner.TOKEN_COMMA) { return GTKScanner.TOKEN_COMMA; } if (scanner.getToken() != GTKScanner.TOKEN_INT) { return GTKScanner.TOKEN_INT; } top = (int)scanner.currValue.longVal; if (scanner.getToken() != GTKScanner.TOKEN_COMMA) { return GTKScanner.TOKEN_COMMA; } if (scanner.getToken() != GTKScanner.TOKEN_INT) { return GTKScanner.TOKEN_INT; } bottom = (int)scanner.currValue.longVal; if (scanner.getToken() != GTKScanner.TOKEN_RIGHT_CURLY) { return GTKScanner.TOKEN_RIGHT_CURLY; } retVal[0] = new Insets(top, left, bottom, right); return GTKScanner.TOKEN_NONE; } private int parseColorizeColor(Color[] retVal) throws IOException { int token; scanner.getToken(); token = scanner.getToken(); if (token != GTKScanner.TOKEN_EQUAL_SIGN) { return GTKScanner.TOKEN_EQUAL_SIGN; } token = scanner.getToken(); switch(token) { case GTKScanner.TOKEN_LEFT_CURLY: int red; int green; int blue; int alpha = 255; token = scanner.getToken(); if (token == GTKScanner.TOKEN_INT) { red = intColorVal(scanner.currValue.longVal); } else if (token == GTKScanner.TOKEN_FLOAT) { red = intColorVal(scanner.currValue.doubleVal); } else { return GTKScanner.TOKEN_FLOAT; } token = scanner.getToken(); if (token != GTKScanner.TOKEN_COMMA) { return GTKScanner.TOKEN_COMMA; } token = scanner.getToken(); if (token == GTKScanner.TOKEN_INT) { green = intColorVal(scanner.currValue.longVal); } else if (token == GTKScanner.TOKEN_FLOAT) { green = intColorVal(scanner.currValue.doubleVal); } else { return GTKScanner.TOKEN_FLOAT; } token = scanner.getToken(); if (token != GTKScanner.TOKEN_COMMA) { return GTKScanner.TOKEN_COMMA; } token = scanner.getToken(); if (token == GTKScanner.TOKEN_INT) { blue = intColorVal(scanner.currValue.longVal); } else if (token == GTKScanner.TOKEN_FLOAT) { blue = intColorVal(scanner.currValue.doubleVal); } else { return GTKScanner.TOKEN_FLOAT; } token = scanner.getToken(); if (token == GTKScanner.TOKEN_COMMA) { token = scanner.getToken(); if (token == GTKScanner.TOKEN_INT) { alpha = intColorVal(scanner.currValue.longVal); } else if (token == GTKScanner.TOKEN_FLOAT) { alpha = intColorVal(scanner.currValue.doubleVal); } else { return GTKScanner.TOKEN_FLOAT; } token = scanner.getToken(); } if (token != GTKScanner.TOKEN_RIGHT_CURLY) { return GTKScanner.TOKEN_RIGHT_CURLY; } retVal[0] = new Color(red, green, blue, alpha); break; case GTKScanner.TOKEN_STRING: Color color = parseColorString(scanner.currValue.stringVal); if (color == null) { scanner.printMessage("Invalid color constant '" + scanner.currValue.stringVal + "'", false); return GTKScanner.TOKEN_STRING; } retVal[0] = color; break; default: return GTKScanner.TOKEN_STRING; } return GTKScanner.TOKEN_NONE; } private static Color parseColorString(String str) { if (str.charAt(0) == '#') { str = str.substring(1); int i = str.length(); if (i < 3 || i > 12 || (i % 3) != 0) { return null; } i /= 3; int r; int g; int b; try { r = Integer.parseInt(str.substring(0, i), 16); g = Integer.parseInt(str.substring(i, i * 2), 16); b = Integer.parseInt(str.substring(i * 2, i * 3), 16); } catch (NumberFormatException nfe) { return null; } if (i == 4) { return new Color(r / 65535.0f, g / 65535.0f, b / 65535.0f); } else if (i == 1) { return new Color(r / 15.0f, g / 15.0f, b / 15.0f); } else if (i == 2) { return new Color(r, g, b); } else { return new Color(r / 4095.0f, g / 4095.0f, b / 4095.0f); } } else { return XColors.lookupColor(str); } } private static int intColorVal(long col) { int color = (int)Math.max(Math.min(col, 255), 0); return color; } private static int intColorVal(double col) { float color = (float)Math.max(Math.min(col, 1.0f), 0.0f); return (int)(color * 255); } private int parseIconColorize(BlueprintEngineInfo engineInfo) throws IOException { int token; token = scanner.getToken(); if (token != SYM_ICON_COLORIZE) { return SYM_ICON_COLORIZE; } token = scanner.getToken(); if (token != GTKScanner.TOKEN_EQUAL_SIGN) { return GTKScanner.TOKEN_EQUAL_SIGN; } token = scanner.getToken(); if (token == SYM_TRUE) { engineInfo.iconColorize = true; } else if (token == SYM_FALSE) { engineInfo.iconColorize = false; } else { return SYM_TRUE; } return GTKScanner.TOKEN_NONE; } /** * Helper method for parsing string list assignments such as the following: * = {"FOO", "BAR", "SJH"} * The scanner is expected to start returning tokens at the equal sign when * this method is invoked. It will parse the strings in the list into the * given <code>ArrayList</code> parameter. * * NOTE: The <code>Strings</code> that are added to the * <code>ArrayList</code> will have been <code>intern()</code>ed * first. * * @return <code>GTKScanner.TOKEN_NONE</code> if the parse was successful, * otherwise the token that was expected but not received. */ private int parseStringList(ArrayList list) throws IOException { int token; token = scanner.getToken(); if (token != GTKScanner.TOKEN_EQUAL_SIGN) { return GTKScanner.TOKEN_EQUAL_SIGN; } token = scanner.getToken(); if (token != GTKScanner.TOKEN_LEFT_CURLY) { return GTKScanner.TOKEN_LEFT_CURLY; } token = scanner.getToken(); while (token == GTKScanner.TOKEN_STRING) { list.add(scanner.currValue.stringVal.intern()); token = scanner.getToken(); if (token == GTKScanner.TOKEN_RIGHT_CURLY) { continue; } if (token != GTKScanner.TOKEN_COMMA) { return GTKScanner.TOKEN_COMMA; } token = scanner.getToken(); } if (token != GTKScanner.TOKEN_RIGHT_CURLY) { return GTKScanner.TOKEN_RIGHT_CURLY; } return GTKScanner.TOKEN_NONE; } private int parseUseAsBkgMask(BlueprintStyle.Info info) throws IOException { int token; token = scanner.getToken(); if (token != SYM_USE_AS_BKG_MASK) { return SYM_USE_AS_BKG_MASK; } token = scanner.getToken(); if (token != GTKScanner.TOKEN_EQUAL_SIGN) { return GTKScanner.TOKEN_EQUAL_SIGN; } token = scanner.getToken(); switch(token) { case SYM_TRUE: info.useAsBkgMask = true; break; case SYM_FALSE: info.useAsBkgMask = false; break; default: return SYM_TRUE; } return GTKScanner.TOKEN_NONE; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?