📄 configlexer.l
字号:
/* -*-c++-*- Producer - Copyright (C) 2001-2004 Don Burns * * This library is open source and may be redistributed and/or modified under * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or * (at your option) any later version. The full license is in LICENSE file * included with this distribution, and on the openscenegraph.org website. * * 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 * OpenSceneGraph Public License for more details. */%{#include <stdio.h>#include <ctype.h>#include "ConfigParser.h"//#define DEBUG#ifdef DEBUG#define REPORT printf(" %s\n", yytext);#else#define REPORT#endif%}%option noyywrap%option c++/*%option yyclass="ConfigParser"*/DIGIT [0-9]ALPHA [A-Za-z]HEXALNUM [A-Fa-f0-9]%%[/][/]|[#]|[!] { #ifdef DEBUG char buff[128]; int i = 0; #endif char c; while( (c = yyinput()) != '\n' ) { if( c <= 0 ) break; #ifdef DEBUG buff[i++] = c; #endif } #ifdef DEBUG buff[i] = 0; printf( "Single line comment: \"%s\"\n", buff ); #endif }[\n] { yylineno++;}[ \t] { ; }[{] { REPORT return '{'; }[}] { REPORT return '}'; }["] { char c; int i = 0; while( (c = yyinput()) != '"' ) yytext[i++] = c; yytext[i] = 0; return PRTOKEN_QUOTED_STRING; }[,] { REPORT return ','; }[:] { REPORT return ':'; }[;] { REPORT return ';'; }SetSimple { REPORT return PRTOKEN_SET_SIMPLE; }VisualID { REPORT return PRTOKEN_VISUAL_ID; }BUFFER_SIZE { REPORT return PRTOKEN_BUFFER_SIZE; }LEVEL { REPORT return PRTOKEN_LEVEL; }RGBA { REPORT return PRTOKEN_RGBA; }DOUBLEBUFFER { REPORT return PRTOKEN_DOUBLEBUFFER; }STEREO { REPORT return PRTOKEN_STEREO; }AUX_BUFFERS { REPORT return PRTOKEN_AUX_BUFFERS; }RED_SIZE { REPORT return PRTOKEN_RED_SIZE; }GREEN_SIZE { REPORT return PRTOKEN_GREEN_SIZE; }BLUE_SIZE { REPORT return PRTOKEN_BLUE_SIZE; }ALPHA_SIZE { REPORT return PRTOKEN_ALPHA_SIZE; }DEPTH_SIZE { REPORT return PRTOKEN_DEPTH_SIZE; }STENCIL_SIZE { REPORT return PRTOKEN_STENCIL_SIZE; }ACCUM_RED_SIZE { REPORT return PRTOKEN_ACCUM_RED_SIZE; }ACCUM_GREEN_SIZE { REPORT return PRTOKEN_ACCUM_GREEN_SIZE; }ACCUM_BLUE_SIZE { REPORT return PRTOKEN_ACCUM_BLUE_SIZE; }ACCUM_ALPHA_SIZE { REPORT return PRTOKEN_ACCUM_ALPHA_SIZE; }SAMPLES { REPORT return PRTOKEN_SAMPLES; }SAMPLE_BUFFERS { REPORT return PRTOKEN_SAMPLE_BUFFERS; }Visual { REPORT return PRTOKEN_VISUAL; }RenderSurface { REPORT return PRTOKEN_RENDER_SURFACE; }WindowRectangle { REPORT return PRTOKEN_WINDOW_RECT; }WindowRect { REPORT return PRTOKEN_WINDOW_RECT; }Hostname { REPORT return PRTOKEN_HOSTNAME; }Display { REPORT return PRTOKEN_DISPLAY; }Screen { REPORT return PRTOKEN_SCREEN; }Border { REPORT return PRTOKEN_BORDER; }InputRectangle { REPORT return PRTOKEN_INPUT_RECT; }InputRect { REPORT return PRTOKEN_INPUT_RECT; }DrawableType { REPORT return PRTOKEN_DRAWABLE_TYPE; }PBUFFER_TYPE { REPORT return PRTOKEN_PBUFFER_TYPE; }WINDOW_TYPE { REPORT return PRTOKEN_WINDOW_TYPE; }ReadDrawable { REPORT return PRTOKEN_READ_DRAWABLE; }RenderToTextureMode { REPORT return PRTOKEN_SET_RTT_MODE; }RTT_NONE { REPORT return PRTOKEN_RTT_MODE_NONE; }RTT_RGB { REPORT return PRTOKEN_RTT_MODE_RGB; }RTT_RGBA { REPORT; return PRTOKEN_RTT_MODE_RGBA; }CameraGroup { REPORT return PRTOKEN_CAMERA_GROUP; }Camera { REPORT return PRTOKEN_CAMERA; }ProjectionRectangle { REPORT return PRTOKEN_PROJECTION_RECT; }ProjectionRect { REPORT return PRTOKEN_PROJECTION_RECT; }Lens { REPORT return PRTOKEN_LENS; }ShareLens { REPORT return PRTOKEN_SHARELENS; }ShareView { REPORT return PRTOKEN_SHAREVIEW; }Frustum { REPORT return PRTOKEN_FRUSTUM; }Perspective { REPORT return PRTOKEN_PERSPECTIVE; }Ortho { REPORT return PRTOKEN_ORTHO; }ClearColor { REPORT return PRTOKEN_CLEAR_COLOR; }Offset { REPORT return PRTOKEN_OFFSET; }Rotate { REPORT return PRTOKEN_ROTATE; }Translate { REPORT return PRTOKEN_TRANSLATE; }Scale { REPORT return PRTOKEN_SCALE; }Shear { REPORT return PRTOKEN_SHEAR; }Method { REPORT return PRTOKEN_METHOD; }PreMultiply { REPORT return PRTOKEN_PREMULTIPLY; }PostMultiply { REPORT return PRTOKEN_POSTMULTIPLY; }InputArea { REPORT return PRTOKEN_INPUT_AREA; }StereoSystemCommands { REPORT return PRTOKEN_STEREO_SYSTEM_COMMANDS; }CustomFullScreenRectangle { REPORT return PRTOKEN_CUSTOM_FULL_SCREEN_RECTANGLE; }OverrideRedirect { REPORT return PRTOKEN_OVERRIDE_REDIRECT; }ThreadModel { REPORT return PRTOKEN_THREAD_MODEL; }SingleThreaded { REPORT return PRTOKEN_SINGLE_THREADED; }ThreadPerCamera { REPORT return PRTOKEN_THREAD_PER_CAMERA; }ThreadPerRenderSurface { REPORT return PRTOKEN_THREAD_PER_RENDER_SURFACE; }on|ON|true|yes { REPORT return PRTOKEN_TRUE; }off|OFF|false|no { REPORT return PRTOKEN_FALSE; }[-]?0x{HEXALNUM}+ { REPORT return PRTOKEN_HEX_INTEGER; }[-]?{DIGIT}+ { REPORT return PRTOKEN_INTEGER; }[-]?{DIGIT}*"."{DIGIT}*[Ff]? { REPORT return PRTOKEN_FLOAT; }[-]?{DIGIT}+[fF]{1} { REPORT return PRTOKEN_FLOAT; }[-]?({DIGIT}+)([eE][-+]?{DIGIT}+)? { REPORT return PRTOKEN_FLOAT; }[-]?({DIGIT}*\.{DIGIT}+)([eE][-+]?{DIGIT}+)? { REPORT return PRTOKEN_FLOAT; }%%
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -