Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
|
|
@ -1,61 +1,61 @@
|
|||
StripComments:
|
||||
;prints a string but stops at the comment character
|
||||
;INPUT: D7 = comment character(s) of choice
|
||||
;prints a string but stops at the comment character
|
||||
;INPUT: D7 = comment character(s) of choice
|
||||
;A0 = source address of string
|
||||
;up to four can be used, each takes up a different 8 bits of the register
|
||||
;to omit an argument, leave its bits as zero.
|
||||
;up to four can be used, each takes up a different 8 bits of the register
|
||||
;to omit an argument, leave its bits as zero.
|
||||
.loop:
|
||||
MOVE.B (A0)+,D0
|
||||
CMP.B #0,D0 ;check for null terminator
|
||||
beq .done
|
||||
|
||||
CMP.B D7,D0 ;check the first comment char
|
||||
beq .done
|
||||
ROR.L #8,D7
|
||||
|
||||
CMP.B D7,D0 ;check the second comment char
|
||||
beq .done
|
||||
ROR.L #8,D7
|
||||
|
||||
CMP.B D7,D0 ;check the third comment char
|
||||
beq .done
|
||||
ROR.L #8,D7
|
||||
|
||||
CMP.B D7,D0 ;check the fourth comment char
|
||||
beq .done
|
||||
ROR.L #8,D7
|
||||
|
||||
CMP.B #' ',D0
|
||||
BNE dontCheckNext
|
||||
MOVE.B (A0),D1 ;look ahead one character, if that character is a comment char or null terminator, stop here
|
||||
|
||||
CMP.B #0,D1
|
||||
beq .done
|
||||
MOVE.B (A0)+,D0
|
||||
CMP.B #0,D0 ;check for null terminator
|
||||
beq .done
|
||||
|
||||
CMP.B D7,D0 ;check the first comment char
|
||||
beq .done
|
||||
ROR.L #8,D7
|
||||
|
||||
CMP.B D7,D0 ;check the second comment char
|
||||
beq .done
|
||||
ROR.L #8,D7
|
||||
|
||||
CMP.B D7,D0 ;check the third comment char
|
||||
beq .done
|
||||
ROR.L #8,D7
|
||||
|
||||
CMP.B D7,D0 ;check the fourth comment char
|
||||
beq .done
|
||||
ROR.L #8,D7
|
||||
|
||||
CMP.B #' ',D0
|
||||
BNE dontCheckNext
|
||||
MOVE.B (A0),D1 ;look ahead one character, if that character is a comment char or null terminator, stop here
|
||||
|
||||
CMP.B #0,D1
|
||||
beq .done
|
||||
|
||||
CMP.B D7,D1
|
||||
beq .done
|
||||
ROR.L #8,D7
|
||||
|
||||
CMP.B D7,D1
|
||||
beq .done
|
||||
ROR.L #8,D7
|
||||
|
||||
CMP.B D7,D1
|
||||
beq .done
|
||||
ROR.L #8,D7
|
||||
|
||||
CMP.B D7,D1
|
||||
beq .done
|
||||
ROR.L #8,D7
|
||||
|
||||
CMP.B D7,D1
|
||||
beq .done
|
||||
ROR.L #8,D7
|
||||
|
||||
CMP.B D7,D1
|
||||
beq .done
|
||||
ROR.L #8,D7
|
||||
|
||||
CMP.B D7,D1
|
||||
beq .done
|
||||
ROR.L #8,D7
|
||||
|
||||
CMP.B D7,D1
|
||||
beq .done
|
||||
ROR.L #8,D7
|
||||
|
||||
dontCheckNext:
|
||||
jsr PrintChar
|
||||
bra .loop
|
||||
|
||||
.done:
|
||||
rts
|
||||
jsr PrintChar
|
||||
bra .loop
|
||||
|
||||
.done:
|
||||
rts
|
||||
|
||||
|
||||
|
||||
|
||||
TestString:
|
||||
dc.b "apples ; pears # and bananas",0
|
||||
dc.b "apples ; pears # and bananas",0
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
with Ada.Text_IO;
|
||||
procedure Program is
|
||||
Comment_Characters : String := "#;";
|
||||
begin
|
||||
loop
|
||||
declare
|
||||
Line : String := Ada.Text_IO.Get_Line;
|
||||
begin
|
||||
exit when Line'Length = 0;
|
||||
Outer_Loop : for I in Line'Range loop
|
||||
for J in Comment_Characters'Range loop
|
||||
if Comment_Characters(J) = Line(I) then
|
||||
Ada.Text_IO.Put_Line(Line(Line'First .. I - 1));
|
||||
exit Outer_Loop;
|
||||
end if;
|
||||
end loop;
|
||||
end loop Outer_Loop;
|
||||
end;
|
||||
end loop;
|
||||
end Program;
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
Dim $Line1 = "apples, pears # and bananas"
|
||||
Dim $Line2 = "apples, pears ; and bananas"
|
||||
|
||||
_StripAtMarker($Line1)
|
||||
_StripAtMarker($Line2)
|
||||
|
||||
Func _StripAtMarker($_Line, $sMarker='# ;')
|
||||
Local $aMarker = StringSplit($sMarker, ' ')
|
||||
Local $iPos
|
||||
For $i = 1 To $aMarker[0]
|
||||
$iPos = StringInStr($_Line, $aMarker[$i])
|
||||
If $iPos Then
|
||||
ConsoleWrite($_Line & @CRLF)
|
||||
ConsoleWrite( StringStripWS( StringLeft($_Line, $iPos -1), 2) & @CRLF)
|
||||
EndIf
|
||||
Next
|
||||
EndFunc ;==>_StripAtMarker
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
Dim $aLines[4] = _
|
||||
[ _
|
||||
"$a = $b + $c ; Comment line 1", _
|
||||
"Dim $s1 = 'some text; tiled with semicolon', $s2 = 'another text; also tiled with semicolon' ; Comment line 2 - semicolon as part of assignment", _
|
||||
"_SomeFunctionCall('string parameter with ;', $anotherParam) ; Comment line 3 - semicolon as part parameter in an function call", _
|
||||
"Func _AnotherFunction($param1=';', $param2=';', $param3=';') ; Comment line 4 - semicolon as default value in parameter of a function headline" _
|
||||
]
|
||||
|
||||
For $i = 0 To 3
|
||||
ConsoleWrite('+> Line ' & $i+1 & ' full:' & @CRLF & '+>' & $aLines[$i] & @CRLF)
|
||||
ConsoleWrite('!> without comment:' & @CRLF & '!>' & _LineStripComment($aLines[$i]) & @CRLF & @CRLF)
|
||||
Next
|
||||
|
||||
|
||||
Func _LineStripComment($_Line)
|
||||
; == tile line by all included comment marker
|
||||
Local $aPartsWithMarker = StringSplit($_Line, ';')
|
||||
Local $sNoComment
|
||||
|
||||
; == if no comment marker: return full line
|
||||
If $aPartsWithMarker[0] = 0 Then Return $_Line
|
||||
|
||||
; == check if string in part, if is'nt: following part(s) are comment
|
||||
For $i = 1 To $aPartsWithMarker[0]
|
||||
If Not StringRegExp($aPartsWithMarker[$i], "('|\x22)") Then
|
||||
If $i = 1 Then
|
||||
Return StringStripWS($aPartsWithMarker[$i], 2)
|
||||
Else
|
||||
Return StringStripWS($sNoComment & $aPartsWithMarker[$i], 2)
|
||||
EndIf
|
||||
Else
|
||||
; == check if next leftside string delimiter has uneven count
|
||||
Local $iLen = StringLen($aPartsWithMarker[$i])
|
||||
Local $fDetectDelim = False, $sStringDelim, $iDelimCount, $sCurr
|
||||
For $j = $iLen To 1 Step -1
|
||||
$sCurr = StringMid($aPartsWithMarker[$i], $j, 1)
|
||||
If Not $fDetectDelim Then
|
||||
If $sCurr = "'" Or $sCurr = '"' Then
|
||||
$sStringDelim = $sCurr
|
||||
$iDelimCount += 1
|
||||
$fDetectDelim = True
|
||||
EndIf
|
||||
Else
|
||||
If $sCurr = $sStringDelim Then $iDelimCount += 1
|
||||
EndIf
|
||||
Next
|
||||
If Mod($iDelimCount, 2) Then
|
||||
; == uneven count: so it masks the comment marker
|
||||
$sNoComment &= $aPartsWithMarker[$i] & ';'
|
||||
Else
|
||||
; == even count: all following is comment
|
||||
Return StringStripWS($sNoComment & $aPartsWithMarker[$i], 2)
|
||||
EndIf
|
||||
EndIf
|
||||
Next
|
||||
EndFunc ;==>_LineStripComment
|
||||
|
|
@ -6,16 +6,16 @@ s$[3] = "# this is a comment"
|
|||
s$[4] = " # this is a comment with leading whitespace"
|
||||
|
||||
for i = 1 to 4
|
||||
call stripComment(s$[i], "#;")
|
||||
print s$[i], " => Length = "; length(s$[i])
|
||||
call stripComment(s$[i], "#;")
|
||||
print s$[i], " => Length = "; length(s$[i])
|
||||
next i
|
||||
end
|
||||
|
||||
subroutine stripComment(s$, commentMarkers$)
|
||||
if s$ = "" then return
|
||||
i = instr(s$, commentMarkers$)
|
||||
if i > 0 then
|
||||
s$ = left$(s$, i - 1)
|
||||
s$ = trim(s$) # removes both leading and trailing whitespace
|
||||
end if
|
||||
if s$ = "" then return
|
||||
i = instr(s$, commentMarkers$)
|
||||
if i > 0 then
|
||||
s$ = left$(s$, i - 1)
|
||||
s$ = trim(s$) # removes both leading and trailing whitespace
|
||||
end if
|
||||
end subroutine
|
||||
|
|
|
|||
|
|
@ -2,25 +2,25 @@
|
|||
|
||||
int main()
|
||||
{
|
||||
char ch, str[100];
|
||||
int i;
|
||||
|
||||
do{
|
||||
printf("\nEnter the string :");
|
||||
fgets(str,100,stdin);
|
||||
for(i=0;str[i]!=00;i++)
|
||||
{
|
||||
if(str[i]=='#'||str[i]==';')
|
||||
{
|
||||
str[i]=00;
|
||||
break;
|
||||
}
|
||||
}
|
||||
printf("\nThe modified string is : %s",str);
|
||||
printf("\nDo you want to repeat (y/n): ");
|
||||
scanf("%c",&ch);
|
||||
fflush(stdin);
|
||||
}while(ch=='y'||ch=='Y');
|
||||
|
||||
return 0;
|
||||
char ch, str[100];
|
||||
int i;
|
||||
|
||||
do{
|
||||
printf("\nEnter the string :");
|
||||
fgets(str,100,stdin);
|
||||
for(i=0;str[i]!=00;i++)
|
||||
{
|
||||
if(str[i]=='#'||str[i]==';')
|
||||
{
|
||||
str[i]=00;
|
||||
break;
|
||||
}
|
||||
}
|
||||
printf("\nThe modified string is : %s",str);
|
||||
printf("\nDo you want to repeat (y/n): ");
|
||||
scanf("%c",&ch);
|
||||
fflush(stdin);
|
||||
}while(ch=='y'||ch=='Y');
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
identification division.
|
||||
program-id. StripComments.
|
||||
|
||||
data division.
|
||||
working-storage section.
|
||||
01 line-text pic x(64).
|
||||
|
||||
procedure division.
|
||||
main.
|
||||
move "apples, pears # and bananas" to line-text
|
||||
perform show-striped-text
|
||||
|
||||
move "apples, pears ; and bananas" to line-text
|
||||
perform show-striped-text
|
||||
|
||||
stop run
|
||||
.
|
||||
show-striped-text.
|
||||
unstring line-text delimited by "#" or ";" into line-text
|
||||
display quote, function trim(line-text), quote
|
||||
.
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
def strip_comments (s)
|
||||
s.sub(/[#;].*$/, "").strip
|
||||
end
|
||||
|
||||
"apples, pears # and bananas
|
||||
apples, pears ; and bananas
|
||||
apples, pears # xxx
|
||||
apples, pears ".each_line do |line|
|
||||
puts strip_comments(line).inspect
|
||||
end
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
(string-trim (string-trim-right " apples, pears # and bananas" "[#;].+"))
|
||||
|
||||
(string-trim (string-trim-right " apples, pears ; and bananas" "[#;].+"))
|
||||
|
||||
(string-trim (string-trim-right " apples, pears and bananas " "[#;].+"))
|
||||
|
|
@ -9,7 +9,7 @@ task() ->
|
|||
|
||||
|
||||
|
||||
keep_until_comment( String ) -> lists:takewhile( fun not_comment/1, String ).
|
||||
keep_until_comment( String ) -> lists:takewhile( fun not_comment/1, String ).
|
||||
|
||||
not_comment( $# ) -> false;
|
||||
not_comment( $; ) -> false;
|
||||
|
|
|
|||
|
|
@ -7,22 +7,22 @@
|
|||
contains
|
||||
!****************************************************
|
||||
|
||||
function strip_comments(str,c) result(str2)
|
||||
implicit none
|
||||
character(len=*),intent(in) :: str
|
||||
character(len=1),intent(in) :: c !comment character
|
||||
character(len=len(str)) :: str2
|
||||
|
||||
integer :: i
|
||||
|
||||
i = index(str,c)
|
||||
if (i>0) then
|
||||
str2 = str(1:i-1)
|
||||
else
|
||||
str2 = str
|
||||
end if
|
||||
|
||||
end function strip_comments
|
||||
function strip_comments(str,c) result(str2)
|
||||
implicit none
|
||||
character(len=*),intent(in) :: str
|
||||
character(len=1),intent(in) :: c !comment character
|
||||
character(len=len(str)) :: str2
|
||||
|
||||
integer :: i
|
||||
|
||||
i = index(str,c)
|
||||
if (i>0) then
|
||||
str2 = str(1:i-1)
|
||||
else
|
||||
str2 = str
|
||||
end if
|
||||
|
||||
end function strip_comments
|
||||
|
||||
!****************************************************
|
||||
end module string_routines
|
||||
|
|
|
|||
|
|
@ -1,27 +1,27 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"unicode"
|
||||
"fmt"
|
||||
"strings"
|
||||
"unicode"
|
||||
)
|
||||
|
||||
const commentChars = "#;"
|
||||
|
||||
func stripComment(source string) string {
|
||||
if cut := strings.IndexAny(source, commentChars); cut >= 0 {
|
||||
return strings.TrimRightFunc(source[:cut], unicode.IsSpace)
|
||||
}
|
||||
return source
|
||||
if cut := strings.IndexAny(source, commentChars); cut >= 0 {
|
||||
return strings.TrimRightFunc(source[:cut], unicode.IsSpace)
|
||||
}
|
||||
return source
|
||||
}
|
||||
|
||||
func main() {
|
||||
for _, s := range []string{
|
||||
"apples, pears # and bananas",
|
||||
"apples, pears ; and bananas",
|
||||
"no bananas",
|
||||
} {
|
||||
fmt.Printf("source: %q\n", s)
|
||||
fmt.Printf("stripped: %q\n", stripComment(s))
|
||||
}
|
||||
for _, s := range []string{
|
||||
"apples, pears # and bananas",
|
||||
"apples, pears ; and bananas",
|
||||
"no bananas",
|
||||
} {
|
||||
fmt.Printf("source: %q\n", s)
|
||||
fmt.Printf("stripped: %q\n", stripComment(s))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
Home is a room.
|
||||
|
||||
When play begins:
|
||||
strip comments from "apples, pears # and bananas";
|
||||
strip comments from "apples, pears ; and bananas";
|
||||
end the story.
|
||||
strip comments from "apples, pears # and bananas";
|
||||
strip comments from "apples, pears ; and bananas";
|
||||
end the story.
|
||||
|
||||
To strip comments from (T - indexed text):
|
||||
say "[T] -> ";
|
||||
replace the regular expression "<#;>.*$" in T with "";
|
||||
say "[T][line break]".
|
||||
say "[T] -> ";
|
||||
replace the regular expression "<#;>.*$" in T with "";
|
||||
say "[T][line break]".
|
||||
|
|
|
|||
|
|
@ -2,22 +2,22 @@ import java.io.*;
|
|||
|
||||
public class StripLineComments{
|
||||
public static void main( String[] args ){
|
||||
if( args.length < 1 ){
|
||||
System.out.println("Usage: java StripLineComments StringToProcess");
|
||||
}
|
||||
else{
|
||||
String inputFile = args[0];
|
||||
String input = "";
|
||||
try{
|
||||
BufferedReader reader = new BufferedReader( new FileReader( inputFile ) );
|
||||
String line = "";
|
||||
while((line = reader.readLine()) != null){
|
||||
System.out.println( line.split("[#;]")[0] );
|
||||
}
|
||||
}
|
||||
catch( Exception e ){
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if( args.length < 1 ){
|
||||
System.out.println("Usage: java StripLineComments StringToProcess");
|
||||
}
|
||||
else{
|
||||
String inputFile = args[0];
|
||||
String input = "";
|
||||
try{
|
||||
BufferedReader reader = new BufferedReader( new FileReader( inputFile ) );
|
||||
String line = "";
|
||||
while((line = reader.readLine()) != null){
|
||||
System.out.println( line.split("[#;]")[0] );
|
||||
}
|
||||
}
|
||||
catch( Exception e ){
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ function line = stripcomment(line)
|
|||
e = min([find(line=='#',1),find(line==';',1)]);
|
||||
if ~isempty(e)
|
||||
e = e-1;
|
||||
while isspace(line(e)) e = e - 1; end;
|
||||
while isspace(line(e)) e = e - 1; end;
|
||||
line = line(1:e);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
remove-comments: func[line sep][
|
||||
parse line [to sep remove to end]
|
||||
trim/tail line
|
||||
]
|
||||
|
||||
probe remove-comments "apples ; pears # and bananas" charset ";#"
|
||||
probe remove-comments "apples ; pears # and bananas" #";"
|
||||
probe remove-comments "apples ; pears # and bananas" #"#"
|
||||
probe remove-comments "apples ; pears # and bananas" #"!"
|
||||
|
|
@ -4,7 +4,7 @@ fn main() {
|
|||
s := [
|
||||
"apples, pears # and bananas",
|
||||
"apples, pears ; and bananas",
|
||||
"no bananas"
|
||||
"no bananas"
|
||||
]
|
||||
for element in s {
|
||||
println('source: $element')
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
Function strip_comments(s,char)
|
||||
If InStr(1,s,char) > 0 Then
|
||||
arr = Split(s,char)
|
||||
strip_comments = RTrim(arr(0))
|
||||
Else
|
||||
strip_comments = s
|
||||
End If
|
||||
End Function
|
||||
|
||||
WScript.StdOut.WriteLine strip_comments("apples, pears # and bananas","#")
|
||||
WScript.StdOut.WriteLine strip_comments("apples, pears ; and bananas",";")
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
fcn strip(text,c){ // if c in text, remove it and following text
|
||||
if (Void!=(n:=text.find(c))) text=text[0,n];
|
||||
text.strip() // remove leading and trailing white space
|
||||
text.strip() // remove leading and trailing white space
|
||||
}
|
||||
fcn stripper(text,a,b,c,etc){ // strip a,b,c,etc from text
|
||||
foreach c in (vm.arglist[1,*]){ text=strip(text,c) }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue