mirror of
https://github.com/irmen/prog8.git
synced 2025-08-19 10:27:43 +00:00
added block comment /* ...... */
This commit is contained in:
@@ -20,8 +20,11 @@ Module
|
|||||||
A module file can *import* other modules, including *library modules*.
|
A module file can *import* other modules, including *library modules*.
|
||||||
|
|
||||||
Comments
|
Comments
|
||||||
Everything after a semicolon ``;`` is a comment and is ignored by the compiler. There is no block-comment.
|
Everything on the line after a semicolon ``;`` is a comment and is ignored by the compiler.
|
||||||
If the whole line is just a comment, this line will be copied into the resulting assembly source code for reference.
|
If the whole line is just a comment, this line will be copied into the resulting assembly source code for reference.
|
||||||
|
There's also a block-comment: everything surrounded with ``/*`` and ``*/`` is ignored and this can span multiple lines.
|
||||||
|
This block comment is experimental for now: it may change or even be removed again in a future compiler version.
|
||||||
|
The recommended way to comment out a bunch of lines remains to just bulk comment them individually with ``;``.
|
||||||
|
|
||||||
Directive
|
Directive
|
||||||
These are special instructions for the compiler, to change how it processes the code
|
These are special instructions for the compiler, to change how it processes the code
|
||||||
|
@@ -20,13 +20,19 @@ You can use tabs or spaces as you wish.
|
|||||||
Source code comments
|
Source code comments
|
||||||
^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
Everything after a semicolon ``;`` is a comment and is ignored. There is no block-comment so just
|
Everything on a line after a semicolon ``;`` is a comment and is ignored.
|
||||||
comment out each individual line if you want to comment out a bunch of them.
|
|
||||||
If the whole line is just a comment, it will be copied into the resulting assembly source code.
|
If the whole line is just a comment, it will be copied into the resulting assembly source code.
|
||||||
This makes it easier to understand and relate the generated code. Examples::
|
This makes it easier to understand and relate the generated code.
|
||||||
|
Everything surrounded with ``/*`` and ``*/``, this can span multiple lines, is a block-comment and is ignored.
|
||||||
|
This block comment is experimental for now: it may change or even be removed again in a future compiler version.
|
||||||
|
Examples::
|
||||||
|
|
||||||
counter = 42 ; set the initial value to 42
|
counter = 42 ; set the initial value to 42
|
||||||
; next is the code that...
|
; next is the code that...
|
||||||
|
/* this
|
||||||
|
is
|
||||||
|
all
|
||||||
|
ignored */
|
||||||
|
|
||||||
|
|
||||||
.. _directives:
|
.. _directives:
|
||||||
|
@@ -19,6 +19,7 @@ package prog8.parser;
|
|||||||
EOL : ('\r'? '\n' | '\r' | '\n')+ ;
|
EOL : ('\r'? '\n' | '\r' | '\n')+ ;
|
||||||
LINECOMMENT : EOL [ \t]* COMMENT -> channel(HIDDEN);
|
LINECOMMENT : EOL [ \t]* COMMENT -> channel(HIDDEN);
|
||||||
COMMENT : ';' ~[\r\n]* -> channel(HIDDEN) ;
|
COMMENT : ';' ~[\r\n]* -> channel(HIDDEN) ;
|
||||||
|
BLOCK_COMMENT : '/*' ( BLOCK_COMMENT | . )*? '*/' -> skip ;
|
||||||
|
|
||||||
WS : [ \t] -> skip ;
|
WS : [ \t] -> skip ;
|
||||||
// WS2 : '\\' EOL -> skip;
|
// WS2 : '\\' EOL -> skip;
|
||||||
@@ -31,11 +32,11 @@ ADDRESS_OF: '&' ;
|
|||||||
INVALID_AND_COMPOSITE: '&&' ;
|
INVALID_AND_COMPOSITE: '&&' ;
|
||||||
|
|
||||||
FLOAT_NUMBER : FNUMBER (('E'|'e') ('+' | '-')? DEC_INTEGER)? ; // sign comes later from unary expression
|
FLOAT_NUMBER : FNUMBER (('E'|'e') ('+' | '-')? DEC_INTEGER)? ; // sign comes later from unary expression
|
||||||
fragment FNUMBER : FDOTNUMBER | FNUMDOTNUMBER ;
|
FNUMBER : FDOTNUMBER | FNUMDOTNUMBER ;
|
||||||
fragment FDOTNUMBER : '.' ('0'..'9')+ ;
|
FDOTNUMBER : '.' ('0'..'9')+ ;
|
||||||
fragment FNUMDOTNUMBER : ('0'..'9')+ ('.' ('0'..'9')+ )? ;
|
FNUMDOTNUMBER : ('0'..'9')+ ('.' ('0'..'9')+ )? ;
|
||||||
|
|
||||||
fragment STRING_ESCAPE_SEQ : '\\' . | '\\x' . . | '\\u' . . . .;
|
STRING_ESCAPE_SEQ : '\\' . | '\\x' . . | '\\u' . . . .;
|
||||||
STRING :
|
STRING :
|
||||||
'"' ( STRING_ESCAPE_SEQ | ~[\\\r\n\f"] )* '"'
|
'"' ( STRING_ESCAPE_SEQ | ~[\\\r\n\f"] )* '"'
|
||||||
;
|
;
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
<highlighting>
|
<highlighting>
|
||||||
<options>
|
<options>
|
||||||
<option name="LINE_COMMENT" value=";" />
|
<option name="LINE_COMMENT" value=";" />
|
||||||
<option name="COMMENT_START" value="{{" />
|
<option name="COMMENT_START" value="/*" />
|
||||||
<option name="COMMENT_END" value="}}" />
|
<option name="COMMENT_END" value="*/" />
|
||||||
<option name="HEX_PREFIX" value="$" />
|
<option name="HEX_PREFIX" value="$" />
|
||||||
<option name="NUM_POSTFIXES" value="" />
|
<option name="NUM_POSTFIXES" value="" />
|
||||||
<option name="HAS_BRACES" value="true" />
|
<option name="HAS_BRACES" value="true" />
|
||||||
|
Reference in New Issue
Block a user