How to resolve the algorithm Strip comments from a string step by step in the Forth programming language
How to resolve the algorithm Strip comments from a string step by step in the Forth programming language
Table of Contents
Problem Statement
The task is to remove text that follow any of a set of comment markers, (in these examples either a hash or a semicolon) from a string or input line.
Whitespace debacle: There is some confusion about whether to remove any whitespace from the input line. As of 2 September 2011, at least 8 languages (C, C++, Java, Perl, Python, Ruby, sed, UNIX Shell) were incorrect, out of 36 total languages, because they did not trim whitespace by 29 March 2011 rules. Some other languages might be incorrect for the same reason. Please discuss this issue at Talk:Strip comments from a string.
The following examples will be truncated to either "apples, pears " or "apples, pears". (This example has flipped between "apples, pears " and "apples, pears" in the past.)
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Strip comments from a string step by step in the Forth programming language
Source code in the forth programming language
\ Rosetta Code Strip Comment
: LASTCHAR ( addr len -- addr len c) 2DUP + C@ ;
: COMMENT? ( char -- ? ) S" #;" ROT SCAN NIP ; \ test char for "#;"
: -LEADING ( addr len -- addr' len') BL SKIP ; \ remove leading space characters
: -COMMENT ( addr len -- addr len') \ removes # or ; comments
1-
BEGIN
LASTCHAR COMMENT? 0=
WHILE \ while not a comment char...
1- \ reduce length by 1
REPEAT
1- ; \ remove 1 more (the comment char)
: -TRAILING ( adr len -- addr len') \ remove trailing spaces
1-
BEGIN
LASTCHAR BL =
WHILE \ while lastchar = blank
1- \ reduce length by 1
REPEAT
1+ ;
: COMMENT-STRIP ( addr len -- addr 'len) -LEADING -COMMENT -TRAILING ;
You may also check:How to resolve the algorithm Menu step by step in the AWK programming language
You may also check:How to resolve the algorithm 24 game step by step in the Applesoft BASIC programming language
You may also check:How to resolve the algorithm Determine if only one instance is running step by step in the Ring programming language
You may also check:How to resolve the algorithm Morse code step by step in the Perl programming language
You may also check:How to resolve the algorithm Priority queue step by step in the Logtalk programming language