📄 pov.l
字号:
%e 3000%p 7000%n 1000%a 3000%s COMMENTW [ \t]+D [0-9]E [DEde][-+]?{D}+%{#include <stdio.h>int comment;template <class T> struct stackelem { T v; stackelem<T> *n;};template <class T> class stack { stackelem<T> *h;public: stack() {h=(stackelem<T>*)0;} ~stack() {stackelem<T> *n; for(;h;h=n) {n=h->n; delete h;}} void operator<<(T& v) { stackelem<T> *e=new stackelem<T>; e->v=v; e->n=h; h=e; } void operator>>(T& v) {stackelem<T> *e=h; h=e->n; v=e->v; delete e;} int empty() {return h==(stackelem<T>*)0;}};struct fileident { char* n; FILE* f; int l; fileident() {} fileident(char* n, FILE* f, int l) {this->n=n; this->f=f; this->l=l;}};stack<fileident> files;FILE* inputfile=stdin;char* inputfilename="";int line=1;INPUT() { int c=fgetc(inputfile); fileident f; switch(c) { case EOF: fprintf(stderr, "\n"); if(files.empty()) return 0; fclose(inputfile); delete inputfilename; files>>f; inputfile=f.f; inputfilename=f.n; line=f.l; return '\n'; case '\n': line++; fprintf(stderr,"reading line %d of file %s\r",line,inputfilename); } return c;}UNPUT(int c) {return ungetc(c, inputfile);}#undef input#define input() INPUT()#undef unput#define unput(c) UNPUT(c)void include(char* s) { register int i; char *n; fileident f(inputfilename,inputfile,line); files<<f; for(i=0; s[i]!='"'; i++); n=&s[i+1]; for(i=0; n[i]!='"'; i++); n[i]='\0'; inputfilename=new char[strlen(n)+1]; strcpy(inputfilename,n); inputfile=fopen(n, "r"); line=1;}%}%%"/*" {comment=1; BEGIN COMMENT;}<COMMENT>"/*" {comment++;}<COMMENT>"*/" {comment--; if(!comment) {BEGIN INITIAL;}}<COMMENT>. ;<INITIAL>"*/" printf("unmatched */ (ignored)\n");<INITIAL>"//".*$ ;<INITIAL>#include{W}\"[^\"\n]*\" include((char*)yytext);<INITIAL>adaptive return ADAPTIVE;<INITIAL>agate return AGATE;<INITIAL>agate_turb return AGATE_TURB;<INITIAL>all return ALL;<INITIAL>alpha return ALPHA;<INITIAL>ambient return AMBIENT;<INITIAL>area_light return AREA_LIGHT;<INITIAL>background return BACKGROUND;<INITIAL>bicubic_patch return BICUBIC_PATCH;<INITIAL>blob return BLOB;<INITIAL>blue return BLUE;<INITIAL>bounded_by return BOUNDED_BY;<INITIAL>box return BOX;<INITIAL>bozo return BOZO;<INITIAL>brick return BRICK;<INITIAL>brilliance return BRILLIANCE;<INITIAL>bumps return BUMPS;<INITIAL>bumpy1 return BUMPY1;<INITIAL>bumpy2 return BUMPY2;<INITIAL>bumpy3 return BUMPY3;<INITIAL>bump_map return BUMP_MAP;<INITIAL>bump_size return BUMP_SIZE;<INITIAL>camera{W}identifier return CAMERA_ID;<INITIAL>camera return CAMERA;<INITIAL>checker return CHECKER;<INITIAL>clipped_by return CLIPPED_BY;<INITIAL>clock return CLOCK;<INITIAL>colour{W}identifier return COLOR_ID;<INITIAL>colour{W}map{W}identifier return COLOR_MAP_ID;<INITIAL>color_map return COLOR_MAP;<INITIAL>colour_map return COLOR_MAP;<INITIAL>color return COLOR;<INITIAL>colour return COLOR;<INITIAL>component return COMPONENT;<INITIAL>composite return COMPOSITE;<INITIAL>cone return CONE;<INITIAL>crand return CRAND;<INITIAL>cubic return CUBIC;<INITIAL>cylinder return CYLINDER;<INITIAL>declare return DECLARE;<INITIAL>default return DEFAULT;<INITIAL>dents return DENTS;<INITIAL>difference return DIFFERENCE;<INITIAL>diffuse return DIFFUSE;<INITIAL>direction return DIRECTION;<INITIAL>disc return DISC;<INITIAL>distance return DISTANCE;<INITIAL>dump return DUMP;<INITIAL>End{W}of{W}File return END_OF_FILE;<INITIAL>falloff return FALLOFF;<INITIAL>filter return FILTER;<INITIAL>finish{W}identifier return FINISH_ID;<INITIAL>finish return FINISH;<INITIAL>flatness return FLATNESS;<INITIAL>float{W}identifier return FLOAT_ID;<INITIAL>float{W}constant return FLOAT;<INITIAL>fog return FOG;<INITIAL>frequency return FREQUENCY;<INITIAL>gif return GIF;<INITIAL>gradient return GRADIENT;<INITIAL>granite return GRANITE;<INITIAL>green return GREEN;<INITIAL>height_field return HEIGHT_FIELD;<INITIAL>hexagon return HEXAGON;<INITIAL>undeclared{W}identifier return IDENTIFIER;<INITIAL>iff return IFF;<INITIAL>image_map return IMAGE_MAP;<INITIAL>interpolate return INTERPOLATE;<INITIAL>intersection return INTERSECTION;<INITIAL>inverse return INVERSE;<INITIAL>ior return IOR;<INITIAL>jitter return JITTER;<INITIAL>lambda return LAMBDA;<INITIAL>leopard return LEOPARD;<INITIAL>light_source return LIGHT_SOURCE;<INITIAL>location return LOCATION;<INITIAL>looks_like return LOOKS_LIKE;<INITIAL>look_at return LOOK_AT;<INITIAL>mandel return MANDEL;<INITIAL>map_type return MAP_TYPE;<INITIAL>marble return MARBLE;<INITIAL>material_map return MATERIAL_MAP;<INITIAL>max_intersections return MAX_INTERSECTIONS;<INITIAL>max_trace_level return MAX_TRACE_LEVEL;<INITIAL>merge return MERGE;<INITIAL>metallic return METALLIC;<INITIAL>mortar return MORTAR;<INITIAL>normal return NORMAL;<INITIAL>no_shadow return NO_SHADOW;<INITIAL>object{W}identifier return OBJECT_ID;<INITIAL>object return OBJECT;<INITIAL>octaves return OCTAVES;<INITIAL>omega return OMEGA;<INITIAL>once return ONCE;<INITIAL>onion return ONION;<INITIAL>open return OPEN;<INITIAL>painted1 return PAINTED1;<INITIAL>painted2 return PAINTED2;<INITIAL>painted3 return PAINTED3;<INITIAL>phase return PHASE;<INITIAL>phong_size return PHONG_SIZE;<INITIAL>phong return PHONG;<INITIAL>pigment{W}identifier return PIGMENT_ID;<INITIAL>pigment return PIGMENT;<INITIAL>plane return PLANE;<INITIAL>point_at return POINT_AT;<INITIAL>poly return POLY;<INITIAL>pot return POT;<INITIAL>quadric return QUADRIC;<INITIAL>quartic return QUARTIC;<INITIAL>quick_color return QUICK_COLOR;<INITIAL>quick_colour return QUICK_COLOR;<INITIAL>radial return RADIAL;<INITIAL>radius return RADIUS;<INITIAL>raw return RAW;<INITIAL>red return RED;<INITIAL>reflection return REFLECTION;<INITIAL>refraction return REFRACTION;<INITIAL>rgbf return RGBF;<INITIAL>rgb return RGB;<INITIAL>right return RIGHT;<INITIAL>ripples return RIPPLES;<INITIAL>rotate return ROTATE;<INITIAL>roughness return ROUGHNESS;<INITIAL>scale return SCALE;<INITIAL>sky return SKY;<INITIAL>smooth return SMOOTH;<INITIAL>smooth_triangle return SMOOTH_TRIANGLE;<INITIAL>specular return SPECULAR;<INITIAL>sphere return SPHERE;<INITIAL>spotlight return SPOTLIGHT;<INITIAL>spotted return SPOTTED;<INITIAL>string return STRING;<INITIAL>sturm return STURM;<INITIAL>texture{W}identifier return TEXTURE_ID;<INITIAL>texture return TEXTURE;<INITIAL>tga return TGA;<INITIAL>threshold return THRESHOLD;<INITIAL>tightness return TIGHTNESS;<INITIAL>tile2 return TILE2;<INITIAL>tiles return TILES;<INITIAL>tnormal{W}identifier return TNORMAL_ID;<INITIAL>torus return TORUS;<INITIAL>track return TRACK;<INITIAL>transform{W}identifier return TRANSFORM_ID;<INITIAL>transform return TRANSFORM;<INITIAL>translate return TRANSLATE;<INITIAL>triangle return TRIANGLE;<INITIAL>turbulence return TURBULENCE;<INITIAL>type return TYPE;<INITIAL>union return UNION;<INITIAL>up return UP;<INITIAL>use_color return USE_COLOR;<INITIAL>use_colour return USE_COLOR;<INITIAL>use_index return USE_INDEX;<INITIAL>u_steps return U_STEPS;<INITIAL>vector{W}identifier return VECTOR_ID;<INITIAL>version return VERSION;<INITIAL>v_steps return V_STEPS;<INITIAL>water_level return WATER_LEVEL;<INITIAL>waves return WAVES;<INITIAL>wood return WOOD;<INITIAL>wrinkles return WRINKLES;<INITIAL>x return X;<INITIAL>y return Y;<INITIAL>z return Z;<INITIAL>{D}+ |<INITIAL>{D}+"."{D}*({E})? |<INITIAL>{D}*"."{D}+({E})? |<INITIAL>{D}+{E} {yylval.dval=atof((char*)yytext);return LITERAL;}<INITIAL>[a-zA-Z][a-zA-Z0-9]* {yylval.sval=(char*)yytext; return IDENTIFIER;}<INITIAL>{W} ;<INITIAL>\n ;<INITIAL>. {return yytext[0];}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -