{2}# Lexing numeric literals{0} {2}# From issue #199{0} {2}# UUIDs{0} {8}virsh{0} {8}start{0} {8}61a6a312-86d3-458c-824a-fa0adc2bd22c{0} {8}virsh{0} {8}start{0} {8}61969312-86d3-458c-8249-fa0adc2bd22c{0} {8}virsh{0} {8}restore{0} {7}/{8}opt{7}/{8}61a6a312-86d3-458c-824a-fa0adc2bd22c-suspend{0} {2}# Git items{0} {8}git{0} {8}checkout{0} {8}998d611b516b0e485803089ecd53fdf0ea707a8c{0} {8}git{0} {8}log{0} {8}--no-walk{0} {8}0e2ba9c{0} {8}git{0} {8}log{0} {8}--no-walk{0} {8}rel-5-2-4-97-g7405d4e7{0} {2}# Arithmetic and character ranges{0} {8}declare{0} {8}-i{0} {8}a{7}={3}1{7}+{3}1{7};{0} {4}echo{0} {9}$a{0} {7}[[{0} {9}$a{0} {7}=={0} {7}[{8}0-9{7}]{0} {7}]]{0} {7}&&{0} {4}echo{0} {3}1{0} {2}# Brace expansion{0} {4}for{0} {8}i{0} {4}in{0} {7}{{3}1{7}..{3}10{7}..{3}2{7}};{0} {4}do{0} {4}echo{0} {9}$i{0} {4}done{0} {4}for{0} {8}a{0} {4}in{0} {7}{{8}A{7}..{8}Z{7}..{3}2{7}};{0} {4}do{0} {4}echo{0} {9}$a{0} {4}done{0} {2}# From Kein-Hong Man{0} {2}#--------------------------------------------------------------------------{0} {2}# Bash number formats{0} {2}# (20070712){0} {2}# Octal lexing relaxed to allow hex digits to avoid flagging unnecessary{0} {2}# and misleading number errors; radix-prefixed lexing behaviour is unchanged,{0} {2}# as those cases are uncommon (to get strict lexing, define PEDANTIC_OCTAL).{0} {2}# NOTE: Some people may want an entire non-number to be lexed in the normal{0} {2}# style and not as part-number part-normal. If the user thinks there is a{0} {2}# better case for the former, please lobby for it on the SF issue tracker.{0} {3}0123{0} {3}0567{0} {2}# octal good{0} {3}08{0} {3}0789{0} {8}077ABC{0} {2}# octal bad (disabled 20070712, now lexed as numbers){0} {8}066XYZ{0} {2}# octal bad{0} {3}0xDEAD{0} {3}0X1234{0} {2}# hex good{0} {8}0xABCMNO{0} {8}0XGHI{0} {2}# hex bad{0} {2}# extended "[base#]n" format where base is between 2-64{0} {2}# digits range are 0-9a-zA-Z@_{0} {2}# if base <= 36, then alphabets are case insensitive{0} {2}# this style isn't likely in non-number code, so the lexer currently{0} {2}# opts to colour the error in red -- send feedback if this is too{0} {2}# intrusive; 'invalid octals' (but valid text) in red proved annoying...{0} {3}2#10101{0} {2}# binary{0} {1}2#23456{0} {2}# error (in red){0} {1}8#0123456789{8}AB{0} {2}# error (in red){0} {3}16#abcDEF123{0} {8}16#abcpqr{0} {2}# bad{0} {3}64#xyzXYZ@_789{0} {2}# full base-64{0} {1}99{8}#xyzXYZ{7}@{8}_789{0} {2}# error (in red; invalid base){0} {1}111{8}#xyzXYZ{7}@{8}_789{0} {2}# error (in red; invalid base){0} {3}567{7}+{3}0123{7}*{3}0xBCD{0} {2}# with operators{0} {8}(4#0123-3#012){0} {2}# 20070712:{0} {2}# Octal lexing relaxed to avoid marking some number sequences as octal{0} {2}# errors. This is because the elements or apps controlled by bash may{0} {2}# have a different view of numbers, so we avoid flagging unnecessary{0} {2}# (and misleading) number errors. Radix-prefixed number lexing is{0} {2}# unchanged, as those cases are uncommon (no feedback on it yet.){0} {2}# In the following, red-flagged 'octals' should now be lexed as normal{0} {2}# numbers, allowing hex digits.{0} {2}# flightgear missing.sh{0} {8}scriptversion{7}={8}2004-09-07.08{0} {2}# git t/t0000/basic.sh{0} {8}P{7}={8}087704a96baf1c2d1c869a8b084481e121c88b5b{0} {2}# openssh config.guess{0} {7}*:{8}procnto{7}*:*:*{0} {7}|{0} {7}*:{8}QNX{7}:[{3}0123456789{7}]*:*){0} {2}# with hex digits, the following will still be an invalid number{0} {8}066XYZ{0}