I /believe/ the problem with the 'nasm' pygments lexer (I'm using Sphinx 
1.1.3, and Pygments 1.5 is that it doesn't recognize

    @DATA

as a legal identifier (commenting out the line with that identifier makes 
the nasm lexer pretty-print both forms, and checking the code for the nasm 
lexer indicates that it requires identifiers to start with a lower or upper 
alpha, dollar, period, underbar, or question mark:

        identifier = r'[a-zA-Z$._?][a-zA-Z0-9$._?#@~]*'

The 'gas' lexer doesn't recognize @ as a valid initial character for an 
identifier either: either an identifier must start with an alpha, dollar or 
underbar (and in this case, it can be a single character), OR it must start 
with a period (and in this case be followed by at least one other valid 
identifier character (including the @ character).

I'm not saying that @DATA is not a legal identifier for your assembly -- I 
don't know assembly. But the pygments lexers don't seem to think so...

The 'llvm' lexer does admit that @DATA could be a valid identifier, but 
there could be other issues in the code there -- characterizing the blocks 
as llvm code doesn't pretty-print either of them. (Actually, characterizing 
them as 'gas' doesn't pretty-print either of them either.)

To test these, I used a ".. code-block:: nasm" (and so on) directive to 
explicitly characterize the code. As far as I can tell (as of pygments 
1.5), there are there are three assembly dialects supported: nasm, gas, and 
llvm.

--
V.


On Tuesday, 22 May 2012 07:29:11 UTC-4, Craig Barnes wrote:
>
> On Monday, 21 November 2011 08:53:58 UTC, Rishi wrote:
>>
>> Hi All,
>>
>>
>> I am using Sphinx for writing a document on assembly level programming 
>> and I must say that its the best tool for writing any documentation.
>>
>> I am facing a small issue here
>>
>>
>> I have one piece of code which is as follows. This code is not getting 
>> highlighted.
>> ---------------------
>> *; Printing 'A'*
>>
>> *.model small
>>
>> .data
>>
>> .code 
>>
>>     ; Set the data segment.
>>     MOV AX, @DATA
>>     MOV DS, AX
>>     
>>
>> ; We will move the ASCII value of 'A' in the DL register.
>>     MOV DL, 41H
>>
>> ; We will move 02H in the AH register, this will ask int 21h to print a 
>> single character.    
>>     MOV AH, 02H
>>     INT 21H
>>
>>
>>     MOV AX, 4C00H
>>     INT 21H
>>
>>     END**
>> *-----------------------
>> While when I changed the code to the following its getting highlighted 
>> properly. I am not getting why is this happening. The only difference is 
>> the bolded part.
>> --------------------------
>> *; Printing 'A' 
>>
>> .model small
>>
>> DATA SEGMENT
>>
>> DATA ENDS
>>
>>
>> CODE SEGMENT
>>
>>     ; Set the data segment.
>>     assume cs:code, ds: data    
>>
>> ; We will move the ASCII value of 'A' in the DL register.
>>     MOV DL, 41H 
>>
>> ; We will move 02H in the AH register, this will ask int 21h to print a 
>> single character.   
>>     MOV AH, 02H 
>>     INT 21H 
>>
>>
>>     MOV AX, 4C00H
>>     INT 21H 
>>
>> CODE ENDS
>>     END **
>> *----------------------------
>>
>> I tried uploading the code on the website http://pygments.org/ and found 
>> that both the code are getting highlighted properly. 
>>
>> The version of pygments on the system is 
>>
>> * $ pygmentize -V
>> Pygments version 1.3.1, (c) 2006-2008 by Georg Brandl.
>> *
>>
>> Hello,
>
> I am getting the same issue.
>
> Has anyone found a solution to this? 
>
> Thanks
>
> Craig
>  
>

-- 
You received this message because you are subscribed to the Google Groups 
"sphinx-dev" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/sphinx-dev/-/Ow9QgYrHyq8J.
To post to this group, send email to sphinx-dev@googlegroups.com.
To unsubscribe from this group, send email to 
sphinx-dev+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sphinx-dev?hl=en.

Reply via email to