RegEx/ANSI/Cursor.regex.source.ps1
$myName = ($MyInvocation.MyCommand.ScriptBlock.File | Split-Path -Leaf) -replace '\.source', '' -replace '\.ps1', '.txt' $myRoot = $MyInvocation.MyCommand.ScriptBlock.File | Split-Path New-RegEx -Description "Matches an ANSI cursor control" | New-RegEx -CharacterClass Escape | New-RegEx -LiteralCharacter '[' | New-RegEx -Atomic -Or @( New-RegEx -Pattern '6n' -Name 'DeviceStatusReport' -Comment '6n will request the cursor position' New-RegEx -Pattern ( New-RegEx -Name Row -Pattern '\d+' | New-RegEx -LiteralCharacter ';' | New-RegEx -Name Column -Pattern '\d+' | New-RegEx -Pattern 'R' ) -Comment "A Device Status Report will return CursorPosition in the form <row>;<column> R" -Name CursorPosition New-RegEx -Name CursorUp -Comment "Cursor Up is a digit followed by A" -Pattern ( New-RegEx -Name RowCount -Pattern '\d+' | New-RegEx -Pattern 'A' ) New-RegEx -Name CursorDown -Comment "Cursor Down is a digit followed by B" -Pattern ( New-RegEx -Name RowCount -Pattern '\d+' | New-RegEx -Pattern 'B' ) New-RegEx -Name CursorForward -Comment "Cursor Forward is a digit followed by C" -Pattern ( New-RegEx -Name ColumnCount -Pattern '\d+' | New-RegEx -Pattern 'C' ) New-RegEx -Name CursorBack -Comment "Cursor Back is a digit followed by D" -Pattern ( New-RegEx -Name ColumnCount -Pattern '\d+' | New-RegEx -Pattern 'D' ) New-RegEx -Name CursorNextLine -Comment "Cursor Next Line is a digit followed by E" -Pattern ( New-RegEx -Name LineCount -Pattern '\d+' | New-RegEx -Pattern 'E' ) New-RegEx -Name CursorNextLine -Comment "Cursor Next Line is a digit followed by F" -Pattern ( New-RegEx -Name LineCount -Pattern '\d+' | New-RegEx -Pattern 'F' ) New-RegEx -Name CursorAbsolute -Comment "Cursor Absolute Position is a digit followed by G" -Pattern ( New-RegEx -Name AbsolutePosition -Pattern '\d+' | New-RegEx -Pattern 'G' ) New-RegEx -Name CursorPosition -Comment "Cursor Positions are two optional digits, separated by semicolon, ending with H" -Pattern ( New-RegEx -Name Row -Pattern '\d{0,}' | New-RegEx -LiteralCharacter ';' | New-RegEx -Name Column -Pattern '\d{0,}' | New-RegEx -LiteralCharacter 'H' ) New-RegEx -Name ScrollUp -Comment "Scroll Up is a digit followed by S" -Pattern ( New-RegEx -Name PageCount -Pattern '\d+' | New-RegEx -Pattern 'S' ) New-RegEx -Name ScrollDown -Comment "Scroll Down is a digit followed by T" -Pattern ( New-RegEx -Name PageCount -Pattern '\d+' | New-RegEx -Pattern 'T' ) New-RegEx -Name CursorHide -Comment 'Cursors can be hidden with 25h' ( New-RegEx -Pattern '25h' ) New-RegEx -Name CursorShow -Comment 'Cursors can be hidden with 25l' ( New-RegEx -Pattern '25l' ) ) | Set-Content -Path (Join-Path $myRoot $myName) -PassThru |