When preprocessing only, some tokens were emitted as <bad token>. This fixes them to preserve their original content. This supplants PR #182, with a correction and test results.
		
			
				
	
	
		
			30 lines
		
	
	
		
			476 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			476 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
#version 310 es
 | 
						|
#define X 1
 | 
						|
#define Y clamp
 | 
						|
#define Z X
 | 
						|
 | 
						|
#define F 1, 2
 | 
						|
 | 
						|
#define make_function \
 | 
						|
  float fn ( float x ) \
 | 
						|
  {\
 | 
						|
    return x + 4.0; \
 | 
						|
  }
 | 
						|
 | 
						|
make_function
 | 
						|
 | 
						|
int main() {
 | 
						|
  gl_Position = vec4(X);
 | 
						|
  gl_Position = Y(1, 2, 3);
 | 
						|
  gl_Position = vec4(Z);
 | 
						|
  gl_Position = vec4(F);
 | 
						|
  gl_Position = vec4(fn(3));
 | 
						|
  [] . ++ --
 | 
						|
  + - * % / - ! ~
 | 
						|
  << >> < > <= >=
 | 
						|
  == !=
 | 
						|
  & ^ | && ^^ || ? :
 | 
						|
  += -= *= /= %= <<= >>= &= |= ^=
 | 
						|
  1.2 2E10 5u -5lf
 | 
						|
}
 |