From 521aa51d955e852307d6fb665481ef76257d26dc Mon Sep 17 00:00:00 2001 From: Retera Date: Wed, 20 May 2020 08:21:41 -0400 Subject: [PATCH] Key value pair parser for FDF, new design, g4 file --- fdfparser/antlr-src/FDF.g4 | 242 +++---------------------------------- 1 file changed, 19 insertions(+), 223 deletions(-) diff --git a/fdfparser/antlr-src/FDF.g4 b/fdfparser/antlr-src/FDF.g4 index 4203744..7728f25 100644 --- a/fdfparser/antlr-src/FDF.g4 +++ b/fdfparser/antlr-src/FDF.g4 @@ -20,6 +20,12 @@ statement: ; frame: + frame_type_qualifier OPEN_CURLY frame_element* CLOSE_CURLY # AnonymousCompDefinition + | + frame_type_qualifier INHERITS STRING_LITERAL OPEN_CURLY frame_element* CLOSE_CURLY # AnonymousCompSubTypeDefinition + | + frame_type_qualifier INHERITS WITHCHILDREN STRING_LITERAL OPEN_CURLY frame_element* CLOSE_CURLY # AnonymousCompSubTypeDefinitionWithChildren + | frame_type_qualifier STRING_LITERAL OPEN_CURLY frame_element* CLOSE_CURLY # CompDefinition | frame_type_qualifier STRING_LITERAL INHERITS STRING_LITERAL OPEN_CURLY frame_element* CLOSE_CURLY # CompSubTypeDefinition @@ -36,151 +42,31 @@ frame: frame_element: frame # FrameFrameElement | - HEIGHT FLOAT COMMA # HeightElement + ID FLOAT COMMA # FloatElement | - WIDTH FLOAT COMMA # WidthElement + ID STRING_LITERAL COMMA # StringElement | - CONTROL_STYLE STRING_LITERAL COMMA # ControlStyleElement + ID STRING_LITERAL STRING_LITERAL COMMA # StringPairElement | - CONTROL_BACKDROP STRING_LITERAL COMMA # ControlBackdropElement + ID FLOAT FLOAT COMMA # Vector2Element | - CONTROL_PUSHED_BACKDROP STRING_LITERAL COMMA # ControlPushedBackdropElement + ID COMMA # FlagElement | - CONTROL_DISABLED_BACKDROP STRING_LITERAL COMMA # ControlDisabledBackdropElement + ID FLOAT FLOAT FLOAT FLOAT COMMA # Vector4Element | - CONTROL_FOCUS_HIGHLIGHT STRING_LITERAL COMMA # ControlFocusHighlightElement - | - CONTROL_MOUSE_OVER_HIGHLIGHT STRING_LITERAL COMMA # ControlMouseOverHighlightElement - | - HIGHLIGHT_TYPE STRING_LITERAL COMMA # HighlightTypeElement - | - HIGHLIGHT_ALPHA_FILE STRING_LITERAL COMMA # HighlightAlphaFileElement - | - HIGHLIGHT_ALPHA_MODE STRING_LITERAL COMMA # HighlightAlphaModeElement - | - BUTTON_PUSHED_TEXT_OFFSET FLOAT FLOAT COMMA # ButtonPushedTextOffsetElement - | - DIALOG_BACKDROP STRING_LITERAL COMMA # DialogBackdropElement - | - BACKDROP_TILE_BACKGROUND COMMA # BackdropTileBackgroundElement - | - DECORATE_FILE_NAMES COMMA # DecorateFileNamesElement - | - SET_ALL_POINTS COMMA # SetAllPointsElement - | - USE_ACTIVE_CONTEXT COMMA # UseActiveContextElement - | - BACKDROP_HALF_SIDES COMMA # BackdropHalfSidesElement - | - BACKDROP_BACKGROUND STRING_LITERAL COMMA # BackdropBackgroundElement - | - BACKDROP_CORNER_FLAGS STRING_LITERAL COMMA # BackdropCornerFlagsElement - | - BACKDROP_CORNER_SIZE FLOAT COMMA # BackdropCornerSizeElement - | - BACKDROP_BACKGROUND_SIZE FLOAT COMMA # BackdropBackgroundSizeElement - | - BACKDROP_BACKGROUND_INSETS FLOAT FLOAT FLOAT FLOAT COMMA # BackdropBackgroundInsetsElement - | - BACKDROP_EDGE_FILE STRING_LITERAL COMMA # BackdropEdgeFileElement - | - BACKDROP_BACKGROUND STRING_LITERAL COMMA # BackdropBackgroundElement - | - BACKDROP_BLEND_ALL COMMA # BackdropBlendAllElement - | - BUTTON_TEXT STRING_LITERAL COMMA #ButtonTextElement - | - TEXT STRING_LITERAL COMMA # TextElement + ID FLOAT COMMA FLOAT COMMA FLOAT COMMA FLOAT COMMA # Vector4CommaElement | SETPOINT frame_point COMMA STRING_LITERAL COMMA frame_point COMMA FLOAT COMMA FLOAT COMMA # SetPointElement | - BACKDROP_CORNER_FILE STRING_LITERAL COMMA # BackdropCornerFileElement + ANCHOR frame_point COMMA FLOAT COMMA FLOAT COMMA # AnchorElement | - BACKDROP_LEFT_FILE STRING_LITERAL COMMA # BackdropLeftFileElement + ID STRING_LITERAL COMMA FLOAT COMMA STRING_LITERAL COMMA # FontElement | - BACKDROP_RIGHT_FILE STRING_LITERAL COMMA # BackdropRightFileElement + ID FLOAT FLOAT FLOAT COMMA # Vector3Element | - BACKDROP_TOP_FILE STRING_LITERAL COMMA # BackdropTopFileElement + ID text_justify COMMA # TextJustifyElement | - BACKDROP_BOTTOM_FILE STRING_LITERAL COMMA # BackdropBottomFileElement - | - FRAME_FONT STRING_LITERAL COMMA FLOAT COMMA STRING_LITERAL COMMA # DecorateFileNamesElement - | - FONT_FLAGS STRING_LITERAL COMMA # FontFlagsElement - | - FONT_COLOR color COMMA # FontColorElement - | - FONT_HIGHLIGHT_COLOR color COMMA # FontHighlightColorElement - | - FONT_DISABLED_COLOR color COMMA # FontDisabledColorElement - | - FONT_SHADOW_COLOR color COMMA # FontShadowColorElement - | - FONT_SHADOW_OFFSET FLOAT FLOAT COMMA # FontShadowOffsetElement - | - FONT_JUSTIFICATION_H text_justify COMMA # FontJustificationHElement - | - FONT_JUSTIFICATION_V text_justify COMMA # FontJustificationVElement - | - FONT_JUSTIFICATION_OFFSET FLOAT FLOAT COMMA # FontJustificationOffsetElement - | - SLIDER_LAYOUT_HORIZONTAL COMMA # SliderLayoutHorizontalElement - | - SLIDER_LAYOUT_VERTICAL COMMA # SliderLayoutVerticalElement - | - SCROLL_BAR_INC_BUTTON_FRAME STRING_LITERAL COMMA # ScrollBarIncButtonFrameElement - | - SCROLL_BAR_DEC_BUTTON_FRAME STRING_LITERAL COMMA # ScrollBarDecButtonFrameElement - | - SLIDER_THUMB_BUTTON_FRAME STRING_LITERAL COMMA # SliderThumbButtonFrameElement - | - LIST_BOX_BORDER FLOAT COMMA # ListBoxBorderElement - | - LIST_BOX_SCROLL_BAR STRING_LITERAL COMMA # ListBoxScrollBarElement - | - EDIT_BORDER_SIZE FLOAT COMMA # EditBorderSizeElement - | - EDIT_CURSOR_COLOR color COMMA # EditCursorColorElement - | - MENU_TEXT_HIGHLIGHT_COLOR color COMMA # MenuTextHighlightColorElement - | - MENU_ITEM_HEIGHT FLOAT COMMA # MenuItemHighlightElement - | - MENU_BORDER FLOAT COMMA # MenuBorderElement - | - POPUP_BUTTON_INSET FLOAT COMMA # PopupButtonInsetElement - | - POPUP_TITLE_FRAME STRING_LITERAL COMMA # PopupTitleFrameElement - | - POPUP_ARROW_FRAME STRING_LITERAL COMMA # PopupArrowFrameElement - | - POPUP_MENU_FRAME STRING_LITERAL COMMA # PopupMenuFrameElement - | - CHECK_BOX_CHECK_HIGHLIGHT STRING_LITERAL COMMA # CheckBoxCheckHighlightElement - | - CHECK_BOX_DISABLED_CHECK_HIGHLIGHT STRING_LITERAL COMMA # CheckBoxDisabledCheckHighlightElement - | - TEXT_AREA_LINE_HEIGHT FLOAT COMMA # TextAreaLineHeightElement - | - TEXT_AREA_LINE_GAP FLOAT COMMA # TextAreaLineGapElement - | - TEXT_AREA_INSET FLOAT COMMA # TextAreaInsetElement - | - TEXT_AREA_SCROLL_BAR STRING_LITERAL COMMA # TextAreaScrollBarElement - | - CHAT_DISPLAY_LINE_HEIGHT FLOAT COMMA # ChatDisplayLineHeightElement - | - CHAT_DISPLAY_BORDER_SIZE FLOAT COMMA # ChatDisplayBorderSize - | - CHAT_DISPLAY_SCROLL_BAR STRING_LITERAL COMMA # ChatDisplayScrollBarElement - | - CHAT_DISPLAY_EDIT_BOX STRING_LITERAL COMMA # ChatDisplayEditBoxElement - | - TEXT STRING_LITERAL COMMA # TextElement - | - FILE STRING_LITERAL COMMA # FileElement - | - FONT STRING_LITERAL COMMA FLOAT COMMA # FontElement + ID STRING_LITERAL COMMA FLOAT COMMA # SimpleFontElement ; text_justify: @@ -231,98 +117,8 @@ INHERITS : 'INHERITS' ; WITHCHILDREN : 'WITHCHILDREN' ; -DECORATE_FILE_NAMES : 'DecorateFileNames'; - -SET_ALL_POINTS : 'SetAllPoints'; - -USE_ACTIVE_CONTEXT : 'UseActiveContext'; - -HEIGHT : 'Height'; - -WIDTH : 'Width'; - -HIGHLIGHT_TYPE : 'HighlightType'; -HIGHLIGHT_ALPHA_FILE : 'HighlightAlphaFile'; -HIGHLIGHT_ALPHA_MODE : 'HighlightAlphaMode'; - -CONTROL_STYLE : 'ControlStyle'; -CONTROL_BACKDROP : 'ControlBackdrop'; -CONTROL_PUSHED_BACKDROP : 'ControlPushedBackdrop'; -CONTROL_DISABLED_BACKDROP : 'ControlDisabledBackdrop'; -CONTROL_FOCUS_HIGHLIGHT : 'ControlFocusHighlight'; -CONTROL_MOUSE_OVER_HIGHLIGHT : 'ControlMouseOverHighlight'; - -DIALOG_BACKDROP : 'DialogBackdrop'; - -BACKDROP_TILE_BACKGROUND : 'BackdropTileBackground'; -BACKDROP_HALF_SIDES : 'BackdropHalfSides'; -BACKDROP_BACKGROUND : 'BackdropBackground'; -BACKDROP_BLEND_ALL : 'BackdropBlendAll'; -BACKDROP_CORNER_FLAGS : 'BackdropCornerFlags'; -BACKDROP_CORNER_SIZE : 'BackdropCornerSize'; -BACKDROP_BACKGROUND_SIZE : 'BackdropBackgroundSize'; -BACKDROP_BACKGROUND_INSETS : 'BackdropBackgroundInsets'; -BACKDROP_EDGE_FILE : 'BackdropEdgeFile'; -BACKDROP_CORNER_FILE : 'BackdropCornerFile'; -BACKDROP_LEFT_FILE : 'BackdropLeftFile'; -BACKDROP_RIGHT_FILE : 'BackdropRightFile'; -BACKDROP_TOP_FILE : 'BackdropTopFile'; -BACKDROP_BOTTOM_FILE : 'BackdropBottomFile'; - -FRAME_FONT : 'FrameFont'; -FONT_FLAGS : 'FontFlags'; -FONT_COLOR : 'FontColor'; -FONT_HIGHLIGHT_COLOR : 'FontHighlightColor'; -FONT_DISABLED_COLOR : 'FontDisabledColor'; -FONT_SHADOW_COLOR : 'FontShadowColor'; -FONT_SHADOW_OFFSET : 'FontShadowOffset'; -FONT_JUSTIFICATION_H : 'FontJustificationH'; -FONT_JUSTIFICATION_V : 'FontJustificationV'; -FONT_JUSTIFICATION_OFFSET : 'FontJustificationOffset'; - -SLIDER_LAYOUT_HORIZONTAL : 'SliderLayoutHorizontal'; -SLIDER_LAYOUT_VERTICAL : 'SliderLayoutVertical'; -SLIDER_THUMB_BUTTON_FRAME : 'SliderThumbButtonFrame'; -SCROLL_BAR_DEC_BUTTON_FRAME : 'ScrollBarDecButtonFrame'; -SCROLL_BAR_INC_BUTTON_FRAME : 'ScrollBarIncButtonFrame'; - -LIST_BOX_BORDER : 'ListBoxBorder'; -LIST_BOX_SCROLL_BAR : 'ListBoxScrollBar'; - -EDIT_BORDER_SIZE : 'EditBorderSize'; -EDIT_CURSOR_COLOR : 'EditCursorColor'; - -MENU_TEXT_HIGHLIGHT_COLOR : 'MenuTextHighlightColor'; -MENU_ITEM_HEIGHT : 'MenuItemHeight'; -MENU_BORDER : 'MenuBorder'; - -POPUP_BUTTON_INSET : 'PopupButtonInset'; -POPUP_TITLE_FRAME : 'PopupTitleFrame'; -POPUP_ARROW_FRAME : 'PopupArrowFrame'; -POPUP_MENU_FRAME : 'PopupMenuFrame'; -CHECK_BOX_CHECK_HIGHLIGHT : 'CheckBoxCheckHighlight'; -CHECK_BOX_DISABLED_CHECK_HIGHLIGHT : 'CheckBoxDisabledCheckHighlight'; - -TEXT_AREA_LINE_HEIGHT : 'TextAreaLineHeight'; -TEXT_AREA_LINE_GAP : 'TextAreaLineGap'; -TEXT_AREA_INSET : 'TextAreaInset'; -TEXT_AREA_SCROLL_BAR : 'TextAreaScrollBar'; - -CHAT_DISPLAY_LINE_HEIGHT : 'ChatDisplayLineHeight'; -CHAT_DISPLAY_BORDER_SIZE : 'ChatDisplayBorderSize'; -CHAT_DISPLAY_SCROLL_BAR : 'ChatDisplayScrollBar'; -CHAT_DISPLAY_EDIT_BOX : 'ChatDisplayEditBox'; - -BUTTON_TEXT : 'ButtonText'; -BUTTON_PUSHED_TEXT_OFFSET : 'ButtonPushedTextOffset'; - -TEXT : 'Text'; - -FILE : 'File'; - -FONT : 'Font'; - SETPOINT : 'SetPoint'; +ANCHOR : 'Anchor'; JUSTIFYTOP : 'JUSTIFYTOP'; JUSTIFYMIDDLE : 'JUSTIFYMIDDLE';