Merge pull request #246 from processing/color-in-import

This commit is contained in:
Ben Fry
2021-10-04 22:19:50 -04:00
committed by GitHub
4 changed files with 55 additions and 4 deletions

View File

@@ -4,7 +4,8 @@
* - changes main entry point to reflect sketch types 'static' | 'active'
* - adds support for type converter functions like "int()"
* - adds pseudo primitive type "color"
* - adds HTML hex notation with hash symbol: #ff5522
* - adds HTML hex notation with hash symbol: #ff5522
* - allow color to appear as part of qualified names (like in imports)
*/
grammar Processing;
@@ -47,8 +48,8 @@ variableDeclaratorId
// https://github.com/processing/processing/issues/93
// prevent from types being used as variable names
warnTypeAsVariableName
: primitiveType ('[' ']')* {
notifyErrorListeners("Type names are not allowed as variable names: "+$primitiveType.text);
: primitiveType ('[' ']')* {
notifyErrorListeners("Type names are not allowed as variable names: "+$primitiveType.text);
}
;
@@ -89,6 +90,10 @@ colorPrimitiveType
: 'color'
;
qualifiedName
: (IDENTIFIER | colorPrimitiveType) ('.' (IDENTIFIER | colorPrimitiveType))*
;
// added HexColorLiteral
literal
: integerLiteral
@@ -127,4 +132,3 @@ LINE_COMMENT
;
CHAR_LITERAL: '\'' (~['\\\r\n] | EscapeSequence)* '\''; // A bit nasty but let JDT tackle invalid chars

View File

@@ -385,4 +385,9 @@ public class ParserTests {
expectGood("smoothparamstatic");
}
@Test
public void testColorInImport() {
expectGood("colorimport");
}
}

View File

@@ -0,0 +1,37 @@
import processing.core.*;
import processing.data.*;
import processing.event.*;
import processing.opengl.*;
import test.color;
import java.util.HashMap;
import java.util.ArrayList;
import java.io.File;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
public class colorimport extends PApplet {
public void setup() {
boolean test = true;
int c1 = color(255, 255, 255);
int c2 = test ? 0xFFA011CD : 0xC0C0C0C0;
noLoop();
}
static public void main(String[] passedArgs) {
String[] appletArgs = new String[] { "colorimport" };
if (passedArgs != null) {
PApplet.main(concat(appletArgs, passedArgs));
} else {
PApplet.main(appletArgs);
}
}
}

View File

@@ -0,0 +1,5 @@
import test.color;
boolean test = true;
color c1 = color(255, 255, 255);
color c2 = test ? #A011CD : #C0C0C0C0;