flat assembler
Message board for the users of flat assembler.
![]() Goto page Previous 1, 2, 3, 4, 5, 6, 7, 8 Next |
Author |
|
baldr
ouadji,
Looks like you're as crazy as I am. ![]() BTW, "release" means something complete, maybe "revision"? "Version" will fit the bill too. ![]() |
|||
![]() |
|
ouadji
Quote:
![]() ![]() ![]() Code: /*init!!!()! db 0,\ !(comment)!/*init!!/**//*comment*/ 1,/*init!!{==}{=com ment=}2,/*idle!!3,4/*idle!!/*init!!§--§§-com ment-§,5 flat assembler version 1.69.12 (multiline comment) 5 passes, 0.2 seconds ![]() |
|||
![]() |
|
revolution
ouadji wrote:
|
|||
![]() |
|
Coddy41
revolution wrote: And this is supposed to be more readable? Only to those whom want to believe it is more readable... I am not one of them. ![]() _________________ Want hosting for free for your asm project? You can PM me. (*.fasm4u.net) |
|||
![]() |
|
ouadji
Quote: And this is supposed to be more readable? ![]() ![]() it's just for the fun revolution. ![]() like we say in french :"who can do more, can do less" but you can do this too : Code: db 0,\ (! comment only for revolution !) 1 just a sample to show the power of engine, like macros. ![]() |
|||
![]() |
|
baldr
ouadji wrote:
Code: db 0,\ (! 1,\ 2,\ !) 3 db 0,\ (! 1,\ 2,\ !) 3 |
|||
![]() |
|
ouadji
hi baldr, ![]() I think I don't understand fully the meaning of your message. 1) this below, does compile without problem; Code: /*init!!(!!) A -- db 0,\ (! 1,\ 2,\ !) 3 ; the result is : db 0,\ 3 ;------------------------------------------- B -- db 0,\ (! 1,\ 2,\ !) 3 ; same result too. db 0,\ 3 in both cases (above), and in any cases, line numbers are preserved. Quote:
a) stream comment should be like "can be placed anywhere space is allowed and behave as single space (line numbers are preserved)". no, but : Can be placed anywhere (and nothing else), and behave as "nothing" ... like "ghost comment". And obviously, the line numbering is preserved in all cases. Quote:
hummm, here, i don't quite understand. like this ? Code: db 0,\ (! 1,\ 2,\ !) "666,\" ;no problem with this, compilation ok ;or this (?) : dd 0,\ (! 1,\ 2,\ !) 666,\ 667 ;compilation ok too baldr, Give me an example about what you think (about "666") thank you. PS : but why exactly "666" ? ![]() ![]() is there a hidden message in this number ? ![]() |
|||
![]() |
|
baldr
ouadji wrote: Can be placed anywhere (and nothing else), and behave as "nothing" ... like "ghost comment". As to that 666 thingy (nothing special, I just punched random key on numpad thrice ![]() Code: ; For the following to compile db 0,\ (! !) 1 ; it should be equivalent to db 0,\ \ \ 1 ; Am I right? If so, consider db 0,\ (! !) 666,\ 1 ; How it should be interpreted? |
|||
![]() |
|
ouadji
a) a/**/b,c == ab,c (ghost comment) mov/*comment*/eax,ebx == moveax,ebx mov/*comment*/ eax,ebx == mov eax,ebx b) Code: db 0,\ (! !) 1 ; it should be equivalent to db 0,\ \ \ 1 but, it's just a virtual view look below : Code: db 0,\ \ \ 1 nop <--- line n°x OR, db 0,\ ;ghost line with ghost "\" ;ghost line with ghost "\" 1 nop <------- line n°x too it's the same thing. in fact, I just explained exactly the same as you by other way. Code: db 0,\ (! !) 666,\ 1 == dw 0,\ \ 666,\ 1 ;dw or dd, not db. comment == a) ghost comment b) + if need, ghost line (ghost "\") to preserve line numbering. c) backslash effect, jumps over comment. |
|||
![]() |
|
baldr
ouadji,
Ability to splice two adjacent non-symbol sequences together still looks suspicious. How often do you need to place comment inside symbolic name/mnemonic/numeric constant? d/*efine*/b/*yte*/? ![]() I'm eager to get your next revision in my hands. ![]() |
|||
![]() |
|
ouadji
Quote:
if they are contiguous, they remain contiguous after too. But if they are not, they are not after either ! Code: abcd ab/*v*/cd == abcd ;no changes ab cd ab/*v*/ cd or ab /*v*/cd == ab cd ;no changes ;comment make no changes. Code: d/*efine*/b/*yte*/ 0 ;does compile. (== db 0) d/*efine*/b/*yte*/0 ;does NOT compile (== db0) Yes, I know ... it makes no sense to allow that. This is the result of "ghost_engine" ... too permissive. I think I'm going to prohibit this possibility. But it is easier to allow it, than to remove it. Delete this possibility, in fact, it's create a "engine exception". I'll think about it ! Quote: I'm eager to get your next revision in my hands ![]() |
|||
![]() |
|
ouadji
That said, I don't see the interest, nor the sense to remove this possibility. "We must know what we want". If we want a flexible engine which allows to place comments wherever we want ... it's clear, in this case, this will allow the engine to go too far. To avoid cases that have no meaning or usefulness, It should then analyze the meaning of the text, the semantics around the comment. This would need an artificial intelligence engine. The possibility of placing a comment in a symbolic name, obviously, makes no sense. But it's the user not to use it. Like, lea eax, [eax] .. allowed by the compiler, but it has no real meaning. Also with macro language .. there are a lot of ways to write a lot of things allowed, but that have meaningless. Dialectic and Semantic are two very different things. (sorry for English, I tried to do my best) Last edited by ouadji on 13 Mar 2010, 23:41; edited 1 time in total |
|||
![]() |
|
ouadji
Code: /*init!!;\\; db 0,\;\ ;== db 0,3 1,2,\; 3 1 passes, 2 bytes /*idle!! db 0,\;\ ;== db 0,1,2,3 1,2,\; 3 1 passes, 4 bytes just the last for fun, absolutely useless, but I find it very funny. ![]() ![]() |
|||
![]() |
|
ouadji
Code: ;Ouadji - Multiline Comments for FASM - revision 6 Last edited by ouadji on 21 Sep 2010, 20:30; edited 3 times in total |
|||
![]() |
|
revolution
What will happen here:
Code: /*init!! mov eax,ebx nop ![]() or here: Code: /*init!!mo mov eax,ebx nop ![]() |
|||
![]() |
|
ouadji
These are control words.
These words belong to a "syntax". This syntax must be respected. Being able to follow a syntax, is also the beginning of the learning of programming What will happen here ? Code: a) format MS COFFmo b) format MS c) mov eax, mo d) mov eax, |
|||
![]() |
|
revolution
So does your code detect an error or does it carry on through and make a mess of things?
|
|||
![]() |
|
ouadji
correct ! good idea for improvement, thank you. this will be done in Version 7 |
|||
![]() |
|
ouadji
revision 7 in progress in normal use, the sequence "§--§" is allowed. Here, it's only to check syntax engine. ![]() ![]() if the sequence contains special characters (CR, LF ... or other) in this case, the error message replaces these characters not viewable by question marks. Code: //init!!§ <--- CRLF --§ / * i n i t ! ! : invalid sequence : §??- ;§(CR)(LF)--§ also this, Now the syntax requires that the start sequence and the end sequence are identical, but reversed. ![]() If you have any suggestions and ideas about this, tell me. thank you. ![]() |
|||
![]() |
|
Goto page Previous 1, 2, 3, 4, 5, 6, 7, 8 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.
Website powered by rwasa.