This one confuses me. First of all, if there is a bibtex syntax error  
it's btparse that should catch it. I see no reason why detexification  
should catch bibtex parsing errors, in particular as it does not  
explicitly look for bibtex parsing errors. In fact I don't even think  
this particular case should be considered a bug from the POV of  
detexification. For example some TeX like  \{ without matching  
closing brace is perfectly valid tex. I don't know how this one  
should be handled, but it should be catched somewhere else.

Christiaan

On 17 Jan 2008, at 12:43 AM, Adam R. Maxwell wrote:

>  Going back to the commit log and e-mail to the develop list a year  
> ago, Mike posted this:
>
> @inproceedings{Liu04EXPERT,
>       Abstract = {Studying program behavior is a central component in
> architectural designs. In this paper, we study and exploit one aspect
> of program behavior, the behavior repetition, to expedite simulation.
> Detailed architectural simulation can be long and computationally
> expensive. Various alternatives are commonly used to simulate a much
> smaller instruction stream to evaluate design choices: using a
> reduced input set or simulating only a small window of the
> instruction stream. In this paper, we propose to reduce the amount of
> detailed simulation by avoiding simulating repeated code sections
> that demonstrate stable behavior. By characterizing program behavior
> repetition and use the information to select a subset of instructions
> for detailed simulation, we can significantly speed up the process
> without affecting the accuracy. In most cases, simulation time of
> full-length SPEC CPU2000 benchmarks is reduced from hundreds of hours
> to a few hours. The average error incurred is only about 1\{\%} or
> less for a range of metrics.},
> Title = {TEST},
> Author = {Mike McC}}
>
> ...which with your changes no longer shows an error message  
> (printing to standard error doesn't count).  I added the nil return  
> specifically to catch this syntax error, and it's noted in the  
> parser's addValuesFromEntryToDictionary function.  What other  
> BibTeX syntax errors do we ignore when parsing a file?
>
> On Wednesday, January 16, 2008, at 03:21PM, "Christiaan Hofman"  
> <[EMAIL PROTECTED]> wrote:
>> We convert what we can, and not what we can't, anyway. Why would
>> these braces be any different from another tex syntax error? Also,
>> there seems to be only a single place where we might be interested in
>> syntax errors (namely the parser). The only syntax error that is
>> checked here is non-matching braces. However the bibtex parser is the
>> one place where non-matching braces can never occur (otherwise
>> btparse would have already raised). So it would be a no-op anyway.
>>
>> Christiaan
>>
>> On 17 Jan 2008, at 12:14 AM, Adam R. Maxwell wrote:
>>
>>> I don't think it's like cleaning at all.  It's primary purpose is
>>> conversion when parsing BibTeX, not temporary changing for display
>>> (as in stringByRemovingTeX).  It ultimately affects what gets saved
>>> back out to disk, so it's part of a critical data path.
>>>
>>> On Wednesday, January 16, 2008, at 03:10PM, "Christiaan Hofman"
>>> <[EMAIL PROTECTED]> wrote:
>>>> Isn't detexification something like cleaning? In particular as we
>>>> don't check lots of other tex mistakes either without returning  
>>>> nil.
>>>> Why would this be considered an error?
>>>>
>>>> Christiaan
>>>>
>>>> On 17 Jan 2008, at 12:03 AM, Adam R. Maxwell wrote:
>>>>
>>>>> Is this a good idea?  I think returning nil from a syntax error is
>>>>> generally a good thing, and that's precisely the reason I added
>>>>> that.  We check for a nil return in BibTeXParser, and other parts
>>>>> of the code should check for it as well.
>>>>>
>>>>> On Wednesday, January 16, 2008, at 02:50PM,
>>>>> <[EMAIL PROTECTED]> wrote:
>>>>>> Revision: 12523
>>>>>>          http://bibdesk.svn.sourceforge.net/bibdesk/?
>>>>>> rev=12523&view=rev
>>>>>> Author:   hofman
>>>>>> Date:     2008-01-16 14:50:39 -0800 (Wed, 16 Jan 2008)
>>>>>>
>>>>>> Log Message:
>>>>>> -----------
>>>>>> Don't return nil when detexification fails.
>>>>>>
>>>>>> Modified Paths:
>>>>>> --------------
>>>>>>    trunk/bibdesk/BDSKConverter.m
>>>>>>
>>>>>> Modified: trunk/bibdesk/BDSKConverter.m
>>>>>> ================================================================= 
>>>>>> ==
>>>>>> --- trunk/bibdesk/BDSKConverter.m        2008-01-16 22:35:31 UTC (rev
>>>>>> 12522)
>>>>>> +++ trunk/bibdesk/BDSKConverter.m        2008-01-16 22:50:39 UTC (rev
>>>>>> 12523)
>>>>>> @@ -137,33 +137,39 @@
>>>>>>     [self setDetexifyAccents:[wholeDict
>>>>>> objectForKey:TEX_TO_ROMAN_ACCENTS_KEY]];
>>>>>> }
>>>>>>
>>>>>> +- (NSString *)copyComplexString:(BDSKComplexString *)cs
>>>>>> byCopyingStringNodesUsingSelector:(SEL)copySelector {
>>>>>> +    NSEnumerator *nodeEnum = [[cs nodes] objectEnumerator];
>>>>>> +    BDSKStringNode *node, *newNode;
>>>>>> +    NSMutableArray *nodes = [[NSMutableArray alloc]
>>>>>> initWithCapacity:[[cs nodes] count]];
>>>>>> +    NSString *string;
>>>>>> +
>>>>>> +    while(node = [nodeEnum nextObject]){
>>>>>> +        if([node type] == BSN_STRING){
>>>>>> +            string = [self performSelector:copySelector
>>>>>> withObject:[node value]];
>>>>>> +            newNode = [[BDSKStringNode alloc]
>>>>>> initWithQuotedString:string];
>>>>>> +            [string release];
>>>>>> +        } else {
>>>>>> +            newNode = [node copy];
>>>>>> +        }
>>>>>> +        [nodes addObject:newNode];
>>>>>> +        [newNode release];
>>>>>> +    }
>>>>>> +
>>>>>> +    string = [[NSString alloc] initWithNodes:nodes  
>>>>>> macroResolver:
>>>>>> [cs macroResolver]];
>>>>>> +    [nodes release];
>>>>>> +    return string;
>>>>>> +}
>>>>>> +
>>>>>> - (NSString *)copyStringByTeXifyingString:(NSString *)s{
>>>>>>
>>>>>>  // TeXify only string nodes of complex strings;
>>>>>>  if([s isComplex]){
>>>>>> -                BDSKComplexString *cs = (BDSKComplexString *)s;
>>>>>> -                NSEnumerator *nodeEnum = [[cs nodes] objectEnumerator];
>>>>>> -                BDSKStringNode *node, *newNode;
>>>>>> -                NSMutableArray *nodes = [[NSMutableArray alloc]
>>>>>> initWithCapacity:[[cs nodes] count]];
>>>>>> -        NSString *string;
>>>>>> -                
>>>>>> -                while(node = [nodeEnum nextObject]){
>>>>>> -                        if([node type] == BSN_STRING){
>>>>>> -                                string = [self 
>>>>>> copyStringByTeXifyingString:[node value]];
>>>>>> -                if(string == nil) break;
>>>>>> -                newNode = [[BDSKStringNode alloc]
>>>>>> initWithQuotedString:string];
>>>>>> -                [string release];
>>>>>> -                        } else {
>>>>>> -                                newNode = [node copy];
>>>>>> -                        }
>>>>>> -            [nodes addObject:newNode];
>>>>>> -                        [newNode release];
>>>>>> -                }
>>>>>> -
>>>>>> -        string = [[NSString alloc] initWithNodes:nodes
>>>>>> macroResolver:[cs macroResolver]];
>>>>>> -        [nodes release];
>>>>>> -                return string;
>>>>>> +        return [self copyComplexString:(BDSKComplexString *)s
>>>>>> byCopyingStringNodesUsingSelector:_cmd];
>>>>>>  }
>>>>>> +
>>>>>> +    if([NSString isEmptyString:s]){
>>>>>> +        return [s retain];
>>>>>> +    }
>>>>>>  
>>>>>>     // we expect to find composed accented characters, as this is
>>>>>> also what we use in the CharacterConversion plist
>>>>>>     NSMutableString *precomposedString = [s mutableCopy];
>>>>>> @@ -264,31 +270,14 @@
>>>>>>
>>>>>> - (NSString *)copyStringByDeTeXifyingString:(NSString *)s{
>>>>>>
>>>>>> -    if([NSString isEmptyString:s]){
>>>>>> -        return [s retain];
>>>>>> -    }
>>>>>> -
>>>>>>  // deTeXify only string nodes of complex strings;
>>>>>>  if([s isComplex]){
>>>>>> -                BDSKComplexString *cs = (BDSKComplexString *)s;
>>>>>> -                NSEnumerator *nodeEnum = [[cs nodes] objectEnumerator];
>>>>>> -                BDSKStringNode *node, *newNode;
>>>>>> -                NSMutableArray *nodes = [NSMutableArray 
>>>>>> arrayWithCapacity:[[cs
>>>>>> nodes] count]];
>>>>>> -                NSString *string;
>>>>>> -
>>>>>> -                while(node = [nodeEnum nextObject]){
>>>>>> -                        if([node type] == BSN_STRING){
>>>>>> -                                string = [self 
>>>>>> copyStringByDeTeXifyingString:[node value]];
>>>>>> -                                newNode = [[BDSKStringNode alloc]
>>>>>> initWithQuotedString:string];
>>>>>> -                [string release];
>>>>>> -                        } else {
>>>>>> -                                newNode = [node copy];
>>>>>> -                        }
>>>>>> -            [nodes addObject:newNode];
>>>>>> -                        [newNode release];
>>>>>> -                }
>>>>>> -                return [[NSString alloc] initWithNodes:nodes 
>>>>>> macroResolver:[cs
>>>>>> macroResolver]];
>>>>>> +        return [self copyComplexString:(BDSKComplexString *)s
>>>>>> byCopyingStringNodesUsingSelector:_cmd];
>>>>>>  }
>>>>>> +
>>>>>> +    if([NSString isEmptyString:s]){
>>>>>> +        return [s retain];
>>>>>> +    }
>>>>>>  
>>>>>>     NSMutableString *tmpConv = nil;
>>>>>>     NSString *TEXString = nil;
>>>>>> @@ -328,8 +317,7 @@
>>>>>>                 range = [convertedSoFar rangeOfString:@"{\\"
>>>>>> options:0 range:NSMakeRange(replaceRange.location + 1, length -
>>>>>> replaceRange.location - 1)];
>>>>>>             } else {
>>>>>>                 NSLog(@"missing brace in string %@",
>>>>>> convertedSoFar);
>>>>>> -                [convertedSoFar release];
>>>>>> -                return nil;
>>>>>> +                range = NSMakeRange(NSNotFound, 0);
>>>>>>             }
>>>>>>
>>>>>>         }
>>>>>>
>>>>>>
>>>>>> This was sent by the SourceForge.net collaborative development
>>>>>> platform, the world's largest Open Source development site.
>>>>>>
>>>>>> ----------------------------------------------------------------- 
>>>>>> --
>>>>>> --
>>>>>> ----
>>>>>> This SF.net email is sponsored by: Microsoft
>>>>>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>>>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>>>>>> _______________________________________________
>>>>>> Bibdesk-commit mailing list
>>>>>> [EMAIL PROTECTED]
>>>>>> https://lists.sourceforge.net/lists/listinfo/bibdesk-commit
>>>>>>
>>>>>>
>>>>>
>>>>> ------------------------------------------------------------------ 
>>>>> --
>>>>> --
>>>>> ---
>>>>> This SF.net email is sponsored by: Microsoft
>>>>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>>>>> _______________________________________________
>>>>> Bibdesk-develop mailing list
>>>>> Bibdesk-develop@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/bibdesk-develop
>>>>
>>>>
>>>> ------------------------------------------------------------------- 
>>>> --
>>>> ----
>>>> This SF.net email is sponsored by: Microsoft
>>>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>>>> _______________________________________________
>>>> Bibdesk-develop mailing list
>>>> Bibdesk-develop@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/bibdesk-develop
>>>>
>>>>
>>>
>>> -------------------------------------------------------------------- 
>>> --
>>> ---
>>> This SF.net email is sponsored by: Microsoft
>>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>>> _______________________________________________
>>> Bibdesk-develop mailing list
>>> Bibdesk-develop@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/bibdesk-develop
>>
>>
>> --------------------------------------------------------------------- 
>> ----
>> This SF.net email is sponsored by: Microsoft
>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>> _______________________________________________
>> Bibdesk-develop mailing list
>> Bibdesk-develop@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/bibdesk-develop
>>
>>
>
> ---------------------------------------------------------------------- 
> ---
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Bibdesk-develop mailing list
> Bibdesk-develop@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bibdesk-develop


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bibdesk-develop mailing list
Bibdesk-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-develop

Reply via email to