Get an Epic Experience with Premium

LibTagCompiler-2.0

Libraries Login to Add Favorites
  • 0 Likes
  • World of Warcraft
  • 45 Monthly Downloads
  • Supports: 4.2
  • 1,296 Total Downloads
  • Updated 04/24/2012
  • Created 03/19/2009
  • 0 Favorites
  • Project Site
  • Release Type: Mature
  • License: All Rights Reserved
  • Newest File: r10-release
or

About LibTagCompiler-2.0

LibTagCompiler-2.0 is a library allowing configuration via tags, specifically useful for display components, allowing easy arrangement and modification of said display. It is currently used in Assessment and Aloft.

Syntax

TextTag       := { Statement } @
RawTag        := RValue @
NumberTag     := RValue @

Statement     := literal | "[" RValue "]"
RValue        := Logical
Logical       := Relation { "&" | "|" } Relation
Relation      := Concat [ ("==" | "~=" | ">" | "<" | "<=" | ">=") Concat ]
Concat        := Expression { ("."  | "..") Expression }
Expression    := Term { ("+" | "-") Term }
Factor        := Chain { ("*" | "/") Chain }
Chain         := Unary { ":" Unary }
Unary         := [ "~" | "-" ] Primary
Primary       := ConstantNumber | ConstantString | Identifier ["(" ParameterList ")"] | "(" RValue ")"
ParameterList := RValue {, RValue }

Usage

TagCompiler:Compile(tag, tagData, resultType)
tagData is a structure that optionally has:
    tagname.data
    tagname.events
    tagname.overrideEvents
    tagname.guaranteeResult
    tagname.noGuaranteeChange
    tagname.numeric
    parameterTypes        -- Array of either "raw", "number" or "string"
And must have one of:
    tagname.tableData
    tagname.string
    tagname.method        -- Will be called with the input parameter, prior result and any parameters
    tagname.compileString

For methods or compileStrings that require parameters, it must contain
    tagname.parameterTypes

resultType is "string", "number", or "raw"

The result of CreateTag is a table with:
    data   - a list of data elements required, which is all of the tag's .data lists
    events - a list of the events required, which is a list of all tag's .events minus .overrideEvents
    method - call with input parameter
    tag    - the tag used

------------------------------------------------------------------------
r10 | phanx | 2012-04-25 04:57:26 +0000 (Wed, 25 Apr 2012) | 1 line
Changed paths:
   A /tags/r10-release (from /trunk:9)

Tagging as r10-release
------------------------------------------------------------------------
r9 | acapela | 2011-11-09 18:40:24 +0000 (Wed, 09 Nov 2011) | 1 line
Changed paths:
   M /trunk/TagCompiler-2.0.lua

fixed reference to AceLibrary, reference LibStub instead. "enhanced" Prefix/Suffix/Surround tags and basic tag concatenation slightly to support more complex conditional tag construction.
------------------------------------------------------------------------

Login to Curse

Don't have an account? Create One.

Get an epic experience with Curse Premium
  • Faster addon downloads
  • Premium-Only Beta Giveaways
  • Ad-Free Curse experience
  • Premium Curse Client
  • and many More Features
  • Learn More »

Infinite Crisis NA

Get Your Preferred Access Code!