[Framers] Are there limits on Conditional Expressions? If so, what are they?

Robert Lauriston robert at lauriston.com
Tue Apr 18 10:01:05 PDT 2017


Is there any documentation of the precedence and order of evaluation
of FrameMaker's conditional tag logical operators?

I feel like the second one needs more parentheses and might be missing
a NOT. As written, it looks like it will show (1) everything with none
of the condition tags in the set that starts with DocIss as well as
(2) everything that's tagged LITEvA that also has at least one of the
tags in the set that starts with LP unless it has a TBP or Internal
tag.

not ("DocIss" or ... "WriterNote")
or
("LITEvA" and (("LP" or ... or "SAS4vC") and not ("TBP" or "Internal")))

On Tue, Apr 18, 2017 at 7:32 AM, Lin Sims <ljsims.ml at gmail.com> wrote:
> No one wants to tackle that wall o' text, huh? :)
>
> How's this, then. Could someone explain why these two expressions don't
> have the same effect, even though (to my eyes) they are logically identical?
>
> This one works:
>
> not ( "DocIss" or "Internal" or "LP" or "LPvA" or "LPvB" or "LPvC" or "NoSeeEm"
> or "SAS4" or "SAS4vA" or "SAS4vB" or "SAS4vC" or "TBP" or "WriterNote" ) or (
> "LITEvA" and "LP" ) and not ( "Internal" or "TBP" ) or ( "LITEvA" and
> "LPvA" ) and not ( "Internal" or "TBP" ) or ( "LITEvA" and "LPvB" ) and not (
> "Internal" or "TBP" ) or ( "LITEvA" and "LPvC" ) and not ( "Internal" or "TBP"
> ) or ( "LITEvA" and "SAS4" ) and not ( "Internal" or "TBP" ) or ( "LITEvA"
> and "SAS4vA" ) and not ( "Internal" or "TBP" ) or ( "LITEvA" and "SAS4vB" ) and
> not ( "Internal" or "TBP" ) or ( "LITEvA" and "SAS4vC" ) and not (
> "Internal" or "TBP" )
>
> This one doesn't:
>
> not ( "DocIss" or "Internal" or "LP" or "LPvA" or "LPvB" or "LPvC" or "NoSeeEm"
> or "SAS4" or "SAS4vA" or "SAS4vB" or "SAS4vC" or "TBP" or "WriterNote" ) or (
> "LITEvA" and (( "LP" or "LPvA" or "LPvB" or "LPvC" or "SAS4" or
> "SAS4vA" or "SAS4vB"
> or "SAS4vC" ) and not ( "TBP" or "Internal" ) ) )
>
> Specifically, I have some text marked with LP + LITEvA + TBP, LPvA + LITEvA
> + TBP, and SAS4 + LITEvA + TBP that is hidden if I use the first expression
> (which is what I want) and showing if I use the second (which is NOT what I
> want).
>
> I'll use the first one (as it works correctly), but it is hard to build,
> hard to read, and I'm still not sure if I have it built to address all
> possible situations (although it works for the ones I've identified). But
> I'd still like to understand why the second one doesn't work. Is this a
> quirk of how FrameMaker interprets conditional expressions?
>
> And I'd also still like to know if there's a limit to how long an
> expression can be. Since I have to add at least 2 new ones now, the
> question is becoming important.
>
> On Wed, Apr 12, 2017 at 3:35 PM, Lin Sims <ljsims.ml at gmail.com> wrote:
>
>> Does Frame have a limit on how long the expression can be? I know from
>> annoying experience that it has a limit on how many nested levels you can
>> have. Are there any other gotchas that I should be aware of?
>>
>> -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+
>>
>> The rest of this email is background info to give y'all an idea of what
>> I'm dealing with. Feel free to skip it unless you would like to provide
>> some sympathy or are maybe a conditional expression guru and can offer some
>> advice.
>>
>> I've currently got 14 different condition tags in a book, of which 3 are
>> never seen publicly and are easy to deal with in the expression, 1 is used
>> to indicate information that is under review for inclusion, and the other
>> 10 overlap in various weird ways and took me, no lie, a week of
>> experimentation to write 8 separate condition expressions to correctly
>> generate the 8 different books being output from this set of files. (NB:
>> There are 2 IPs. One currently has 3 versions, the other only has 1 but
>> will likely have more soon, so I've already created tags to account for
>> them.)
>>
>> They now want me to add another condition, which will actually wind up
>> being as more than that since this is another IP with an unknown number of
>> versions. (Hell, it's entirely possible the other two IPs will wind up with
>> more versions than I've created tags for already, too.)
>>
>> I think I've worked out the how of adding the various "or" and "and not"
>> expressions in, but I'm worried about any limits to Frame's capabilities
>> here. Currently, my two longest expressions are 270 characters long, and
>> I've managed so far to keep the parenthetical expressions to only 2 levels.
>>
>> Below is one of the long expressions I'm talking about. If anyone has
>> suggestions for making it more elegant, that'd be nice, too. (DocIss,
>> NoSeeEm, and WriterNote are the ones never seen by anyone other than the
>> developers and internal reviewers. TBP is the one for information under
>> review, and is sometimes combined with one or more of the other conditions
>> depending on which book the information is slated for. This thing is a
>> BEAST.)
>>
>> not ( "DocIss" or "Internal" or "LP" or "LPvA" or "LPvB" or "LPvC" or "NoSeeEm"
>> or "SAS4vB" or "SAS4vC" or "TBP" or "WriterNote" ) or ( "SAS4" and (
>> "LPvB" or "LPvC" ) ) and not ("TBP" or "Internal") or ( "SAS4vA" and (
>> "LPvB" or "LPvC" ) ) and not ("TBP" or "Internal")
>>
>> Regards,
>>
>> Lin Sims
>>
>
>
>
> --
> Lin Sims
> _______________________________________________
>
> This message is from the Framers mailing list
>
> Send messages to framers at lists.frameusers.com
> Visit the list's homepage at  http://www.frameusers.com
> Archives located at http://www.mail-archive.com/framers%40lists.frameusers.com/
> Subscribe and unsubscribe at http://lists.frameusers.com/listinfo.cgi/framers-frameusers.com
> Send administrative questions to listadmin at frameusers.com


More information about the Framers mailing list