%YAML 1.2 --- # http://www.sublimetext.com/docs/3/syntax.html name: Easy file_extensions: - mod scope: source.easy contexts: main: - match: \b(?i:(Abs|Access|AndMarks|ANSIToOEM|ANSIToUTF|Asc|AutoField|AutoID|AutoRecNo|BaseDir|BitAnd|BitAndNot|BitOr|BLOBSize|BLOBType|B_And|B_Not|B_Or|BitNot|BitTrunc|Calc|CGIBuffer|CGIExec|CGIOut|CGIOutHTM|CGIOutLn|ChDir|ChMod|Choice|Chr|ClearDat|Clip2Text|Close|CloseDB|ClrArray|Compile|Complete|ConvLine|ConvMemo|CopyBLOB|CopyFile|CopyMemo|Cos|Count|CGIClearBuffer|CGICloseBuffer|CGIGetParam|CGIGetSession|CGITestSession|CGIWrite|CGIWriteLn|CGIWriteHTML|CGIWriteTemplate|CloseSock|CheckPW|CGITestParam|DateStr|Day|DayOfWeek|DBDir|DBF2Dat|DBName|DBRights|Default|DelDB|DelFile|DelIndex|DelMark|DelMarks|DelMemo|DelRec|DigitStr|DirInfo|DiskFree|Div|DoPict|DoRead|DoSound|Def|DecodeB64|DelMarkedRecords|DelIdent|DateTime_To_Unix|DBNo|EditOff|EditOn|EmbedBLOB|EndCGI|EndProg|EndSema|EOT|Evl|Exchange|ExecMacro|ExecProg|Exists|Exp|ExtNote|EndSub|Exit|EncodeB64|Fields|FileMode|FileNo|FileNr|FileSize|FillStr|FindAuto|FindRec|FirstDir|FirstMark|FirstRec|Flush|FlushDB|Frac|Free|From|FSum|FindAndMark|F_Create|F_Open|F_Close|F_Seek|F_Size|F_Read|F_Write|F_Error|F_Pos|GetFTInfo|GenIndex|GenList|GenRel|GetBits|GetCGI|GetCode|GetDef|GetDir|GetDrive|GetEnv|GetField|GetIdent|GetMarks|GetMode|GetPara|GetPW|GetRec|GetRField|GetSize|GetType|GetQueryString|GetStructure|GetSock|GetAuto|GetMarksAuto|GetFTInfo|Halt|High|HTTP_POST|InArray|IncrField|IndDef|IndName|IndNo|IndNr|InitArray|InitCGI|Input|Int|IsFile|IsMark|IsTask|JA|Label|LabelNo|LabelNr|Länge|LastRec|LeftStr|Length|Link|LinkBLOB|LinkCount|Links|LinkSum|Lock|Log|Lower|LTrim|LoadTemplate|LinkInfo|MakeDB|MakeDir|MarkBits|MarkRel|MarkTable|Max|MaxFile|MaxLabel|Mean|MemoLen|MemoStr|Min|Mod|Monat|Month|MarkDoubles|MakePW|MarkIndex|MD5_Str|MarkPattern|NBits|NetID|NetUsers|NewTable|NextDir|NextMark|NextRec|NMarks|Note|NotMarks|Now|NTimes|NEIN|OEMToANSI|OpenDB|OpenSock|ParamStr|Pause|Pos|PrevRec|PrimFile|PrimTable|PrivDir|PutBits|PutMarks|PutRec|PutSock|PutMarksAuto|PrivDir|Random|Read|ReadLn|ReadMemo|readAuto|ReadRec|Rechts|RecNo|RecNr|RegenAll|RegenInd|RelIndex|RemDir|Rename|RenDB|Reset|RevMarks|Rewrite|RightStr|RollBack|Round|RTrim|RAMText_Copy|RAMText_Delete|RAMText_Find|RAMText_Insert|RAMText_Part|RAMText_Paste|RAMText_Subst|Relation|ReOpenDB|RAMText|Scan|ScanRec|ScanRecs|Sel|SetAuto|SetCGILog|SetField|SetFields|SetFilter|SetIdent|SetMark|SetPara|SetRecord|SetRField|SetUFunc|Sin|SortMark|SoundEx|SqRt|Str|StrAdd|StrComp|StrSort|Sub|SubPath|Subst|Sum|Swap|Selection|SetAccess|SetFont|Solve|Sub|Server|SetAlias|Str_To_UnixTime|TAppend|TestBit|TestLn|TestSel|TimeStr|To|Today|ToDBF|ToHTML|TransOff|TransOn|TreeInfo|TDB_ErrorStr|TDB_LastError|TestPW|TDB_ErrorMsg|TDB_ErrorOfs|TDB_ErrorLine|TDB_ErrorPos|Timeout|TestIdent|Unlock|UnScanRec|UTFToANSI|Upper|UserNo|Unix_Now|Unix_Date|Unix_Time|UnixTime_To_Str|Val|ValStr|VarName|WaitSema|Week|Wert|Write|WriteLn|WriteRec|XMal|XWert|Year|ZCount|ZSum))\b scope: keyword.other.easy - match: \b(?i:(Do|Else|ElsIf|End|EndProc|If|Include|Main|Module|NLoop|Repeat|Return|Until|Uses|Var|VarDef|While))\b scope: keyword.control.easy - match: \b(?i:(Boolean|Byte|Char|Integer|Real|String|TBits))\b scope: storage.type.easy - match: \b(?i:(ab|alles|and|bis|ähnlich|enthält|esGibt|groß|größer|has|hat|ist|in|klein|kleiner|like|nicht|not|oder|or|und|ungleich|von|wie))\b scope: keyword.control.conditional.easy - match: \b(?i:(\+|\-|\=|\/|\%|\&|\>|\<|\^|\!|\||\#|\:|\*))\b scope: keyword.operator - match: \b(?i:(function|procedure))\b\s+(\w+(\.\w+)?)(\(.*?\))?;\s*(?=(?i:attribute|forward|external)) scope: meta.function.prototype.pascal captures: 1: storage.type.prototype.pascal 2: entity.name.function.prototype.pascal - match: \b(?i:(function|procedure))\b\s+(\w+(\.\w+)?) scope: meta.function.pascal captures: 1: storage.type.function.pascal 2: entity.name.function.pascal - match: '\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\b' scope: constant.numeric.pascal - match: '(^[ \t]+)?(--)' captures: 1: punctuation.whitespace.comment.leading.pascal 2: punctuation.definition.comment.pascal push: - meta_scope: comment.line.double-dash.pascal.one - match: \n pop: true - match: '(^[ \t]+)?(//)' captures: 1: punctuation.whitespace.comment.leading.pascal 2: punctuation.definition.comment.pascal push: - meta_scope: comment.line.double-slash.pascal.two - match: \n pop: true - match: \/\* captures: 0: punctuation.definition.comment.pascal push: - meta_scope: comment.block.pascal.one - match: \*\/ captures: 0: punctuation.definition.comment.pascal pop: true - match: '\{' captures: 0: punctuation.definition.comment.pascal push: - meta_scope: comment.block.pascal.two - match: '\}' captures: 0: punctuation.definition.comment.pascal pop: true - match: '"' comment: Double quoted strings are an extension and (generally) support C-style escape sequences. captures: 0: punctuation.definition.string.begin.pascal push: - meta_scope: string.quoted.double.pascal - match: '"' captures: 0: punctuation.definition.string.end.pascal pop: true - match: \\. scope: constant.character.escape.pascal - match: "'" captures: 0: punctuation.definition.string.begin.pascal push: - meta_scope: string.quoted.single.pascal - match: "''" scope: constant.character.escape.apostrophe.pascal - match: "'" captures: 0: punctuation.definition.string.end.pascal pop: true