-
-
Notifications
You must be signed in to change notification settings - Fork 406
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b964bce
commit d122d30
Showing
4 changed files
with
327 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
package a | ||
|
||
import ( | ||
. "github.com/alecthomas/chroma" // nolint | ||
"github.com/alecthomas/chroma/lexers/internal" | ||
) | ||
|
||
// ABAP lexer. | ||
var Abap = internal.Register(MustNewLexer( | ||
&Config{ | ||
Name: "ABAP", | ||
Aliases: []string{"abap"}, | ||
Filenames: []string{"*.abap", "*.ABAP"}, | ||
MimeTypes: []string{"text/x-abap"}, | ||
CaseInsensitive: true, | ||
}, | ||
Rules{ | ||
"common": { | ||
{`\s+`, Text, nil}, | ||
{`^\*.*$`, CommentSingle, nil}, | ||
{`\".*?\n`, CommentSingle, nil}, | ||
{`##\w+`, CommentSpecial, nil}, | ||
}, | ||
"variable-names": { | ||
{`<\S+>`, NameVariable, nil}, | ||
{`\w[\w~]*(?:(\[\])|->\*)?`, NameVariable, nil}, | ||
}, | ||
"root": { | ||
Include("common"), | ||
{`CALL\s+(?:BADI|CUSTOMER-FUNCTION|FUNCTION)`, Keyword, nil}, | ||
{`(CALL\s+(?:DIALOG|SCREEN|SUBSCREEN|SELECTION-SCREEN|TRANSACTION|TRANSFORMATION))\b`, Keyword, nil}, | ||
{`(FORM|PERFORM)(\s+)(\w+)`, ByGroups(Keyword, Text, NameFunction), nil}, | ||
{`(PERFORM)(\s+)(\()(\w+)(\))`, ByGroups(Keyword, Text, Punctuation, NameVariable, Punctuation), nil}, | ||
{`(MODULE)(\s+)(\S+)(\s+)(INPUT|OUTPUT)`, ByGroups(Keyword, Text, NameFunction, Text, Keyword), nil}, | ||
{`(METHOD)(\s+)([\w~]+)`, ByGroups(Keyword, Text, NameFunction), nil}, | ||
{`(\s+)([\w\-]+)([=\-]>)([\w\-~]+)`, ByGroups(Text, NameVariable, Operator, NameFunction), nil}, | ||
{`(?<=(=|-)>)([\w\-~]+)(?=\()`, NameFunction, nil}, | ||
{`(TEXT)(-)(\d{3})`, ByGroups(Keyword, Punctuation, LiteralNumberInteger), nil}, | ||
{`(TEXT)(-)(\w{3})`, ByGroups(Keyword, Punctuation, NameVariable), nil}, | ||
{`(ADD-CORRESPONDING|AUTHORITY-CHECK|CLASS-DATA|CLASS-EVENTS|CLASS-METHODS|CLASS-POOL|DELETE-ADJACENT|DIVIDE-CORRESPONDING|EDITOR-CALL|ENHANCEMENT-POINT|ENHANCEMENT-SECTION|EXIT-COMMAND|FIELD-GROUPS|FIELD-SYMBOLS|FUNCTION-POOL|INTERFACE-POOL|INVERTED-DATE|LOAD-OF-PROGRAM|LOG-POINT|MESSAGE-ID|MOVE-CORRESPONDING|MULTIPLY-CORRESPONDING|NEW-LINE|NEW-PAGE|NEW-SECTION|NO-EXTENSION|OUTPUT-LENGTH|PRINT-CONTROL|SELECT-OPTIONS|START-OF-SELECTION|SUBTRACT-CORRESPONDING|SYNTAX-CHECK|SYSTEM-EXCEPTIONS|TYPE-POOL|TYPE-POOLS|NO-DISPLAY)\b`, Keyword, nil}, | ||
{`(?<![-\>])(CREATE\s+(PUBLIC|PRIVATE|DATA|OBJECT)|(PUBLIC|PRIVATE|PROTECTED)\s+SECTION|(TYPE|LIKE)\s+((LINE\s+OF|REF\s+TO|(SORTED|STANDARD|HASHED)\s+TABLE\s+OF))?|FROM\s+(DATABASE|MEMORY)|CALL\s+METHOD|(GROUP|ORDER) BY|HAVING|SEPARATED BY|GET\s+(BADI|BIT|CURSOR|DATASET|LOCALE|PARAMETER|PF-STATUS|(PROPERTY|REFERENCE)\s+OF|RUN\s+TIME|TIME\s+(STAMP)?)?|SET\s+(BIT|BLANK\s+LINES|COUNTRY|CURSOR|DATASET|EXTENDED\s+CHECK|HANDLER|HOLD\s+DATA|LANGUAGE|LEFT\s+SCROLL-BOUNDARY|LOCALE|MARGIN|PARAMETER|PF-STATUS|PROPERTY\s+OF|RUN\s+TIME\s+(ANALYZER|CLOCK\s+RESOLUTION)|SCREEN|TITLEBAR|UPADTE\s+TASK\s+LOCAL|USER-COMMAND)|CONVERT\s+((INVERTED-)?DATE|TIME|TIME\s+STAMP|TEXT)|(CLOSE|OPEN)\s+(DATASET|CURSOR)|(TO|FROM)\s+(DATA BUFFER|INTERNAL TABLE|MEMORY ID|DATABASE|SHARED\s+(MEMORY|BUFFER))|DESCRIBE\s+(DISTANCE\s+BETWEEN|FIELD|LIST|TABLE)|FREE\s(MEMORY|OBJECT)?|PROCESS\s+(BEFORE\s+OUTPUT|AFTER\s+INPUT|ON\s+(VALUE-REQUEST|HELP-REQUEST))|AT\s+(LINE-SELECTION|USER-COMMAND|END\s+OF|NEW)|AT\s+SELECTION-SCREEN(\s+(ON(\s+(BLOCK|(HELP|VALUE)-REQUEST\s+FOR|END\s+OF|RADIOBUTTON\s+GROUP))?|OUTPUT))?|SELECTION-SCREEN:?\s+((BEGIN|END)\s+OF\s+((TABBED\s+)?BLOCK|LINE|SCREEN)|COMMENT|FUNCTION\s+KEY|INCLUDE\s+BLOCKS|POSITION|PUSHBUTTON|SKIP|ULINE)|LEAVE\s+(LIST-PROCESSING|PROGRAM|SCREEN|TO LIST-PROCESSING|TO TRANSACTION)(ENDING|STARTING)\s+AT|FORMAT\s+(COLOR|INTENSIFIED|INVERSE|HOTSPOT|INPUT|FRAMES|RESET)|AS\s+(CHECKBOX|SUBSCREEN|WINDOW)|WITH\s+(((NON-)?UNIQUE)?\s+KEY|FRAME)|(BEGIN|END)\s+OF|DELETE(\s+ADJACENT\s+DUPLICATES\sFROM)?|COMPARING(\s+ALL\s+FIELDS)?|(INSERT|APPEND)(\s+INITIAL\s+LINE\s+(IN)?TO|\s+LINES\s+OF)?|IN\s+((BYTE|CHARACTER)\s+MODE|PROGRAM)|END-OF-(DEFINITION|PAGE|SELECTION)|WITH\s+FRAME(\s+TITLE)|(REPLACE|FIND)\s+((FIRST|ALL)\s+OCCURRENCES?\s+OF\s+)?(SUBSTRING|REGEX)?|MATCH\s+(LENGTH|COUNT|LINE|OFFSET)|(RESPECTING|IGNORING)\s+CASE|IN\s+UPDATE\s+TASK|(SOURCE|RESULT)\s+(XML)?|REFERENCE\s+INTO|AND\s+(MARK|RETURN)|CLIENT\s+SPECIFIED|CORRESPONDING\s+FIELDS\s+OF|IF\s+FOUND|FOR\s+EVENT|INHERITING\s+FROM|LEAVE\s+TO\s+SCREEN|LOOP\s+AT\s+(SCREEN)?|LOWER\s+CASE|MATCHCODE\s+OBJECT|MODIF\s+ID|MODIFY\s+SCREEN|NESTING\s+LEVEL|NO\s+INTERVALS|OF\s+STRUCTURE|RADIOBUTTON\s+GROUP|RANGE\s+OF|REF\s+TO|SUPPRESS DIALOG|TABLE\s+OF|UPPER\s+CASE|TRANSPORTING\s+NO\s+FIELDS|VALUE\s+CHECK|VISIBLE\s+LENGTH|HEADER\s+LINE|COMMON\s+PART)\b`, Keyword, nil}, | ||
{`(^|(?<=(\s|\.)))(ABBREVIATED|ABSTRACT|ADD|ALIASES|ALIGN|ALPHA|ASSERT|AS|ASSIGN(ING)?|AT(\s+FIRST)?|BACK|BLOCK|BREAK-POINT|CASE|CATCH|CHANGING|CHECK|CLASS|CLEAR|COLLECT|COLOR|COMMIT|CREATE|COMMUNICATION|COMPONENTS?|COMPUTE|CONCATENATE|CONDENSE|CONSTANTS|CONTEXTS|CONTINUE|CONTROLS|COUNTRY|CURRENCY|DATA|DATE|DECIMALS|DEFAULT|DEFINE|DEFINITION|DEFERRED|DEMAND|DETAIL|DIRECTORY|DIVIDE|DO|DUMMY|ELSE(IF)?|ENDAT|ENDCASE|ENDCATCH|ENDCLASS|ENDDO|ENDFORM|ENDFUNCTION|ENDIF|ENDINTERFACE|ENDLOOP|ENDMETHOD|ENDMODULE|ENDSELECT|ENDTRY|ENDWHILE|ENHANCEMENT|EVENTS|EXACT|EXCEPTIONS?|EXIT|EXPONENT|EXPORT|EXPORTING|EXTRACT|FETCH|FIELDS?|FOR|FORM|FORMAT|FREE|FROM|FUNCTION|HIDE|ID|IF|IMPORT|IMPLEMENTATION|IMPORTING|IN|INCLUDE|INCLUDING|INDEX|INFOTYPES|INITIALIZATION|INTERFACE|INTERFACES|INTO|LANGUAGE|LEAVE|LENGTH|LINES|LOAD|LOCAL|JOIN|KEY|NEXT|MAXIMUM|MESSAGE|METHOD[S]?|MINIMUM|MODULE|MODIFIER|MODIFY|MOVE|MULTIPLY|NODES|NUMBER|OBLIGATORY|OBJECT|OF|OFF|ON|OTHERS|OVERLAY|PACK|PAD|PARAMETERS|PERCENTAGE|POSITION|PROGRAM|PROVIDE|PUBLIC|PUT|PF\d\d|RAISE|RAISING|RANGES?|READ|RECEIVE|REDEFINITION|REFRESH|REJECT|REPORT|RESERVE|RESUME|RETRY|RETURN|RETURNING|RIGHT|ROLLBACK|REPLACE|SCROLL|SEARCH|SELECT|SHIFT|SIGN|SINGLE|SIZE|SKIP|SORT|SPLIT|STATICS|STOP|STYLE|SUBMATCHES|SUBMIT|SUBTRACT|SUM(?!\()|SUMMARY|SUMMING|SUPPLY|TABLE|TABLES|TIMESTAMP|TIMES?|TIMEZONE|TITLE|\??TO|TOP-OF-PAGE|TRANSFER|TRANSLATE|TRY|TYPES|ULINE|UNDER|UNPACK|UPDATE|USING|VALUE|VALUES|VIA|VARYING|VARY|WAIT|WHEN|WHERE|WIDTH|WHILE|WITH|WINDOW|WRITE|XSD|ZERO)\b`, Keyword, nil}, | ||
{`(abs|acos|asin|atan|boolc|boolx|bit_set|char_off|charlen|ceil|cmax|cmin|condense|contains|contains_any_of|contains_any_not_of|concat_lines_of|cos|cosh|count|count_any_of|count_any_not_of|dbmaxlen|distance|escape|exp|find|find_end|find_any_of|find_any_not_of|floor|frac|from_mixed|insert|lines|log|log10|match|matches|nmax|nmin|numofchar|repeat|replace|rescale|reverse|round|segment|shift_left|shift_right|sign|sin|sinh|sqrt|strlen|substring|substring_after|substring_from|substring_before|substring_to|tan|tanh|to_upper|to_lower|to_mixed|translate|trunc|xstrlen)(\()\b`, ByGroups(NameBuiltin, Punctuation), nil}, | ||
{`&[0-9]`, Name, nil}, | ||
{`[0-9]+`, LiteralNumberInteger, nil}, | ||
{`(?<=(\s|.))(AND|OR|EQ|NE|GT|LT|GE|LE|CO|CN|CA|NA|CS|NOT|NS|CP|NP|BYTE-CO|BYTE-CN|BYTE-CA|BYTE-NA|BYTE-CS|BYTE-NS|IS\s+(NOT\s+)?(INITIAL|ASSIGNED|REQUESTED|BOUND))\b`, OperatorWord, nil}, | ||
Include("variable-names"), | ||
{`[?*<>=\-+&]`, Operator, nil}, | ||
{`'(''|[^'])*'`, LiteralStringSingle, nil}, | ||
{"`([^`])*`", LiteralStringSingle, nil}, | ||
{`([|}])([^{}|]*?)([|{])`, ByGroups(Punctuation, LiteralStringSingle, Punctuation), nil}, | ||
{`[/;:()\[\],.]`, Punctuation, nil}, | ||
{`(!)(\w+)`, ByGroups(Operator, Name), nil}, | ||
}, | ||
}, | ||
)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
*&---------------------------------------------------------------------* | ||
*& Report /WUE/AUFGABE_PRIMZAHL | ||
*& | ||
*&---------------------------------------------------------------------* | ||
*& Anmerkung: um bei einer Zahl entscheiden zu können, ob diese eine Primzahl ist, | ||
*& genügt es die Primzahlen zu prüfen die kleiner gleich der Würzel der Zahl sind | ||
*& | ||
*&---------------------------------------------------------------------* | ||
REPORT /wue/aufgabe_primzahl. | ||
|
||
|
||
PARAMETERS p_range TYPE i. | ||
|
||
"Tabelle in der alle gefundenen Primzahlen gespeichert werden, die kleiner gleich | ||
"der Würzel der eingegebenen Zahl sind | ||
DATA gt_prim_num TYPE TABLE OF i. | ||
|
||
"Diese Variable dient dazu, alle Zahlen <= der eingegebenen Zahl und >= 2 aufzustellen | ||
DATA g_number TYPE i VALUE 1. | ||
|
||
"Diese Variable dient dazu, zu sagen, ob die aktuelle g_number eine Primzahl ist oder nicht | ||
DATA g_is_prime TYPE abap_bool. | ||
|
||
"mit sqrt( zahl1 ) kann die Quadratwurzel der Zahl1 berechnet werden | ||
DATA(g_sqrt_range) = sqrt( p_range ). | ||
|
||
|
||
|
||
"da die zu prüfenden Zahlen bei der 2 beginnend durch Addition von 1 aufgestellt werden | ||
"muss die Schleife lediglich p_range - 1 male durchlaufen werden | ||
DO p_range - 1 TIMES. | ||
|
||
"zählt die zu prüfende Zahlen hoch | ||
ADD 1 TO g_number. | ||
|
||
"grundsätzlich wird solange, bis es nicht widerlegt ist angenommen, dass g_number eine Primzahl ist | ||
g_is_prime = abap_true. | ||
|
||
"Jede Zahl die in der Tabelle gt_prim_num enthalten ist wird geprüft, ob g_number durch diese ohne Rest teilbar ist | ||
LOOP AT gt_prim_num ASSIGNING FIELD-SYMBOL(<g_prim>). | ||
|
||
"Durch Zahl1 MOD Zahl2 kann der Rest, der bei Zahl1 / Zahl2 herauskommt ermittelt werden | ||
"Sobald dieser bei g_number / <g_prim> 0 ist, handelt es sich bei g_number um keine Primzahl und somit muss diese nicht | ||
"weiter überprüft werden, folglich kann die Loop-Schleife mit EXIT verlassen werden | ||
IF g_number MOD <g_prim> = 0. | ||
g_is_prime = abap_false. | ||
EXIT. | ||
ENDIF. | ||
|
||
ENDLOOP. | ||
|
||
"Wenn nicht widerlegt werden konnte, dass g_number eine Primzahl ist, wird diese ausgegeben | ||
IF g_is_prime = abap_true. | ||
|
||
"Wenn die neu gefundene Primzahl <= g_sqrt_range, wird diese in die Tabelle gt_prim_num eingefügt (Erklärung siehe Anmerkung) | ||
IF g_number <= g_sqrt_range. | ||
INSERT g_number INTO TABLE gt_prim_num. | ||
ENDIF. | ||
WRITE g_number. | ||
ENDIF. | ||
|
||
ENDDO. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,208 @@ | ||
[ | ||
{"type":"CommentSingle","value":"*\u0026---------------------------------------------------------------------*"}, | ||
{"type":"Text","value":"\n"}, | ||
{"type":"CommentSingle","value":"*\u0026 Report /WUE/AUFGABE_PRIMZAHL"}, | ||
{"type":"Text","value":"\n"}, | ||
{"type":"CommentSingle","value":"*\u0026"}, | ||
{"type":"Text","value":"\n"}, | ||
{"type":"CommentSingle","value":"*\u0026---------------------------------------------------------------------*"}, | ||
{"type":"Text","value":"\n"}, | ||
{"type":"CommentSingle","value":"*\u0026 Anmerkung: um bei einer Zahl entscheiden zu können, ob diese eine Primzahl ist,"}, | ||
{"type":"Text","value":"\n"}, | ||
{"type":"CommentSingle","value":"*\u0026 genügt es die Primzahlen zu prüfen die kleiner gleich der Würzel der Zahl sind"}, | ||
{"type":"Text","value":"\n"}, | ||
{"type":"CommentSingle","value":"*\u0026"}, | ||
{"type":"Text","value":"\n"}, | ||
{"type":"CommentSingle","value":"*\u0026---------------------------------------------------------------------*"}, | ||
{"type":"Text","value":"\n"}, | ||
{"type":"Keyword","value":"REPORT"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Punctuation","value":"/"}, | ||
{"type":"NameVariable","value":"wue"}, | ||
{"type":"Punctuation","value":"/"}, | ||
{"type":"NameVariable","value":"aufgabe_primzahl"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n\n\n"}, | ||
{"type":"Keyword","value":"PARAMETERS"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"p_range"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Keyword","value":"TYPE "}, | ||
{"type":"NameVariable","value":"i"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n\n"}, | ||
{"type":"CommentSingle","value":"\"Tabelle in der alle gefundenen Primzahlen gespeichert werden, die kleiner gleich\n\"der Würzel der eingegebenen Zahl sind\n"}, | ||
{"type":"Keyword","value":"DATA"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"gt_prim_num"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Keyword","value":"TYPE TABLE OF"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"i"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n\n"}, | ||
{"type":"CommentSingle","value":"\"Diese Variable dient dazu, alle Zahlen \u003c= der eingegebenen Zahl und \u003e= 2 aufzustellen\n"}, | ||
{"type":"Keyword","value":"DATA"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"g_number"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Keyword","value":"TYPE "}, | ||
{"type":"NameVariable","value":"i"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Keyword","value":"VALUE"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"LiteralNumberInteger","value":"1"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n\n"}, | ||
{"type":"CommentSingle","value":"\"Diese Variable dient dazu, zu sagen, ob die aktuelle g_number eine Primzahl ist oder nicht\n"}, | ||
{"type":"Keyword","value":"DATA"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"g_is_prime"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Keyword","value":"TYPE "}, | ||
{"type":"NameVariable","value":"abap_bool"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n\n"}, | ||
{"type":"CommentSingle","value":"\"mit sqrt( zahl1 ) kann die Quadratwurzel der Zahl1 berechnet werden\n"}, | ||
{"type":"Keyword","value":"DATA"}, | ||
{"type":"Punctuation","value":"("}, | ||
{"type":"NameVariable","value":"g_sqrt_range"}, | ||
{"type":"Punctuation","value":")"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Operator","value":"="}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"sqrt"}, | ||
{"type":"Punctuation","value":"("}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"p_range"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Punctuation","value":")."}, | ||
{"type":"Text","value":"\n\n\n\n"}, | ||
{"type":"CommentSingle","value":"\"da die zu prüfenden Zahlen bei der 2 beginnend durch Addition von 1 aufgestellt werden\n\"muss die Schleife lediglich p_range - 1 male durchlaufen werden\n"}, | ||
{"type":"Keyword","value":"DO"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"p_range"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Operator","value":"-"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"LiteralNumberInteger","value":"1"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Keyword","value":"TIMES"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n\n "}, | ||
{"type":"CommentSingle","value":"\"zählt die zu prüfende Zahlen hoch\n"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Keyword","value":"ADD"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"LiteralNumberInteger","value":"1"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Keyword","value":"TO"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"g_number"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n\n "}, | ||
{"type":"CommentSingle","value":"\"grundsätzlich wird solange, bis es nicht widerlegt ist angenommen, dass g_number eine Primzahl ist\n"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"g_is_prime"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Operator","value":"="}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"abap_true"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n\n "}, | ||
{"type":"CommentSingle","value":"\"Jede Zahl die in der Tabelle gt_prim_num enthalten ist wird geprüft, ob g_number durch diese ohne Rest teilbar ist\n"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Keyword","value":"LOOP AT "}, | ||
{"type":"NameVariable","value":"gt_prim_num"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Keyword","value":"ASSIGNING"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Keyword","value":"FIELD"}, | ||
{"type":"Operator","value":"-"}, | ||
{"type":"NameVariable","value":"SYMBOL"}, | ||
{"type":"Punctuation","value":"("}, | ||
{"type":"NameVariable","value":"\u003cg_prim\u003e"}, | ||
{"type":"Punctuation","value":")."}, | ||
{"type":"Text","value":"\n\n "}, | ||
{"type":"CommentSingle","value":"\"Durch Zahl1 MOD Zahl2 kann der Rest, der bei Zahl1 / Zahl2 herauskommt ermittelt werden\n"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"CommentSingle","value":"\"Sobald dieser bei g_number / \u003cg_prim\u003e 0 ist, handelt es sich bei g_number um keine Primzahl und somit muss diese nicht\n"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"CommentSingle","value":"\"weiter überprüft werden, folglich kann die Loop-Schleife mit EXIT verlassen werden\n"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Keyword","value":"IF"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"g_number"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"MOD"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"\u003cg_prim\u003e"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Operator","value":"="}, | ||
{"type":"Text","value":" "}, | ||
{"type":"LiteralNumberInteger","value":"0"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n "}, | ||
{"type":"NameVariable","value":"g_is_prime"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Operator","value":"="}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"abap_false"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n "}, | ||
{"type":"Keyword","value":"EXIT"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n "}, | ||
{"type":"Keyword","value":"ENDIF"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n\n "}, | ||
{"type":"Keyword","value":"ENDLOOP"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n\n "}, | ||
{"type":"CommentSingle","value":"\"Wenn nicht widerlegt werden konnte, dass g_number eine Primzahl ist, wird diese ausgegeben\n"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Keyword","value":"IF"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"g_is_prime"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Operator","value":"="}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"abap_true"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n\n "}, | ||
{"type":"CommentSingle","value":"\"Wenn die neu gefundene Primzahl \u003c= g_sqrt_range, wird diese in die Tabelle gt_prim_num eingefügt (Erklärung siehe Anmerkung)\n"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Keyword","value":"IF"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"g_number"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Operator","value":"\u003c="}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"g_sqrt_range"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n "}, | ||
{"type":"Keyword","value":"INSERT"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"g_number"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Keyword","value":"INTO"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"Keyword","value":"TABLE"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"gt_prim_num"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n "}, | ||
{"type":"Keyword","value":"ENDIF"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n "}, | ||
{"type":"Keyword","value":"WRITE"}, | ||
{"type":"Text","value":" "}, | ||
{"type":"NameVariable","value":"g_number"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n "}, | ||
{"type":"Keyword","value":"ENDIF"}, | ||
{"type":"Punctuation","value":"."}, | ||
{"type":"Text","value":"\n\n"}, | ||
{"type":"Keyword","value":"ENDDO"}, | ||
{"type":"Punctuation","value":"."} | ||
] |