diff options
-rw-r--r-- | lib/coderay/scanners/groovy.rb | 90 | ||||
-rw-r--r-- | test/scanners/groovy/pleac.expected.raydebug | 1036 | ||||
-rw-r--r-- | test/scanners/groovy/strange.expected.raydebug | 1 | ||||
-rw-r--r-- | test/scanners/groovy/strange.in.groovy | 1 | ||||
-rw-r--r-- | test/scanners/groovy/strings.expected.raydebug | 34 | ||||
-rw-r--r-- | test/scanners/groovy/strings.in.groovy | 34 |
6 files changed, 645 insertions, 551 deletions
diff --git a/lib/coderay/scanners/groovy.rb b/lib/coderay/scanners/groovy.rb index 5e76357..fd1a34b 100644 --- a/lib/coderay/scanners/groovy.rb +++ b/lib/coderay/scanners/groovy.rb @@ -10,7 +10,7 @@ module Scanners # TODO: Check this! KEYWORDS = Java::KEYWORDS + %w[ - def assert as in + as assert def in ] KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[ case instanceof new return throw typeof while as assert in @@ -31,11 +31,13 @@ module Scanners ESCAPE = / [bfnrtv$\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x # no 4-byte unicode chars? U[a-fA-F0-9]{8} - REGEXP_ESCAPE = / [bBdDsSwW] /x + REGEXP_ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | \d | [bBdDsSwW\/] /x + + # TODO: interpretation inside ', ", / STRING_CONTENT_PATTERN = { - "'" => /[^\\$'\n]+/, + "'" => /(?>\\[^\\'\n]+|[^\\'\n]+)+/, '"' => /[^\\$"\n]+/, - "'''" => /(?>[^\\$']+|'(?!''))+/, + "'''" => /(?>[^\\']+|'(?!''))+/, '"""' => /(?>[^\\$"]+|"(?!""))+/, '/' => /[^\\$\/\n]+/, } @@ -43,8 +45,10 @@ module Scanners def scan_tokens tokens, options state = :initial + inline_block_stack = [] + inline_block_paren_depth = nil string_delimiter = nil - import_clause = class_name_follows = last_token_dot = after_def = false + import_clause = class_name_follows = last_token = after_def = false value_expected = true until eos? @@ -60,7 +64,7 @@ module Scanners tokens << [match, :space] if match.index ?\n import_clause = after_def = false - value_expected = true + value_expected = true unless value_expected end next @@ -79,7 +83,7 @@ module Scanners elsif match = scan(/ #{IDENT} | \[\] /ox) kind = IDENT_KIND[match] value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match] - if last_token_dot + if last_token == '.' kind = :ident elsif class_name_follows kind = :class @@ -87,7 +91,7 @@ module Scanners elsif after_def && check(/\s*[({]/) kind = :method after_def = false - elsif kind == :ident && check(/:/) + elsif kind == :ident && last_token != '?' && check(/:/) kind = :key else class_name_follows = true if match == 'class' || (import_clause && match == 'as') @@ -95,16 +99,6 @@ module Scanners after_def = true if match == 'def' end - # TODO: ~'...', ~"..." and ~/.../ style regexps - elsif scan(/ \.\.<? | \*?\.(?!\d)@? | \.& | \?:? | [,?:(\[] | -[->] | \+\+ | - && | \|\| | \*\*=? | ==?~ | [-+*%^~&|<>=!]=? | <<<?=? | >>>?=? /x) - value_expected = true - after_def = false - kind = :operator - - elsif scan(/ [)\]}]+ /x) - value_expected = after_def = false - elsif scan(/;/) import_clause = after_def = false value_expected = true @@ -114,6 +108,29 @@ module Scanners class_name_follows = after_def = false value_expected = true kind = :operator + if !inline_block_stack.empty? + inline_block_paren_depth += 1 + end + + # TODO: ~'...', ~"..." and ~/.../ style regexps + elsif match = scan(/ \.\.<? | \*?\.(?!\d)@? | \.& | \?:? | [,?:(\[] | -[->] | \+\+ | + && | \|\| | \*\*=? | ==?~ | <=?>? | [-+*%^~&|>=!]=? | <<<?=? | >>>?=? /x) + value_expected = true + value_expected = :regexp if match == '~' + after_def = false + kind = :operator + + elsif match = scan(/ [)\]}] /x) + value_expected = after_def = false + if !inline_block_stack.empty? && match == '}' + inline_block_paren_depth -= 1 + if inline_block_paren_depth == 0 # closing brace of inline block reached + tokens << [match, :inline_delimiter] + tokens << [:close, :inline] + state, string_delimiter, inline_block_paren_depth = inline_block_stack.pop + next + end + end elsif check(/[\d.]/) after_def = value_expected = false @@ -133,7 +150,8 @@ module Scanners tokens << [:open, :string] string_delimiter = match kind = :delimiter - + + # TODO: record.'name' elsif match = scan(/["']/) after_def = value_expected = false state = match == '/' ? :regexp : :string @@ -141,7 +159,7 @@ module Scanners string_delimiter = match kind = :delimiter - elsif value_expected && (match = scan(/\/(?=\S)/)) + elsif value_expected && (match = scan(/\//)) after_def = value_expected = false tokens << [:open, :regexp] state = :regexp @@ -166,9 +184,11 @@ module Scanners when :string, :regexp, :multiline_string if scan(STRING_CONTENT_PATTERN[string_delimiter]) kind = :content + elsif match = scan(state == :multiline_string ? /'''|"""/ : /["'\/]/) tokens << [match, :delimiter] if state == :regexp + # TODO: regexp modifiers? s, m, x, i? modifiers = scan(/[ix]+/) tokens << [modifiers, :modifier] if modifiers && !modifiers.empty? end @@ -179,13 +199,14 @@ module Scanners state = :initial next - elsif state == :string && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)) - if string_delimiter == "'" && !(match == "\\\\" || match == "\\'") + elsif (state == :string || state == :multiline_string) && + (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)) + if string_delimiter[0] == "'" && !(match == "\\\\" || match == "\\'") kind = :content else kind = :char end - elsif state == :regexp && scan(/ \\ (?: #{ESCAPE} | #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox) + elsif state == :regexp && scan(/ \\ (?: #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox) kind = :char elsif match = scan(/ \$ #{IDENT} /mox) @@ -195,23 +216,26 @@ module Scanners tokens << [match, IDENT_KIND[match]] tokens << [:close, :inline] next - elsif match = scan(/ \$ \{ [^}]* \} /mox) - # TODO: recursive inline strings + elsif match = scan(/ \$ \{ /x) tokens << [:open, :inline] tokens << ['${', :inline_delimiter] - tokens << [match[2..-2], :ident] - tokens << ['}', :inline_delimiter] - tokens << [:close, :inline] + inline_block_stack << [state, string_delimiter, inline_block_paren_depth] + inline_block_paren_depth = 1 + state = :initial next - elsif scan(/ \\. | \$ /mx) + elsif scan(/ \$ /mx) + kind = :content + + elsif scan(/ \\. /mx) kind = :content - elsif scan(/ \\ | $ /x) - tokens << [:close, :delimiter] + elsif scan(/ \\ | \n /x) + tokens << [:close, state] kind = :error after_def = value_expected = false state = :initial + else raise_inspect "else case \" reached; %p not handled." % peek(1), tokens end @@ -228,13 +252,13 @@ module Scanners end raise_inspect 'Empty token', tokens unless match - last_token_dot = match == '.' + last_token = match unless [:space, :comment, :doctype].include? kind tokens << [match, kind] end - if [:string, :regexp].include? state + if [:multiline_string, :string, :regexp].include? state tokens << [:close, state] end diff --git a/test/scanners/groovy/pleac.expected.raydebug b/test/scanners/groovy/pleac.expected.raydebug index d66e50d..574d08f 100644 --- a/test/scanners/groovy/pleac.expected.raydebug +++ b/test/scanners/groovy/pleac.expected.raydebug @@ -62,7 +62,7 @@ ident(s) operator(=) keyword(new) pre_type(Scanner)operator(()ident(data)(\)) ident(s)operator(.)ident(findInLine)operator(()regexp<delimiter(/)content((.{5}\).{8}(.{5}\) (.{5}\) (.*\))delimiter(/)>(\)) ident(m) operator(=) ident(s)operator(.)ident(match)operator(()(\)) ident(fields) operator(=) type([]) -operator(()integer(1)operator(..)ident(m)operator(.)ident(groupCount)operator(()(\)\))operator(.)ident(each)operator({) ident(fields) operator(<)operator(<) ident(m)operator(.)ident(group)operator(()local_variable(it)(\)) (}) +operator(()integer(1)operator(..)ident(m)operator(.)ident(groupCount)operator(()(\))(\))operator(.)ident(each)operator({) ident(fields) operator(<)operator(<) ident(m)operator(.)ident(group)operator(()local_variable(it)(\)) (}) keyword(assert) ident(fields) operator(==) operator([)string<delimiter(')content(hippo)delimiter(')>operator(,) string<delimiter(')content(means)delimiter(')>operator(,) string<delimiter(')content(river)delimiter(')>operator(,) string<delimiter(')content(horse)delimiter(')>(]) comment(// another scanner example similar to the javadoc example) @@ -122,7 +122,7 @@ keyword(assert) ident(unpack)operator(()string<delimiter(")content(x6 A6)delimit comment(// forward 6, grab 2, backward 5, grab 2) keyword(assert) ident(unpack)operator(()string<delimiter(")content(x6 A2 X5 A2)delimiter(")>operator(,) ident(string)(\)) operator(==) operator([)string<delimiter(')content(or)delimiter(')>operator(,) string<delimiter(')content(be)delimiter(')>(]) -keyword(assert) ident(cut2fmt)operator(()operator([)integer(8)operator(,) integer(14)operator(,) integer(20)operator(,) integer(26)operator(,) integer(30)(]\)) operator(==) string<delimiter(')content(A7 A6 A6 A6 A4 A*)delimiter(')> +keyword(assert) ident(cut2fmt)operator(()operator([)integer(8)operator(,) integer(14)operator(,) integer(20)operator(,) integer(26)operator(,) integer(30)(])(\)) operator(==) string<delimiter(')content(A7 A6 A6 A6 A4 A*)delimiter(')> comment(// utility method (derived from Java PLEAC version\)) keyword(def) method(unpack)operator(()pre_type(String) ident(format)operator(,) pre_type(String) ident(data)(\)) operator({) @@ -145,12 +145,12 @@ keyword(def) method(unpack)operator(()pre_type(String) ident(format)operator(,) keyword(case) string<delimiter(')content(A)delimiter(')>operator(:) keyword(if) operator(()ident(count) operator(==) operator(-)integer(1)(\)) operator({) ident(start) operator(=) operator([)ident(dataOffset)operator(,) ident(maxDataOffset)(])operator(.)ident(min)operator(()(\)) - ident(result)operator(.)ident(add)operator(()ident(data)operator([)ident(start)operator(..)operator(-)integer(1)(]\)) + ident(result)operator(.)ident(add)operator(()ident(data)operator([)ident(start)operator(..)operator(-)integer(1)(])(\)) ident(dataOffset) operator(=) ident(maxDataOffset) (}) keyword(else) operator({) ident(start) operator(=) operator([)ident(dataOffset)operator(,) ident(maxDataOffset)(])operator(.)ident(min)operator(()(\)) ident(end) operator(=) operator([)ident(dataOffset) operator(+) ident(count)operator(,) ident(maxDataOffset)(])operator(.)ident(min)operator(()(\)) - ident(result)operator(.)ident(add)operator(()ident(data)operator([)ident(start)operator(..<)ident(end)(]\)) + ident(result)operator(.)ident(add)operator(()ident(data)operator([)ident(start)operator(..<)ident(end)(])(\)) ident(dataOffset) operator(+=) ident(count) (}) keyword(break) @@ -250,9 +250,9 @@ keyword(assert) keyword(new) pre_type(String)operator(()ident(ascii)(\)) operato keyword(assert) keyword(new) pre_type(String)operator(()operator([)integer(115)operator(,) integer(97)operator(,) integer(109)operator(,) integer(112)operator(,) integer(108)operator(,) integer(101)(]) keyword(as) type(char)type([])(\)) operator(==) string<delimiter(")content(sample)delimiter(")> comment(// convert 'HAL' to 'IBM' (in increasing order of Grooviness\)) -keyword(assert) string<delimiter(")content(HAL)delimiter(")>operator(.)ident(toCharArray)operator(()(\))operator(.)ident(collect)operator({)keyword(new) pre_type(String)operator(()local_variable(it)operator(+)integer(1) keyword(as) type(char)type([])(\)})operator(.)ident(join)operator(()(\)) operator(==) string<delimiter(')content(IBM)delimiter(')> -keyword(assert) operator(()string<delimiter(")content(HAL)delimiter(")> keyword(as) pre_type(String)type([])(\))operator(.)ident(collect)operator({)local_variable(it)operator(.)ident(next)operator(()(\)})operator(.)ident(join)operator(()(\)) operator(==) string<delimiter(')content(IBM)delimiter(')> -keyword(assert) string<delimiter(")content(HAL)delimiter(")>operator(.)ident(replaceAll)operator(()string<delimiter(')content(.)delimiter(')>operator(,) operator({)local_variable(it)operator(.)ident(next)operator(()(\)}\)) operator(==) string<delimiter(')content(IBM)delimiter(')> +keyword(assert) string<delimiter(")content(HAL)delimiter(")>operator(.)ident(toCharArray)operator(()(\))operator(.)ident(collect)operator({)keyword(new) pre_type(String)operator(()local_variable(it)operator(+)integer(1) keyword(as) type(char)type([])(\))(})operator(.)ident(join)operator(()(\)) operator(==) string<delimiter(')content(IBM)delimiter(')> +keyword(assert) operator(()string<delimiter(")content(HAL)delimiter(")> keyword(as) pre_type(String)type([])(\))operator(.)ident(collect)operator({)local_variable(it)operator(.)ident(next)operator(()(\))(})operator(.)ident(join)operator(()(\)) operator(==) string<delimiter(')content(IBM)delimiter(')> +keyword(assert) string<delimiter(")content(HAL)delimiter(")>operator(.)ident(replaceAll)operator(()string<delimiter(')content(.)delimiter(')>operator(,) operator({)local_variable(it)operator(.)ident(next)operator(()(\))(})(\)) operator(==) string<delimiter(')content(IBM)delimiter(')> comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_1.5) @@ -266,7 +266,7 @@ comment(// CheckSum.groovy: Compute 16-bit checksum of input file) comment(// Usage: groovy CheckSum <file>) comment(// script:) ident(checksum) operator(=) integer(0) -keyword(new) pre_type(File)operator(()ident(args)operator([)integer(0)(]\))operator(.)ident(eachByte)operator({) ident(checksum) operator(+=) local_variable(it) (}) +keyword(new) pre_type(File)operator(()ident(args)operator([)integer(0)(])(\))operator(.)ident(eachByte)operator({) ident(checksum) operator(+=) local_variable(it) (}) ident(checksum) operator(%=) operator(()type(int)(\)) pre_type(Math)operator(.)ident(pow)operator(()integer(2)operator(,) integer(16)(\)) operator(-) integer(1) ident(println) ident(checksum) comment(//----------------------------------------------------------------------------------) @@ -278,7 +278,7 @@ comment(// Slowcat.groovy: Emulate a s l o w line printer) comment(// Usage: groovy Slowcat <file> <delay_millis_between_each_char>) comment(// script:) ident(delay) operator(=) ident(args)operator([)integer(1)(])operator(.)ident(toInteger)operator(()(\)) -keyword(new) pre_type(File)operator(()ident(args)operator([)integer(0)(]\))operator(.)ident(eachByte)operator({) ident(print) operator(()operator(()type(char)(\)) local_variable(it)(\))operator(;) pre_type(Thread)operator(.)ident(sleep)operator(()ident(delay)(\)) (}) +keyword(new) pre_type(File)operator(()ident(args)operator([)integer(0)(])(\))operator(.)ident(eachByte)operator({) ident(print) operator(()operator(()type(char)(\)) local_variable(it)(\))operator(;) pre_type(Thread)operator(.)ident(sleep)operator(()ident(delay)(\)) (}) comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_1.6) @@ -296,12 +296,12 @@ comment(//---------------------------------------------------------------------- comment(// @@PLEAC@@_1.7) comment(//----------------------------------------------------------------------------------) -ident(s1) operator(=) string<delimiter(')content(abc)content(\\t)content( def)content(\\t)content(ghi )content(\\n)content(\\t)content(x)delimiter(')> -ident(s2) operator(=) string<delimiter(')content(abc def ghi )content(\\n)content( x)delimiter(')> +ident(s1) operator(=) string<delimiter(')content(abc\\t def\\tghi \\n\\tx)delimiter(')> +ident(s2) operator(=) string<delimiter(')content(abc def ghi \\n x)delimiter(')> keyword(def) method(expand)operator(()ident(s)(\)) operator({) ident(s)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(toList)operator(()(\))operator(.)ident(collect)operator({) ident(line) operator(=) local_variable(it) - keyword(while) operator(()ident(line)operator(.)ident(contains)operator(()string<delimiter(')content(\\t)delimiter(')>(\)\)) operator({) + keyword(while) operator(()ident(line)operator(.)ident(contains)operator(()string<delimiter(')content(\\t)delimiter(')>(\))(\)) operator({) ident(line) operator(=) ident(line)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(([^)char(\\t)content(]*\)()char(\\t)content(\)(.*\))delimiter(/)>(\))operator({) ident(all)operator(,)ident(pre)operator(,)ident(tab)operator(,)ident(suf) operator(->) ident(pre) operator(+) string<delimiter(')content( )delimiter(')> operator(*) operator(()integer(8) operator(-) ident(pre)operator(.)ident(size)operator(()(\)) operator(%) integer(8)(\)) operator(+) ident(suf) (}) @@ -315,7 +315,7 @@ keyword(def) method(unexpand)operator(()ident(s)(\)) operator({) keyword(for) operator(()ident(i) keyword(in) ident(line)operator(.)ident(size)operator(()(\))operator(-)integer(1)operator(..)integer(1)(\)) operator({) keyword(if) operator(()ident(i) operator(%) integer(8) operator(==) integer(0)(\)) operator({) ident(prefix) operator(=) ident(line)operator([)integer(0)operator(..<)ident(i)(]) - keyword(if) operator(()ident(prefix)operator(.)ident(trim)operator(()(\))operator(.)ident(size)operator(()(\)) operator(!=) ident(prefix)operator(.)ident(size)operator(()(\)\)) operator({) + keyword(if) operator(()ident(prefix)operator(.)ident(trim)operator(()(\))operator(.)ident(size)operator(()(\)) operator(!=) ident(prefix)operator(.)ident(size)operator(()(\))(\)) operator({) ident(line) operator(=) ident(prefix)operator(.)ident(trim)operator(()(\)) operator(+) string<delimiter(')content(\\t)delimiter(')> operator(+) ident(line)operator([)ident(i)operator(..)operator(-)integer(1)(]) (}) (}) @@ -335,17 +335,17 @@ keyword(assert) string<delimiter(")content(You owe )inline<inline_delimiter($)id ident(rows) operator(=) integer(24)operator(;) ident(cols) operator(=) integer(80) keyword(assert) string<delimiter(")content(I am )inline<inline_delimiter($)ident(rows)>content( high and )inline<inline_delimiter($)ident(cols)>content( wide)delimiter(")> operator(==) string<delimiter(')content(I am 24 high and 80 wide)delimiter(')> -keyword(assert) string<delimiter(')content(I am 17 years old)delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\d)content(+)delimiter(/)>operator(,) operator({)integer(2)operator(*)local_variable(it)operator(.)ident(toInteger)operator(()(\)}\)) operator(==) string<delimiter(')content(I am 34 years old)delimiter(')> +keyword(assert) string<delimiter(')content(I am 17 years old)delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\d)content(+)delimiter(/)>operator(,) operator({)integer(2)operator(*)local_variable(it)operator(.)ident(toInteger)operator(()(\))(})(\)) operator(==) string<delimiter(')content(I am 34 years old)delimiter(')> comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_1.9) comment(//----------------------------------------------------------------------------------) keyword(assert) string<delimiter(")content(bo peep)delimiter(")>operator(.)ident(toUpperCase)operator(()(\)) operator(==) string<delimiter(')content(BO PEEP)delimiter(')> keyword(assert) string<delimiter(')content(JOHN)delimiter(')>operator(.)ident(toLowerCase)operator(()(\)) operator(==) string<delimiter(')content(john)delimiter(')> -keyword(def) method(capitalize)operator(()ident(s)(\)) operator({)ident(s)operator([)integer(0)(])operator(.)ident(toUpperCase)operator(()(\)) operator(+) operator(()ident(s)operator(.)ident(size)operator(()(\))operator(<)integer(2) operator(?) string<delimiter(')delimiter(')> operator(:) ident(s)operator([)integer(1)operator(..)operator(-)integer(1)(])operator(?)operator(.)ident(toLowerCase)operator(()(\)\)}) +keyword(def) method(capitalize)operator(()ident(s)(\)) operator({)ident(s)operator([)integer(0)(])operator(.)ident(toUpperCase)operator(()(\)) operator(+) operator(()ident(s)operator(.)ident(size)operator(()(\))operator(<)integer(2) operator(?) string<delimiter(')delimiter(')> operator(:) ident(s)operator([)integer(1)operator(..)operator(-)integer(1)(])operator(?)operator(.)ident(toLowerCase)operator(()(\))(\))(}) keyword(assert) ident(capitalize)operator(()string<delimiter(')content(joHn)delimiter(')>(\)) operator(==) string<delimiter(')content(John)delimiter(')> -ident(s) operator(=) string<delimiter(")content(thIS is a loNG liNE)delimiter(")>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\w)content(+)delimiter(/)>(\))operator({)ident(capitalize)operator(()local_variable(it)(\)}) +ident(s) operator(=) string<delimiter(")content(thIS is a loNG liNE)delimiter(")>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\w)content(+)delimiter(/)>(\))operator({)ident(capitalize)operator(()local_variable(it)(\))(}) keyword(assert) ident(s) operator(==) string<delimiter(')content(This Is A Long Line)delimiter(')> ident(s1) operator(=) string<delimiter(')content(JOhn)delimiter(')>operator(;) ident(s2) operator(=) string<delimiter(')content(joHN)delimiter(')> @@ -360,7 +360,7 @@ comment(//---------------------------------------------------------------------- comment(// @@PLEAC@@_1.10) comment(//----------------------------------------------------------------------------------) ident(n) operator(=) integer(10) -keyword(assert) string<delimiter(")content(I have )inline<inline_delimiter(${)ident(n+1)inline_delimiter(})>content( guanacos.)delimiter(")> operator(==) string<delimiter(')content(I have 11 guanacos.)delimiter(')> +keyword(assert) string<delimiter(")content(I have )inline<inline_delimiter(${)ident(n)operator(+)integer(1)inline_delimiter(})>content( guanacos.)delimiter(")> operator(==) string<delimiter(')content(I have 11 guanacos.)delimiter(')> keyword(assert) string<delimiter(")content(I have )delimiter(")> operator(+) operator(()ident(n)operator(+)integer(1)(\)) operator(+) string<delimiter(")content( guanacos.)delimiter(")> operator(==) string<delimiter(')content(I have 11 guanacos.)delimiter(')> comment(// sending templated email is solved in two parts: templating and sending) @@ -370,12 +370,12 @@ keyword(def) method(get_manager_list)operator(()ident(s)(\)) operator({) string< ident(msg) operator(=) string<delimiter(""")content( To: )inline<inline_delimiter($)ident(naughty)>content( From: Your Bank -Cc: )inline<inline_delimiter(${)ident( get_manager_list(naughty\) )inline_delimiter(})>content( -Date: )inline<inline_delimiter(${)ident( new Date(\) )inline_delimiter(})>content( +Cc: )inline<inline_delimiter(${) ident(get_manager_list)operator(()ident(naughty)(\)) inline_delimiter(})>content( +Date: )inline<inline_delimiter(${) keyword(new) pre_type(Date)operator(()(\)) inline_delimiter(})>content( Dear )inline<inline_delimiter($)ident(naughty)>content(, -Today, you bounced check number )inline<inline_delimiter(${)ident( 500 + new Random(\).nextInt(100\) )inline_delimiter(})>content( to us. +Today, you bounced check number )inline<inline_delimiter(${) integer(500) operator(+) keyword(new) pre_type(Random)operator(()(\))operator(.)ident(nextInt)operator(()integer(100)(\)) inline_delimiter(})>content( to us. Your account is now closed. Sincerely, @@ -395,7 +395,7 @@ Your account is now closed. Sincerely, the management )delimiter(''')> -ident(sanitized) operator(=) ident(msg)operator(.)ident(replaceAll)operator(()string<delimiter(')content((?m\)^Date: (.*\))content($)delimiter(')>operator(,)string<delimiter(')content(Date: XXX)delimiter(')>(\)) +ident(sanitized) operator(=) ident(msg)operator(.)ident(replaceAll)operator(()string<delimiter(')content((?m\)^Date: (.*\)$)delimiter(')>operator(,)string<delimiter(')content(Date: XXX)delimiter(')>(\)) ident(sanitized) operator(=) ident(sanitized)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?m\)check number ()char(\\d)content(+\) to)delimiter(/)>operator(,)string<delimiter(')content(check number XXX to)delimiter(')>(\)) keyword(assert) ident(sanitized) operator(==) ident(expected) comment(// note: Groovy also has several additional built-in templating facilities) @@ -465,11 +465,11 @@ comment(// @@PLEAC@@_1.13) comment(//----------------------------------------------------------------------------------) ident(string) operator(=) regexp<delimiter(/)content(Mom said, "Don't do that.")delimiter(/)> comment(// backslash special chars) -keyword(assert) ident(string)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(['"])delimiter(/)>(\))operator({)regexp<delimiter(/)char(\\\\)delimiter(/)>operator(+)local_variable(it)operator([)integer(0)(]}) operator(==) regexp<delimiter(/)content(Mom said, )char(\\")content(Don)char(\\')content(t do that.)char(\\")delimiter(/)> comment(//') +keyword(assert) ident(string)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(['"])delimiter(/)>(\))operator({)regexp<delimiter(/)char(\\\\)delimiter(/)>operator(+)local_variable(it)operator([)integer(0)(])(}) operator(==) regexp<delimiter(/)content(Mom said, )char(\\")content(Don)char(\\')content(t do that.)char(\\")delimiter(/)> comment(//') comment(// double special chars) -keyword(assert) ident(string)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(['"])delimiter(/)>(\))operator({)local_variable(it)operator([)integer(0)(])operator(+)local_variable(it)operator([)integer(0)(]}) operator(==) regexp<delimiter(/)content(Mom said, ""Don''t do that."")delimiter(/)> comment(//') +keyword(assert) ident(string)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(['"])delimiter(/)>(\))operator({)local_variable(it)operator([)integer(0)(])operator(+)local_variable(it)operator([)integer(0)(])(}) operator(==) regexp<delimiter(/)content(Mom said, ""Don''t do that."")delimiter(/)> comment(//') comment(//backslash quote all non-capital letters) -keyword(assert) string<delimiter(")content(DIR /?)delimiter(")>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content([^A-Z])delimiter(/)>(\))operator({)regexp<delimiter(/)char(\\\\)delimiter(/)>operator(+)local_variable(it)operator([)integer(0)(]}) operator(==) regexp<delimiter(/)content(DIR)content(\\ )content(\\/)content(\\?)delimiter(/)> +keyword(assert) string<delimiter(")content(DIR /?)delimiter(")>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content([^A-Z])delimiter(/)>(\))operator({)regexp<delimiter(/)char(\\\\)delimiter(/)>operator(+)local_variable(it)operator([)integer(0)(])(}) operator(==) regexp<delimiter(/)content(DIR)content(\\ )char(\\/)content(\\?)delimiter(/)> comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_1.14) @@ -477,7 +477,7 @@ comment(//---------------------------------------------------------------------- keyword(assert) string<delimiter(')content( x )delimiter(')>operator(.)ident(trim)operator(()(\)) operator(==) string<delimiter(')content(x)delimiter(')> comment(// print what's typed, but surrounded by >< symbols) comment(// script:) -keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\)\))operator(.)ident(eachLine)operator({) +keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\))(\))operator(.)ident(eachLine)operator({) ident(println)operator(()string<delimiter(")content(>)delimiter(")> operator(+) local_variable(it)operator(.)ident(trim)operator(()(\)) operator(+) string<delimiter(")content(<)delimiter(")>(\))operator(;) (}) comment(//----------------------------------------------------------------------------------) @@ -489,8 +489,8 @@ ident(line) operator(=) regexp<delimiter(/)content(XYZZY,"","O'Reilly, Inc","Wal ident(m) operator(=) ident(line) operator(=~) ident(pattern) ident(expected) operator(=) operator([)regexp<delimiter(/)content(XYZZY)delimiter(/)>operator(,) string<delimiter(')delimiter(')>operator(,) regexp<delimiter(/)content(O'Reilly, Inc)delimiter(/)>operator(,) regexp<delimiter(/)content(Wall, Larry)delimiter(/)>operator(,) comment(//') regexp<delimiter(/)content(a )char(\\")content(glug)char(\\")content( bit,)delimiter(/)>operator(,) regexp<delimiter(/)content(5)delimiter(/)>operator(,) regexp<delimiter(/)content(Error, Core Dumped)delimiter(/)>(]) -keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(m)operator(.)ident(size)operator(()(\))operator(.)ident(toInteger)operator(()(\)\)) - keyword(assert) ident(expected)operator([)ident(i)(]) operator(==) operator(()ident(m)operator([)ident(i)(])operator([)integer(2)(]) operator(?) ident(m)operator([)ident(i)(])operator([)integer(2)(]) operator(:) ident(m)operator([)ident(i)(])operator([)integer(1)(]\)) +keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(m)operator(.)ident(size)operator(()(\))operator(.)ident(toInteger)operator(()(\))(\)) + keyword(assert) ident(expected)operator([)ident(i)(]) operator(==) operator(()ident(m)operator([)ident(i)(])operator([)integer(2)(]) operator(?) ident(m)operator([)ident(i)(])operator([)integer(2)(]) operator(:) ident(m)operator([)ident(i)(])operator([)integer(1)(])(\)) comment(//----------------------------------------------------------------------------------) @@ -546,11 +546,11 @@ ident(select2) operator(=) string<delimiter(''')content( )delimiter(''')> comment(// line below must be configured for your unix - this one's cygwin) -ident(format) operator(=) ident(cut2fmt)operator(()operator([)integer(10)operator(,) integer(18)operator(,) integer(26)operator(,) integer(37)operator(,) integer(42)operator(,) integer(47)operator(,) integer(56)(]\)) +ident(format) operator(=) ident(cut2fmt)operator(()operator([)integer(10)operator(,) integer(18)operator(,) integer(26)operator(,) integer(37)operator(,) integer(42)operator(,) integer(47)operator(,) integer(56)(])(\)) keyword(def) method(psgrep)operator(()ident(s)(\)) operator({) ident(out) operator(=) type([]) ident(lines) operator(=) ident(input)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({) local_variable(it)operator(.)ident(size)operator(()(\)) (}) - ident(vars) operator(=) ident(unpack)operator(()ident(format)operator(,) ident(lines)operator([)integer(0)(]\))operator(.)ident(toList)operator(()(\))operator(.)ident(collect)operator({) local_variable(it)operator(.)ident(toLowerCase)operator(()(\))operator(.)ident(trim)operator(()(\)) (}) + ident(vars) operator(=) ident(unpack)operator(()ident(format)operator(,) ident(lines)operator([)integer(0)(])(\))operator(.)ident(toList)operator(()(\))operator(.)ident(collect)operator({) local_variable(it)operator(.)ident(toLowerCase)operator(()(\))operator(.)ident(trim)operator(()(\)) (}) ident(out) operator(+=) ident(lines)operator([)integer(0)(]) ident(lines)operator([)integer(1)operator(..)operator(-)integer(1)(])operator(.)ident(each)operator({) ident(values) operator(=) ident(unpack)operator(()ident(format)operator(,) local_variable(it)(\))operator(.)ident(toList)operator(()(\))operator(.)ident(collect)operator({) @@ -561,14 +561,14 @@ keyword(def) method(psgrep)operator(()ident(s)(\)) operator({) (}) (}) ident(vars)operator(.)ident(eachWithIndex)operator({) ident(var)operator(,) ident(i) operator(->) - ident(binding)operator(.)ident(setVariable)operator(()ident(var)operator(,) ident(values)operator([)ident(i)(]\)) + ident(binding)operator(.)ident(setVariable)operator(()ident(var)operator(,) ident(values)operator([)ident(i)(])(\)) (}) - keyword(if) operator(()keyword(new) ident(GroovyShell)operator(()ident(binding)(\))operator(.)ident(evaluate)operator(()ident(s)(\)\)) ident(out) operator(+=) local_variable(it) + keyword(if) operator(()keyword(new) ident(GroovyShell)operator(()ident(binding)(\))operator(.)ident(evaluate)operator(()ident(s)(\))(\)) ident(out) operator(+=) local_variable(it) (}) keyword(return) string<delimiter(')content(\\n)delimiter(')> operator(+) ident(out)operator(.)ident(join)operator(()string<delimiter(')content(\\n)delimiter(')>(\)) operator(+) string<delimiter(')content(\\n)delimiter(')> (}) keyword(assert) ident(psgrep)operator(()string<delimiter(')content(winpid < 800)delimiter(')>(\)) operator(==) ident(select1) -keyword(assert) ident(psgrep)operator(()string<delimiter(')content(uid % 5 == 0 && command =~ /sh)content($)content(/)delimiter(')>(\)) operator(==) ident(select2) +keyword(assert) ident(psgrep)operator(()string<delimiter(')content(uid % 5 == 0 && command =~ /sh$/)delimiter(')>(\)) operator(==) ident(select2) comment(// Part 2: obtaining text stream from process) comment(// unixScript:) ident(input) operator(=) string<delimiter(')content(ps)delimiter(')>operator(.)ident(execute)operator(()(\))operator(.)ident(text) @@ -694,7 +694,7 @@ type(class) class(IntegerCategory) operator({) keyword(def) ident(ustr) operator(=) ident(input)operator(.)ident(toUpperCase)operator(()(\)) type(int) ident(sum) operator(=) integer(0) ident(romanMap)operator(.)ident(keySet)operator(()(\))operator(.)ident(sort)operator(()(\))operator(.)ident(reverse)operator(()(\))operator(.)ident(each)operator({) ident(key) operator(->) - keyword(while) operator(()ident(ustr)operator(.)ident(startsWith)operator(()ident(romanMap)operator([)ident(key)(]\)\)) operator({) + keyword(while) operator(()ident(ustr)operator(.)ident(startsWith)operator(()ident(romanMap)operator([)ident(key)(])(\))(\)) operator({) ident(sum) operator(+=) ident(key) ident(ustr) operator(-=) ident(romanMap)operator([)ident(key)(]) (}) @@ -722,8 +722,8 @@ integer(100)operator(.)ident(times)operator({) keyword(assert) ident(next) operator(<) integer(76) (}) ident(chars) operator(=) type([]) -operator([)string<delimiter(')content(A)delimiter(')>operator(..)string<delimiter(')content(Z)delimiter(')>operator(,)string<delimiter(')content(a)delimiter(')>operator(..)string<delimiter(')content(z)delimiter(')>operator(,)string<delimiter(')content(0)delimiter(')>operator(..)string<delimiter(')content(9)delimiter(')>operator(,)operator(()string<delimiter(')content(!@)content($)content(%^&*)delimiter(')> keyword(as) pre_type(String)type([])(\))operator(.)ident(toList)operator(()(\)])operator(.)ident(each)operator({)ident(chars) operator(+=) local_variable(it)(}) -ident(password) operator(=) operator(()integer(1)operator(..)integer(8)(\))operator(.)ident(collect)operator({) ident(chars)operator([)ident(random)operator(.)ident(nextInt)operator(()ident(chars)operator(.)ident(size)operator(()(\)\)]) (})operator(.)ident(join)operator(()(\)) +operator([)string<delimiter(')content(A)delimiter(')>operator(..)string<delimiter(')content(Z)delimiter(')>operator(,)string<delimiter(')content(a)delimiter(')>operator(..)string<delimiter(')content(z)delimiter(')>operator(,)string<delimiter(')content(0)delimiter(')>operator(..)string<delimiter(')content(9)delimiter(')>operator(,)operator(()string<delimiter(')content(!@$%^&*)delimiter(')> keyword(as) pre_type(String)type([])(\))operator(.)ident(toList)operator(()(\))(])operator(.)ident(each)operator({)ident(chars) operator(+=) local_variable(it)(}) +ident(password) operator(=) operator(()integer(1)operator(..)integer(8)(\))operator(.)ident(collect)operator({) ident(chars)operator([)ident(random)operator(.)ident(nextInt)operator(()ident(chars)operator(.)ident(size)operator(()(\))(\))(]) (})operator(.)ident(join)operator(()(\)) keyword(assert) ident(password)operator(.)ident(size)operator(()(\)) operator(==) integer(8) comment(//----------------------------------------------------------------------------------) @@ -758,7 +758,7 @@ ident(mean) operator(=) integer(25) ident(sdev) operator(=) integer(2) ident(salary) operator(=) ident(random)operator(.)ident(nextGaussian)operator(()(\)) operator(*) ident(sdev) operator(+) ident(mean) comment(// script:) -ident(printf) string<delimiter(')content(You have been hired at )content(\\$)content(%.2f)delimiter(')>operator(,) ident(salary) +ident(printf) string<delimiter(')content(You have been hired at \\$%.2f)delimiter(')>operator(,) ident(salary) comment(// => You have been hired at $25.05) comment(//----------------------------------------------------------------------------------) @@ -804,10 +804,10 @@ ident(matrix2) operator(=) keyword(new) ident(Matrix)operator(()operator([) operator([)integer(8)operator(,) integer(1)(]) (]) keyword(as) type(double)type([])type([])(\)) -ident(expectedArray) operator(=) operator([)operator([)float(54.0)operator(,) float(30.0)(])operator(,) operator([)float(165.0)operator(,) float(70.0)(]]) keyword(as) type(double)type([])type([]) +ident(expectedArray) operator(=) operator([)operator([)float(54.0)operator(,) float(30.0)(])operator(,) operator([)float(165.0)operator(,) float(70.0)(])(]) keyword(as) type(double)type([])type([]) ident(productArray) operator(=) ident(matrix1)operator(.)ident(times)operator(()ident(matrix2)(\))operator(.)ident(array) -keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(productArray)operator(.)ident(size)operator(()(\)\)) operator({) +keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(productArray)operator(.)ident(size)operator(()(\))(\)) operator({) keyword(assert) ident(productArray)operator([)ident(i)(]) operator(==) ident(expectedArray)operator([)ident(i)(]) (}) comment(//----------------------------------------------------------------------------------) @@ -830,7 +830,7 @@ keyword(assert) pre_type(Integer)operator(.)ident(parseInt)operator(()string<del comment(//----------------------------------------------------------------------------------) comment(// conversionScript:) ident(print) string<delimiter(')content(Gimme a number in decimal, octal, or hex: )delimiter(')> -ident(reader) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\)\)) +ident(reader) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\))(\)) ident(input) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\))operator(.)ident(trim)operator(()(\)) keyword(switch)operator(()ident(input)(\)) operator({) keyword(case) operator(~)string<delimiter(')content(^0x)char(\\\\)content(d+)delimiter(')>operator(:) @@ -844,7 +844,7 @@ ident(println) string<delimiter(')content(Decimal value: )delimiter(')> operator comment(// permissionScript:) ident(print) string<delimiter(')content(Enter file permission in octal: )delimiter(')> -ident(input) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\)\)) +ident(input) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\))(\)) ident(num) operator(=) ident(input)operator(.)ident(readLine)operator(()(\))operator(.)ident(trim)operator(()(\)) ident(permission) operator(=) pre_type(Integer)operator(.)ident(parseInt)operator(()ident(num)operator(,) integer(8)(\)) ident(println) string<delimiter(')content(Decimal value: )delimiter(')> operator(+) ident(permission) @@ -863,7 +863,7 @@ keyword(assert) string<delimiter(')content(It took 2 hours)delimiter(')> operato comment(// you can also use Java's ChoiceFormat) comment(// overkill for this example but extensible and compatible with MessageFormat) -ident(limits) operator(=) operator([)integer(1)operator(,) pre_type(ChoiceFormat)operator(.)ident(nextDouble)operator(()integer(1)(\)]) keyword(as) type(double)type([]) +ident(limits) operator(=) operator([)integer(1)operator(,) pre_type(ChoiceFormat)operator(.)ident(nextDouble)operator(()integer(1)(\))(]) keyword(as) type(double)type([]) ident(names) operator(=) operator([)string<delimiter(')content(century)delimiter(')>operator(,) string<delimiter(')content(centuries)delimiter(')>(]) keyword(as) pre_type(String)type([]) ident(choice) operator(=) keyword(new) pre_type(ChoiceFormat)operator(()ident(limits)operator(,) ident(names)(\)) ident(numCenturies) operator(=) integer(1) @@ -883,7 +883,7 @@ comment(//---------------------------------------------------------------------- comment(// calculating prime factors) keyword(def) method(factorize)operator(()pre_type(BigInteger) ident(orig)(\)) operator({) ident(factors) operator(=) operator([)operator(:)(]) - keyword(def) ident(addFactor) operator(=) operator({) ident(x) operator(->) keyword(if) operator(()ident(factors)operator([)ident(x)(]\)) ident(factors)operator([)ident(x)(]) operator(+=) integer(1) keyword(else) ident(factors)operator([)ident(x)(]) operator(=) integer(1) (}) + keyword(def) ident(addFactor) operator(=) operator({) ident(x) operator(->) keyword(if) operator(()ident(factors)operator([)ident(x)(])(\)) ident(factors)operator([)ident(x)(]) operator(+=) integer(1) keyword(else) ident(factors)operator([)ident(x)(]) operator(=) integer(1) (}) ident(n) operator(=) ident(orig) ident(i) operator(=) integer(2) ident(sqi) operator(=) integer(4) comment(// square of i) @@ -896,7 +896,7 @@ keyword(def) method(factorize)operator(()pre_type(BigInteger) ident(orig)(\)) op ident(sqi) operator(+=) integer(2) operator(*) ident(i) operator(+) integer(1) ident(i) operator(+=) integer(1) (}) - keyword(if) operator(()operator(()ident(n) operator(!=) integer(1)(\)) operator(&&) operator(()ident(n) operator(!=) ident(orig)(\)\)) ident(addFactor) ident(n) + keyword(if) operator(()operator(()ident(n) operator(!=) integer(1)(\)) operator(&&) operator(()ident(n) operator(!=) ident(orig)(\))(\)) ident(addFactor) ident(n) keyword(return) ident(factors) (}) @@ -911,9 +911,9 @@ keyword(def) method(pretty)operator(()ident(factors)(\)) operator({) keyword(return) ident(sb)operator(.)ident(toString)operator(()(\))operator(.)ident(trim)operator(()(\)) (}) -keyword(assert) ident(pretty)operator(()ident(factorize)operator(()integer(2178)(\)\)) operator(==) string<delimiter(')content(2 3**2 11**2)delimiter(')> -keyword(assert) ident(pretty)operator(()ident(factorize)operator(()integer(39887)(\)\)) operator(==) string<delimiter(')content(PRIME)delimiter(')> -keyword(assert) ident(pretty)operator(()ident(factorize)operator(()integer(239322000000000000000000)(\)\)) operator(==) string<delimiter(')content(2**19 3 5**18 39887)delimiter(')> +keyword(assert) ident(pretty)operator(()ident(factorize)operator(()integer(2178)(\))(\)) operator(==) string<delimiter(')content(2 3**2 11**2)delimiter(')> +keyword(assert) ident(pretty)operator(()ident(factorize)operator(()integer(39887)(\))(\)) operator(==) string<delimiter(')content(PRIME)delimiter(')> +keyword(assert) ident(pretty)operator(()ident(factorize)operator(()integer(239322000000000000000000)(\))(\)) operator(==) string<delimiter(')content(2**19 3 5**18 39887)delimiter(')> comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_3.0) @@ -970,7 +970,7 @@ ident(println)operator(()string<delimiter(')content(Dateline: )delimiter(')> operator(+) ident(cal)operator(.)ident(get)operator(()pre_type(Calendar)operator(.)ident(SECOND)(\)) operator(+) string<delimiter(')content(-)delimiter(')> operator(+) ident(cal)operator(.)ident(get)operator(()pre_type(Calendar)operator(.)ident(YEAR)(\)) operator(+) string<delimiter(')content(/)delimiter(')> operator(+) operator(()ident(cal)operator(.)ident(get)operator(()pre_type(Calendar)operator(.)ident(MONTH)(\)) operator(+) integer(1)(\)) operator(+) string<delimiter(')content(/)delimiter(')> - operator(+) ident(cal)operator(.)ident(get)operator(()pre_type(Calendar)operator(.)ident(DATE)(\)\)) + operator(+) ident(cal)operator(.)ident(get)operator(()pre_type(Calendar)operator(.)ident(DATE)(\))(\)) comment(// => Dateline: 7:33:16-2007/1/1) comment(//----------------------------------------------------------------------------------) @@ -984,7 +984,7 @@ type(long) ident(before) operator(=) ident(time) operator(-) ident(difference) comment(// any field of a calendar is incrementable via add(\) and roll(\) methods) ident(cal) operator(=) pre_type(Calendar)operator(.)ident(instance) ident(df) operator(=) keyword(new) pre_type(SimpleDateFormat)operator(()(\)) -ident(printCal) operator(=) operator({)ident(cal) operator(->) ident(df)operator(.)ident(format)operator(()ident(cal)operator(.)ident(time)(\)}) +ident(printCal) operator(=) operator({)ident(cal) operator(->) ident(df)operator(.)ident(format)operator(()ident(cal)operator(.)ident(time)(\))(}) ident(cal)operator(.)ident(set)operator(()integer(2000)operator(,) integer(0)operator(,) integer(1)operator(,) oct(00)operator(,) oct(01)operator(,) integer(0)(\)) keyword(assert) ident(printCal)operator(()ident(cal)(\)) operator(==) string<delimiter(')content(1/01/00 00:01)delimiter(')> comment(// roll minute back by 2 but don't adjust other fields) @@ -1036,7 +1036,7 @@ ident(weeks) operator(=) operator(()ident(difference) operator(-) ident(day ident(println) string<delimiter(")content(()inline<inline_delimiter($)ident(weeks)>content( weeks, )inline<inline_delimiter($)ident(days)>content( days, )inline<inline_delimiter($)ident(hours)>content(:)inline<inline_delimiter($)ident(minutes)>content(:)inline<inline_delimiter($)ident(seconds)>content(\))delimiter(")> comment(// => (438 weeks, 4 days, 23:49:35\)) comment(//----------------------------------------------------------------------------------) -ident(cal) operator(=) pre_type(Calendar)operator(.)ident(getInstance)operator(()pre_type(TimeZone)operator(.)ident(getTimeZone)operator(()string<delimiter(")content(UTC)delimiter(")>(\)\)) +ident(cal) operator(=) pre_type(Calendar)operator(.)ident(getInstance)operator(()pre_type(TimeZone)operator(.)ident(getTimeZone)operator(()string<delimiter(")content(UTC)delimiter(")>(\))(\)) ident(cal)operator(.)ident(set)operator(()integer(1981)operator(,) integer(5)operator(,) integer(16)(\)) comment(// 16 Jun 1981) ident(date1) operator(=) ident(cal)operator(.)ident(time) ident(cal)operator(.)ident(set)operator(()integer(1973)operator(,) integer(0)operator(,) integer(18)(\)) comment(// 18 Jan 1973) @@ -1056,7 +1056,7 @@ ident(year) operator(=) ident(cal)operator(.)ident(get)operator(()pre_type(Calen ident(yearWeek) operator(=) ident(cal)operator(.)ident(get)operator(()pre_type(Calendar)operator(.)ident(WEEK_OF_YEAR)(\))operator(;) ident(df1) operator(=) keyword(new) pre_type(SimpleDateFormat)operator(()string<delimiter(")content(dd/MMM/yy)delimiter(")>(\)) ident(df2) operator(=) keyword(new) pre_type(SimpleDateFormat)operator(()string<delimiter(")content(EEEE)delimiter(")>(\)) -ident(print)operator(()ident(df1)operator(.)ident(format)operator(()ident(cal)operator(.)ident(time)(\)) operator(+) string<delimiter(')content( was a )delimiter(')> operator(+) ident(df2)operator(.)ident(format)operator(()ident(cal)operator(.)ident(time)(\)\)) +ident(print)operator(()ident(df1)operator(.)ident(format)operator(()ident(cal)operator(.)ident(time)(\)) operator(+) string<delimiter(')content( was a )delimiter(')> operator(+) ident(df2)operator(.)ident(format)operator(()ident(cal)operator(.)ident(time)(\))(\)) ident(println) string<delimiter(")content( and was day number )inline<inline_delimiter($)ident(yearDay)>content( and week number )inline<inline_delimiter($)ident(yearWeek)>content( of )inline<inline_delimiter($)ident(year)>delimiter(")> comment(// => 16/Jun/81 was a Tuesday and was day number 167 and week number 25 of 1981) comment(//----------------------------------------------------------------------------------) @@ -1088,7 +1088,7 @@ comment(//---------------------------------------------------------------------- comment(// script:) ident(println) string<delimiter(')content(Press return when ready)delimiter(')> ident(before) operator(=) pre_type(System)operator(.)ident(currentTimeMillis)operator(()(\)) -ident(input) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\)\))operator(.)ident(readLine)operator(()(\)) +ident(input) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\))(\))operator(.)ident(readLine)operator(()(\)) ident(after) operator(=) pre_type(System)operator(.)ident(currentTimeMillis)operator(()(\)) ident(elapsed) operator(=) operator(()ident(after) operator(-) ident(before)(\)) operator(/) integer(1000) ident(println) string<delimiter(")content(You took )inline<inline_delimiter($)ident(elapsed)>content( seconds.)delimiter(")> @@ -1106,7 +1106,7 @@ keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(number type(long) ident(t1) operator(=) pre_type(System)operator(.)ident(currentTimeMillis)operator(()(\)) ident(total) operator(+=) operator(()ident(t1) operator(-) ident(t0)(\)) (}) -ident(println) string<delimiter(")content(On average, sorting )inline<inline_delimiter($)ident(size)>content( random numbers takes )inline<inline_delimiter(${)ident(total / number)inline_delimiter(})>content( milliseconds)delimiter(")> +ident(println) string<delimiter(")content(On average, sorting )inline<inline_delimiter($)ident(size)>content( random numbers takes )inline<inline_delimiter(${)ident(total) operator(/) ident(number)inline_delimiter(})>content( milliseconds)delimiter(")> comment(// => On average, sorting 500 random numbers takes 0.32 milliseconds) comment(//----------------------------------------------------------------------------------) @@ -1174,9 +1174,9 @@ type(class) class(MailHopDelta) operator({) ident(extractHeaders)operator(()ident(mail)(\)) ident(out) operator(=) keyword(new) pre_type(StringBuffer)operator(()(\)) keyword(def) ident(m) operator(=) operator(()ident(mail) operator(=~) regexp<delimiter(/)content((?m\)^Date:)char(\\s)content(+(.*\))delimiter(/)>(\)) - ident(firstDate) operator(=) ident(parseDate)operator(()ident(m)operator([)integer(0)(])operator([)integer(1)(]\)) + ident(firstDate) operator(=) ident(parseDate)operator(()ident(m)operator([)integer(0)(])operator([)integer(1)(])(\)) ident(firstSender) operator(=) operator(()ident(mail) operator(=~) regexp<delimiter(/)content((?m\)^From.*)content(\\@)content(([^)char(\\s)content(>]*\))delimiter(/)>(\))operator([)integer(0)(])operator([)integer(1)(]) - ident(out)operator(()string<delimiter(')content(Sender Recipient Time Delta)delimiter(')>operator(.)ident(split)operator(()string<delimiter(')content( )delimiter(')>(\)\)) + ident(out)operator(()string<delimiter(')content(Sender Recipient Time Delta)delimiter(')>operator(.)ident(split)operator(()string<delimiter(')content( )delimiter(')>(\))(\)) (}) keyword(def) method(parseDate)operator(()ident(date)(\)) operator({) @@ -1213,8 +1213,8 @@ type(class) class(MailHopDelta) operator({) (}) keyword(def) method(out)operator(()ident(line)(\)) operator({) - ident(out) operator(<)operator(<) ident(line)operator([)integer(0)(])operator([)integer(0)operator(..<)operator([)integer(25)operator(,)ident(line)operator([)integer(0)(])operator(.)ident(size)operator(()(\)])operator(.)ident(min)operator(()(\)])operator(.)ident(padRight)operator(()integer(26)(\)) - ident(out) operator(<)operator(<) ident(line)operator([)integer(1)(])operator([)integer(0)operator(..<)operator([)integer(25)operator(,)ident(line)operator([)integer(1)(])operator(.)ident(size)operator(()(\)])operator(.)ident(min)operator(()(\)])operator(.)ident(padRight)operator(()integer(26)(\)) + ident(out) operator(<)operator(<) ident(line)operator([)integer(0)(])operator([)integer(0)operator(..<)operator([)integer(25)operator(,)ident(line)operator([)integer(0)(])operator(.)ident(size)operator(()(\))(])operator(.)ident(min)operator(()(\))(])operator(.)ident(padRight)operator(()integer(26)(\)) + ident(out) operator(<)operator(<) ident(line)operator([)integer(1)(])operator([)integer(0)operator(..<)operator([)integer(25)operator(,)ident(line)operator([)integer(1)(])operator(.)ident(size)operator(()(\))(])operator(.)ident(min)operator(()(\))(])operator(.)ident(padRight)operator(()integer(26)(\)) ident(out) operator(<)operator(<) ident(line)operator([)integer(2)(])operator(.)ident(padRight)operator(()integer(17)(\)) operator(+) string<delimiter(')content( )delimiter(')> ident(out) operator(<)operator(<) ident(line)operator([)integer(3)(]) operator(+) string<delimiter(')content(\\n)delimiter(')> (}) @@ -1224,13 +1224,13 @@ type(class) class(MailHopDelta) operator({) (}) keyword(def) method(process)operator(()(\)) operator({) - ident(out)operator(()operator([)string<delimiter(')content(<origin>)delimiter(')>operator(,) ident(firstSender)operator(,) ident(prettyDate)operator(()ident(firstDate)(\))operator(,) string<delimiter(')delimiter(')>(]\)) + ident(out)operator(()operator([)string<delimiter(')content(<origin>)delimiter(')>operator(,) ident(firstSender)operator(,) ident(prettyDate)operator(()ident(firstDate)(\))operator(,) string<delimiter(')delimiter(')>(])(\)) keyword(def) ident(prevDate) operator(=) ident(firstDate) ident(headers)operator(.)ident(grep)operator(()operator(~)regexp<delimiter(/)content(^Received:)char(\\s)content(from.*)delimiter(/)>(\))operator(.)ident(reverseEach)operator({) ident(hop) operator(->) keyword(def) ident(from) operator(=) operator(()ident(hop) operator(=~) regexp<delimiter(/)content(from)char(\\s)content(+()char(\\S)content(+\)|)content(\\()content((.*?\))content(\\\))delimiter(/)>(\))operator([)integer(0)(])operator([)integer(1)(]) keyword(def) ident(by) operator(=) operator(()ident(hop) operator(=~) regexp<delimiter(/)content(by)char(\\s)content(+()char(\\S)content(+)content(\\.)char(\\S)content(+\))delimiter(/)>(\))operator([)integer(0)(])operator([)integer(1)(]) - keyword(def) ident(hopDate) operator(=) ident(parseDate)operator(()ident(hop)operator([)ident(hop)operator(.)ident(lastIndexOf)operator(()string<delimiter(')content(;)delimiter(')>(\))operator(+)integer(2)operator(..)operator(-)integer(1)(]\)) - ident(out)operator(()operator([)ident(from)operator(,) ident(by)operator(,) ident(prettyDate)operator(()ident(prevDate)(\))operator(,) ident(prettyDelta)operator(()ident(hopDate)operator(.)ident(time) operator(-) ident(prevDate)operator(.)ident(time)(\)]\)) + keyword(def) ident(hopDate) operator(=) ident(parseDate)operator(()ident(hop)operator([)ident(hop)operator(.)ident(lastIndexOf)operator(()string<delimiter(')content(;)delimiter(')>(\))operator(+)integer(2)operator(..)operator(-)integer(1)(])(\)) + ident(out)operator(()operator([)ident(from)operator(,) ident(by)operator(,) ident(prettyDate)operator(()ident(prevDate)(\))operator(,) ident(prettyDelta)operator(()ident(hopDate)operator(.)ident(time) operator(-) ident(prevDate)operator(.)ident(time)(\))(])(\)) ident(prevDate) operator(=) ident(hopDate) (}) keyword(return) ident(out)operator(.)ident(toString)operator(()(\)) @@ -1304,7 +1304,7 @@ keyword(assert) ident(marbleColors)operator(.)ident(join)operator(()string<delim keyword(def) method(commify)operator(()ident(items)(\)) operator({) keyword(if) operator(()operator(!)ident(items)(\)) keyword(return) ident(items) keyword(def) ident(sepchar) operator(=) ident(items)operator(.)ident(find)operator({) local_variable(it) operator(=~) regexp<delimiter(/)content(,)delimiter(/)> (}) operator(?) string<delimiter(')content(; )delimiter(')> operator(:) string<delimiter(')content(, )delimiter(')> - keyword(switch) operator(()ident(items)operator(.)ident(size)operator(()(\)\)) operator({) + keyword(switch) operator(()ident(items)operator(.)ident(size)operator(()(\))(\)) operator({) keyword(case) integer(1)operator(:) keyword(return) ident(items)operator([)integer(0)(]) keyword(case) integer(2)operator(:) keyword(return) ident(items)operator(.)ident(join)operator(()string<delimiter(')content( and )delimiter(')>(\)) (}) @@ -1335,7 +1335,7 @@ recycle tired, old phrases and ponder big, happy thoughts recycle tired, old phrases; ponder big, happy thoughts; and sleep and dream peacefully )delimiter(''')> -keyword(assert) ident(expected) operator(==) string<delimiter(')content(\\n)delimiter(')> operator(+) ident(lists)operator(.)ident(collect)operator({)ident(commify)operator(()local_variable(it)(\)})operator(.)ident(join)operator(()string<delimiter(')content(\\n)delimiter(')>(\)) operator(+) string<delimiter(')content(\\n)delimiter(')> +keyword(assert) ident(expected) operator(==) string<delimiter(')content(\\n)delimiter(')> operator(+) ident(lists)operator(.)ident(collect)operator({)ident(commify)operator(()local_variable(it)(\))(})operator(.)ident(join)operator(()string<delimiter(')content(\\n)delimiter(')>(\)) operator(+) string<delimiter(')content(\\n)delimiter(')> comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_4.3) @@ -1439,14 +1439,14 @@ keyword(assert) ident(firstLetters)operator(.)ident(join)operator(()(\)) operato ident(descending) operator(=) ident(items)operator(.)ident(sort)operator(()(\))operator(.)ident(reverse)operator(()(\)) keyword(assert) ident(descending) operator(==) operator([)string<delimiter(")content(the)delimiter(")>operator(,) string<delimiter(")content(quick)delimiter(")>operator(,) string<delimiter(")content(fox)delimiter(")>operator(,) string<delimiter(")content(brown)delimiter(")>(]) -ident(descendingBySecondLastLetter) operator(=) ident(items)operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->) ident(b)operator([)operator(-)integer(2)(]) operator(<=)operator(>) ident(a)operator([)operator(-)integer(2)(]) (}) +ident(descendingBySecondLastLetter) operator(=) ident(items)operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->) ident(b)operator([)operator(-)integer(2)(]) operator(<=>) ident(a)operator([)operator(-)integer(2)(]) (}) keyword(assert) ident(descendingBySecondLastLetter) operator(==) operator([)string<delimiter(")content(brown)delimiter(")>operator(,) string<delimiter(")content(fox)delimiter(")>operator(,) string<delimiter(")content(the)delimiter(")>operator(,) string<delimiter(")content(quick)delimiter(")>(]) comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_4.11) comment(//----------------------------------------------------------------------------------) comment(// warning: not an exact equivalent, idiomatic use would return copies) -keyword(def) ident(shift2) operator(=) operator({)ident(one) operator(=) ident(friends)operator([)integer(0)(])operator(;) ident(two) operator(=) ident(friends)operator([)integer(1)(])operator(;) integer(2)operator(.)ident(times)operator({)ident(friends)operator(.)ident(remove)operator(()integer(0)(\)}}) +keyword(def) ident(shift2) operator(=) operator({)ident(one) operator(=) ident(friends)operator([)integer(0)(])operator(;) ident(two) operator(=) ident(friends)operator([)integer(1)(])operator(;) integer(2)operator(.)ident(times)operator({)ident(friends)operator(.)ident(remove)operator(()integer(0)(\))(})(}) ident(friends) operator(=) string<delimiter(')content(Peter Paul Mary Jim Tim)delimiter(')>operator(.)ident(split)operator(()string<delimiter(')content( )delimiter(')>(\))operator(.)ident(toList)operator(()(\)) ident(shift2)operator(()(\)) keyword(assert) ident(one) operator(==) string<delimiter(')content(Peter)delimiter(')> @@ -1469,7 +1469,7 @@ type(class) class(Employee) operator({) (}) ident(staff) operator(=) operator([)keyword(new) ident(Employee)operator(()key(name)operator(:)string<delimiter(')content(Jim)delimiter(')>operator(,)key(position)operator(:)string<delimiter(')content(Manager)delimiter(')>operator(,)key(salary)operator(:)integer(26000)(\))operator(,) keyword(new) ident(Employee)operator(()key(name)operator(:)string<delimiter(')content(Jill)delimiter(')>operator(,)key(position)operator(:)string<delimiter(')content(Engineer)delimiter(')>operator(,)key(salary)operator(:)integer(24000)(\))operator(,) - keyword(new) ident(Employee)operator(()key(name)operator(:)string<delimiter(')content(Jack)delimiter(')>operator(,)key(position)operator(:)string<delimiter(')content(Engineer)delimiter(')>operator(,)key(salary)operator(:)integer(22000)(\)]) + keyword(new) ident(Employee)operator(()key(name)operator(:)string<delimiter(')content(Jack)delimiter(')>operator(,)key(position)operator(:)string<delimiter(')content(Engineer)delimiter(')>operator(,)key(salary)operator(:)integer(22000)(\))(]) ident(highestEngineer) operator(=) ident(staff)operator(.)ident(find) operator({) ident(emp) operator(->) ident(emp)operator(.)ident(position) operator(==) string<delimiter(')content(Engineer)delimiter(')> (}) keyword(assert) ident(highestEngineer)operator(.)ident(salary) operator(==) integer(24000) comment(//----------------------------------------------------------------------------------) @@ -1490,7 +1490,7 @@ keyword(assert) operator([)integer(100)operator(,) integer(3)operator(,) integer comment(// strings representing numbers will be sorted alphabetically) keyword(assert) operator([)string<delimiter(')content(100)delimiter(')>operator(,) string<delimiter(')content(3)delimiter(')>operator(,) string<delimiter(')content(20)delimiter(')>(])operator(.)ident(sort)operator(()(\)) operator(==) operator([)string<delimiter(")content(100)delimiter(")>operator(,) string<delimiter(")content(20)delimiter(")>operator(,) string<delimiter(")content(3)delimiter(")>(]) comment(// closure style sorting allows arbitrary expressions for the comparison) -keyword(assert) operator([)string<delimiter(')content(100)delimiter(')>operator(,) string<delimiter(')content(3)delimiter(')>operator(,) string<delimiter(')content(20)delimiter(')>(])operator(.)ident(sort)operator({) ident(a)operator(,)ident(b) operator(->) ident(a)operator(.)ident(toLong)operator(()(\)) operator(<=)operator(>) ident(b)operator(.)ident(toLong)operator(()(\)}) operator(==) operator([)string<delimiter(")content(3)delimiter(")>operator(,) string<delimiter(")content(20)delimiter(")>operator(,) string<delimiter(")content(100)delimiter(")>(]) +keyword(assert) operator([)string<delimiter(')content(100)delimiter(')>operator(,) string<delimiter(')content(3)delimiter(')>operator(,) string<delimiter(')content(20)delimiter(')>(])operator(.)ident(sort)operator({) ident(a)operator(,)ident(b) operator(->) ident(a)operator(.)ident(toLong)operator(()(\)) operator(<=>) ident(b)operator(.)ident(toLong)operator(()(\))(}) operator(==) operator([)string<delimiter(")content(3)delimiter(")>operator(,) string<delimiter(")content(20)delimiter(")>operator(,) string<delimiter(")content(100)delimiter(")>(]) comment(// obtain the following on unix systems using: 'ps ux'.execute(\).text) ident(processInput) operator(=) string<delimiter(''')content( @@ -1498,28 +1498,28 @@ ident(processInput) operator(=) string<delimiter(''')content( 3868 1 3868 3868 con 1005 06:23:34 /usr/bin/bash 3456 3868 3456 3528 con 1005 06:23:39 /usr/bin/ps )delimiter(''')> -ident(nonEmptyLines) operator(=) operator({)local_variable(it)operator(.)ident(trim)operator(()(\)}) +ident(nonEmptyLines) operator(=) operator({)local_variable(it)operator(.)ident(trim)operator(()(\))(}) ident(lines) operator(=) ident(processInput)operator(.)ident(split)operator(()string<delimiter(")char(\\n)delimiter(")>(\))operator(.)ident(findAll)operator(()ident(nonEmptyLines)(\))operator([)integer(1)operator(..)operator(-)integer(1)(]) keyword(def) method(col)operator(()ident(n)operator(,) ident(s)(\)) operator({) ident(s)operator(.)ident(tokenize)operator(()(\))operator([)ident(n)(]) (}) ident(commandIdx) operator(=) integer(7) ident(pidIdx) operator(=) integer(0) ident(ppidIdx) operator(=) integer(1) ident(linesByPid) operator(=) ident(lines)operator(.)ident(sort)operator({) ident(col)operator(()ident(pidIdx)operator(,)local_variable(it)(\))operator(.)ident(toLong)operator(()(\)) (}) -keyword(assert) ident(col)operator(()ident(commandIdx)operator(,) ident(linesByPid)operator([)integer(0)(]\)) operator(==) string<delimiter(')content(/usr/bin/ps)delimiter(')> +keyword(assert) ident(col)operator(()ident(commandIdx)operator(,) ident(linesByPid)operator([)integer(0)(])(\)) operator(==) string<delimiter(')content(/usr/bin/ps)delimiter(')> ident(linesByPpid) operator(=) ident(lines)operator(.)ident(sort)operator({) ident(col)operator(()ident(ppidIdx)operator(,)local_variable(it)(\))operator(.)ident(toLong)operator(()(\)) (}) -keyword(assert) ident(col)operator(()ident(commandIdx)operator(,) ident(linesByPpid)operator([)integer(0)(]\)) operator(==) string<delimiter(')content(/usr/bin/bash)delimiter(')> +keyword(assert) ident(col)operator(()ident(commandIdx)operator(,) ident(linesByPpid)operator([)integer(0)(])(\)) operator(==) string<delimiter(')content(/usr/bin/bash)delimiter(')> comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_4.15) comment(//----------------------------------------------------------------------------------) comment(// sort staff from 4.12 by name) -keyword(assert) ident(staff)operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->) ident(a)operator(.)ident(name) operator(<=)operator(>) ident(b)operator(.)ident(name) (})operator(*.)ident(name) operator(==) operator([)string<delimiter(")content(Jack)delimiter(")>operator(,) string<delimiter(")content(Jill)delimiter(")>operator(,) string<delimiter(")content(Jim)delimiter(")>(]) +keyword(assert) ident(staff)operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->) ident(a)operator(.)ident(name) operator(<=>) ident(b)operator(.)ident(name) (})operator(*.)ident(name) operator(==) operator([)string<delimiter(")content(Jack)delimiter(")>operator(,) string<delimiter(")content(Jill)delimiter(")>operator(,) string<delimiter(")content(Jim)delimiter(")>(]) comment(// sort by first two characters of name and if equal by descending salary) keyword(assert) ident(staff)operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->) ident(astart) operator(=) ident(a)operator(.)ident(name)operator([)integer(0)operator(..)integer(1)(]) ident(bstart) operator(=) ident(b)operator(.)ident(name)operator([)integer(0)operator(..)integer(1)(]) - keyword(if) operator(()ident(astart) operator(==) ident(bstart)(\)) keyword(return) ident(b)operator(.)ident(salary) operator(<=)operator(>) ident(a)operator(.)ident(salary) - keyword(return) ident(astart) operator(<=)operator(>) ident(bstart) + keyword(if) operator(()ident(astart) operator(==) ident(bstart)(\)) keyword(return) ident(b)operator(.)ident(salary) operator(<=>) ident(a)operator(.)ident(salary) + keyword(return) ident(astart) operator(<=>) ident(bstart) (})operator(*.)ident(name) operator(==) operator([)string<delimiter(")content(Jack)delimiter(")>operator(,) string<delimiter(")content(Jim)delimiter(")>operator(,) string<delimiter(")content(Jill)delimiter(")>(]) comment(//----------------------------------------------------------------------------------) @@ -1557,16 +1557,16 @@ ident(words) operator(=) ident(symbols)operator(.)ident(weekdays)operator(.)iden ident(symbols)operator(.)ident(amPmStrings)operator(.)ident(toList)operator(()(\)) ident(expected) operator(=) comment(//) -string<delimiter(')content(AD August February July May October September Tuesday )content(\\n)delimiter(')> operator(+) -string<delimiter(')content(AM BC Friday June Monday PM Sunday Wednesday )content(\\n)delimiter(')> operator(+) -string<delimiter(')content(April December January March November Saturday Thursday )content(\\n)delimiter(')> +string<delimiter(')content(AD August February July May October September Tuesday \\n)delimiter(')> operator(+) +string<delimiter(')content(AM BC Friday June Monday PM Sunday Wednesday \\n)delimiter(')> operator(+) +string<delimiter(')content(April December January March November Saturday Thursday \\n)delimiter(')> type(class) class(WordFormatter) operator({) keyword(def) ident(cols) keyword(def) method(process)operator(()ident(list)(\)) operator({) keyword(def) ident(sb) operator(=) keyword(new) pre_type(StringBuffer)operator(()(\)) - keyword(def) ident(colWidth) operator(=) ident(list)operator(.)ident(max)operator({)local_variable(it)operator(.)ident(size)operator(()(\)})operator(.)ident(size)operator(()(\)) operator(+) integer(1) + keyword(def) ident(colWidth) operator(=) ident(list)operator(.)ident(max)operator({)local_variable(it)operator(.)ident(size)operator(()(\))(})operator(.)ident(size)operator(()(\)) operator(+) integer(1) type(int) ident(columns) operator(=) operator([)ident(cols)operator(/)ident(colWidth)operator(,) integer(1)(])operator(.)ident(max)operator(()(\)) keyword(def) ident(numWords) operator(=) ident(list)operator(.)ident(size)operator(()(\)) type(int) ident(rows) operator(=) operator(()ident(numWords) operator(+) ident(columns) operator(-) integer(1)(\)) operator(/) ident(columns) @@ -1588,14 +1588,14 @@ comment(// use a concrete implementation of Terminal.getTerminalWidth(\)) keyword(def) method(getWinCharWidth)operator(()(\)) operator({) integer(80) (}) comment(// main script) -ident(actual) operator(=) keyword(new) ident(WordFormatter)operator(()key(cols)operator(:)ident(getWinCharWidth)operator(()(\)\))operator(.)ident(process)operator(()ident(words)operator(.)ident(sort)operator(()(\)\)) +ident(actual) operator(=) keyword(new) ident(WordFormatter)operator(()key(cols)operator(:)ident(getWinCharWidth)operator(()(\))(\))operator(.)ident(process)operator(()ident(words)operator(.)ident(sort)operator(()(\))(\)) keyword(assert) ident(actual) operator(==) ident(expected) comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_4.19) comment(//----------------------------------------------------------------------------------) comment(// recursive version is simplest but can be inefficient) -keyword(def) method(fact)operator(()ident(n)(\)) operator({) operator(()ident(n) operator(==) integer(1)(\)) operator(?) integer(1) operator(:) ident(n) operator(*) ident(fact)operator(()ident(n)operator(-)integer(1)(\)}) +keyword(def) method(fact)operator(()ident(n)(\)) operator({) operator(()ident(n) operator(==) integer(1)(\)) operator(?) integer(1) operator(:) ident(n) operator(*) ident(fact)operator(()ident(n)operator(-)integer(1)(\))(}) keyword(assert) ident(fact)operator(()integer(10)(\)) operator(==) integer(3628800) comment(// unwrapped version: note use of BigInteger) keyword(def) method(factorial)operator(()ident(n)(\)) operator({) @@ -1658,7 +1658,7 @@ keyword(def) method(n2pat)operator(()ident(n)operator(,) ident(length)(\)) opera comment(// pat2perm(pat\): turn pattern returned by n2pat(\) into) comment(// permutation of integers.) keyword(def) method(pat2perm)operator(()ident(pat)(\)) operator({) - keyword(def) ident(source) operator(=) operator(()integer(0) operator(..<) ident(pat)operator(.)ident(size)operator(()(\)\))operator(.)ident(collect)operator({) local_variable(it)comment(/*.toString(\)*/) (}) + keyword(def) ident(source) operator(=) operator(()integer(0) operator(..<) ident(pat)operator(.)ident(size)operator(()(\))(\))operator(.)ident(collect)operator({) local_variable(it)comment(/*.toString(\)*/) (}) keyword(def) ident(perm) operator(=) type([]) keyword(while) operator(()ident(pat)operator(.)ident(size)operator(()(\)) operator(>) integer(0)(\)) operator({) keyword(def) ident(next) operator(=) ident(pat)operator(.)ident(remove)operator(()ident(pat)operator(.)ident(size)operator(()(\))operator(-)integer(1)(\)) @@ -1669,14 +1669,14 @@ keyword(def) method(pat2perm)operator(()ident(pat)(\)) operator({) (}) keyword(def) method(n2perm)operator(()ident(n)operator(,) ident(len)(\)) operator({) - ident(pat2perm)operator(()ident(n2pat)operator(()operator(()type(int)(\))ident(n)operator(,)ident(len)(\)\)) + ident(pat2perm)operator(()ident(n2pat)operator(()operator(()type(int)(\))ident(n)operator(,)ident(len)(\))(\)) (}) ident(data) operator(=) operator([)string<delimiter(')content(man)delimiter(')>operator(,) string<delimiter(')content(bites)delimiter(')>operator(,) string<delimiter(')content(dog)delimiter(')>(]) ident(sb) operator(=) keyword(new) pre_type(StringBuffer)operator(()(\)) -ident(numPermutations) operator(=) ident(fact)operator(()ident(data)operator(.)ident(size)operator(()(\)\)) +ident(numPermutations) operator(=) ident(fact)operator(()ident(data)operator(.)ident(size)operator(()(\))(\)) keyword(for) operator(()ident(j) keyword(in) integer(0)operator(..<)ident(numPermutations)(\)) operator({) - keyword(def) ident(permutation) operator(=) ident(n2perm)operator(()ident(j)operator(,) ident(data)operator(.)ident(size)operator(()(\)\))operator(.)ident(collect) operator({) ident(k) operator(->) ident(data)operator([)ident(k)(]) (}) + keyword(def) ident(permutation) operator(=) ident(n2perm)operator(()ident(j)operator(,) ident(data)operator(.)ident(size)operator(()(\))(\))operator(.)ident(collect) operator({) ident(k) operator(->) ident(data)operator([)ident(k)(]) (}) ident(sb) operator(<)operator(<) ident(permutation)operator(.)ident(join)operator(()string<delimiter(')content( )delimiter(')>(\)) operator(+) string<delimiter(')content(\\n)delimiter(')> (}) keyword(assert) string<delimiter(')content(\\n)delimiter(')> operator(+) ident(sb)operator(.)ident(toString)operator(()(\)) operator(==) ident(expected) @@ -1716,9 +1716,9 @@ keyword(assert) operator([)string<delimiter(')content(Banana)delimiter(')>operat ident(age) operator(=) operator([)key(Toddler)operator(:)integer(3)operator(,) key(Unborn)operator(:)integer(0)operator(,) key(Phantasm)operator(:)keyword(null)(]) operator([)string<delimiter(')content(Toddler)delimiter(')>operator(,) string<delimiter(')content(Unborn)delimiter(')>operator(,) string<delimiter(')content(Phantasm)delimiter(')>operator(,) string<delimiter(')content(Relic)delimiter(')>(])operator(.)ident(each)operator({) ident(key) operator(->) ident(print) string<delimiter(")inline<inline_delimiter($)ident(key)>content(: )delimiter(")> - keyword(if) operator(()ident(age)operator(.)ident(containsKey)operator(()ident(key)(\)\)) ident(print) string<delimiter(')content(has key )delimiter(')> + keyword(if) operator(()ident(age)operator(.)ident(containsKey)operator(()ident(key)(\))(\)) ident(print) string<delimiter(')content(has key )delimiter(')> keyword(if) operator(()ident(age)operator(.)ident(containsKey)operator(()ident(key)(\)) operator(&&) ident(age)operator([)ident(key)(])operator(!=)keyword(null)(\)) ident(print) string<delimiter(')content(non-null )delimiter(')> - keyword(if) operator(()ident(age)operator(.)ident(containsKey)operator(()ident(key)(\)) operator(&&) ident(age)operator([)ident(key)(]\)) ident(print) string<delimiter(')content(true )delimiter(')> + keyword(if) operator(()ident(age)operator(.)ident(containsKey)operator(()ident(key)(\)) operator(&&) ident(age)operator([)ident(key)(])(\)) ident(print) string<delimiter(')content(true )delimiter(')> ident(println) string<delimiter(')delimiter(')> (}) comment(// =>) @@ -1778,16 +1778,16 @@ From: someone@somewhere.com ident(from) operator(=) operator([)operator(:)(]) ident(fakedInput)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(each)operator({) ident(matcher) operator(=) operator(()local_variable(it) operator(=~) regexp<delimiter(/)content(^From:)char(\\s)content(+([^)char(\\s)content(>]*\))delimiter(/)>(\)) - keyword(if) operator(()ident(matcher)operator(.)ident(matches)operator(()(\)\)) operator({) + keyword(if) operator(()ident(matcher)operator(.)ident(matches)operator(()(\))(\)) operator({) ident(sender) operator(=) ident(matcher)operator([)integer(0)(])operator([)integer(1)(]) - keyword(if) operator(()ident(from)operator(.)ident(containsKey)operator(()ident(sender)(\)\)) ident(from)operator([)ident(sender)(]) operator(+=) integer(1) + keyword(if) operator(()ident(from)operator(.)ident(containsKey)operator(()ident(sender)(\))(\)) ident(from)operator([)ident(sender)(]) operator(+=) integer(1) keyword(else) ident(from)operator([)ident(sender)(]) operator(=) integer(1) (}) (}) comment(// More useful to sort by number of received mail by person) -ident(from)operator(.)ident(entrySet)operator(()(\))operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->) ident(b)operator(.)ident(value)operator(<=)operator(>)ident(a)operator(.)ident(value)(})operator(.)ident(each) operator({) ident(e)operator(->) - ident(println) string<delimiter(")inline<inline_delimiter(${)ident(e.key)inline_delimiter(})>content(: )inline<inline_delimiter(${)ident(e.value)inline_delimiter(})>delimiter(")> +ident(from)operator(.)ident(entrySet)operator(()(\))operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->) ident(b)operator(.)ident(value)operator(<=>)ident(a)operator(.)ident(value)(})operator(.)ident(each) operator({) ident(e)operator(->) + ident(println) string<delimiter(")inline<inline_delimiter(${)ident(e)operator(.)ident(key)inline_delimiter(})>content(: )inline<inline_delimiter(${)ident(e)operator(.)ident(value)inline_delimiter(})>delimiter(")> (}) comment(// =>) comment(// someone@somewhere.com: 2) @@ -1830,7 +1830,7 @@ comment(// @@PLEAC@@_5.7) comment(//----------------------------------------------------------------------------------) ident(foodsOfColor) operator(=) operator([) key(Yellow)operator(:)operator([)string<delimiter(')content(Banana)delimiter(')>operator(,) string<delimiter(')content(Lemon)delimiter(')>(])operator(,) key(Green)operator(:)operator([)string<delimiter(')content(Apple)delimiter(')>(]) (]) ident(foodsOfColor)operator([)string<delimiter(')content(Green)delimiter(')>(]) operator(+=) string<delimiter(')content(Melon)delimiter(')> -keyword(assert) ident(foodsOfColor) operator(==) operator([)string<delimiter(")content(Green)delimiter(")>operator(:)operator([)string<delimiter(")content(Apple)delimiter(")>operator(,) string<delimiter(")content(Melon)delimiter(")>(])operator(,) string<delimiter(")content(Yellow)delimiter(")>operator(:)operator([)string<delimiter(")content(Banana)delimiter(")>operator(,) string<delimiter(")content(Lemon)delimiter(")>(]]) +keyword(assert) ident(foodsOfColor) operator(==) operator([)string<delimiter(")content(Green)delimiter(")>operator(:)operator([)string<delimiter(")content(Apple)delimiter(")>operator(,) string<delimiter(")content(Melon)delimiter(")>(])operator(,) string<delimiter(")content(Yellow)delimiter(")>operator(:)operator([)string<delimiter(")content(Banana)delimiter(")>operator(,) string<delimiter(")content(Lemon)delimiter(")>(])(]) comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_5.8) @@ -1847,13 +1847,13 @@ doctype(#!/usr/bin/groovy) comment(// usage: foodfind food_or_color") ident(color) operator(=) operator([)key(Apple)operator(:)string<delimiter(')content(red)delimiter(')>operator(,) key(Banana)operator(:)string<delimiter(')content(yellow)delimiter(')>operator(,) key(Lemon)operator(:)string<delimiter(')content(yellow)delimiter(')>operator(,) key(Carrot)operator(:)string<delimiter(')content(orange)delimiter(')>(]) ident(given) operator(=) ident(args)operator([)integer(0)(]) -keyword(if) operator(()ident(color)operator(.)ident(containsKey)operator(()ident(given)(\)\)) - ident(println) string<delimiter(")inline<inline_delimiter($)ident(given)>content( is a food with color )inline<inline_delimiter(${)ident(color[given])inline_delimiter(})>content(.)delimiter(")> -ident(if) operator(()ident(color)operator(.)ident(containsValue)operator(()ident(given)(\)\)) operator({) +keyword(if) operator(()ident(color)operator(.)ident(containsKey)operator(()ident(given)(\))(\)) + ident(println) string<delimiter(")inline<inline_delimiter($)ident(given)>content( is a food with color )inline<inline_delimiter(${)ident(color)operator([)ident(given)(])inline_delimiter(})>content(.)delimiter(")> +ident(if) operator(()ident(color)operator(.)ident(containsValue)operator(()ident(given)(\))(\)) operator({) comment(// could use commify(\) here - see 4.2) ident(foods) operator(=) ident(color)operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(value) operator(==) ident(given)(})operator(.)ident(collect)operator({)local_variable(it)operator(.)ident(key)(}) ident(join) operator(=) ident(foods)operator(.)ident(size)operator(()(\)) operator(==) integer(1) operator(?) string<delimiter(')content(is a food)delimiter(')> operator(:) string<delimiter(')content(are foods)delimiter(')> - ident(println) string<delimiter(")inline<inline_delimiter(${)ident(foods.join(', '\))inline_delimiter(})>content( )inline<inline_delimiter($)ident(join)>content( with color )inline<inline_delimiter(${)ident(given)inline_delimiter(})>content(.)delimiter(")> + ident(println) string<delimiter(")inline<inline_delimiter(${)ident(foods)operator(.)ident(join)operator(()string<delimiter(')content(, )delimiter(')>(\))inline_delimiter(})>content( )inline<inline_delimiter($)ident(join)>content( with color )inline<inline_delimiter(${)ident(given)inline_delimiter(})>content(.)delimiter(")> (}) comment(// foodfind red) comment(// => Apple is a food with color red.) @@ -1871,7 +1871,7 @@ comment(// Sorted by keys) keyword(assert) ident(foodColor)operator(.)ident(keySet)operator(()(\))operator(.)ident(sort)operator(()(\)) operator(==) operator([)string<delimiter(")content(Apple)delimiter(")>operator(,) string<delimiter(")content(Banana)delimiter(")>operator(,) string<delimiter(")content(Carrot)delimiter(")>operator(,) string<delimiter(")content(Cherry)delimiter(")>(]) comment(// you could now iterate through the hash with the sorted keys) keyword(assert) ident(foodColor)operator(.)ident(values)operator(()(\))operator(.)ident(sort)operator(()(\)) operator(==) operator([)string<delimiter(")content(black)delimiter(")>operator(,) string<delimiter(")content(orange)delimiter(")>operator(,) string<delimiter(")content(red)delimiter(")>operator(,) string<delimiter(")content(yellow)delimiter(")>(]) -keyword(assert) ident(foodColor)operator(.)ident(values)operator(()(\))operator(.)ident(sort)operator({)local_variable(it)operator(.)ident(size)operator(()(\)}) operator(==) operator([)string<delimiter(")content(red)delimiter(")>operator(,) string<delimiter(")content(black)delimiter(")>operator(,) string<delimiter(")content(orange)delimiter(")>operator(,) string<delimiter(")content(yellow)delimiter(")>(]) +keyword(assert) ident(foodColor)operator(.)ident(values)operator(()(\))operator(.)ident(sort)operator({)local_variable(it)operator(.)ident(size)operator(()(\))(}) operator(==) operator([)string<delimiter(")content(red)delimiter(")>operator(,) string<delimiter(")content(black)delimiter(")>operator(,) string<delimiter(")content(orange)delimiter(")>operator(,) string<delimiter(")content(yellow)delimiter(")>(]) comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_5.10) @@ -1894,7 +1894,7 @@ ident(foodColor)operator([)string<delimiter(')content(Lemon)delimiter(')>(])oper ident(citrusColor) operator(=) operator([)key(Lemon)operator(:)string<delimiter(')content(yellow)delimiter(')>operator(,) key(Orange)operator(:)string<delimiter(')content(orange)delimiter(')>operator(,) key(Lime)operator(:)string<delimiter(')content(green)delimiter(')>(]) ident(println) ident(foodColor) ident(println) ident(citrusColor) -ident(common) operator(=) ident(foodColor)operator(.)ident(keySet)operator(()(\))operator(.)ident(intersect)operator(()ident(citrusColor)operator(.)ident(keySet)operator(()(\)\)) +ident(common) operator(=) ident(foodColor)operator(.)ident(keySet)operator(()(\))operator(.)ident(intersect)operator(()ident(citrusColor)operator(.)ident(keySet)operator(()(\))(\)) keyword(assert) ident(common) operator(==) operator([)string<delimiter(")content(Lemon)delimiter(")>(]) ident(foodButNotCitrus) operator(=) ident(foodColor)operator(.)ident(keySet)operator(()(\))operator(.)ident(toList)operator(()(\)) operator(-) ident(citrusColor)operator(.)ident(keySet)operator(()(\))operator(.)ident(toList)operator(()(\)) @@ -1926,8 +1926,8 @@ comment(// @@PLEAC@@_5.14) comment(//----------------------------------------------------------------------------------) ident(count) operator(=) operator([)operator(:)(]) ident(letters) operator(=) type([]) -ident(foodColor)operator(.)ident(values)operator(()(\))operator(.)ident(each)operator({) ident(letters)operator(.)ident(addAll)operator(()operator(()local_variable(it) keyword(as) pre_type(String)type([])(\))operator(.)ident(toList)operator(()(\)\)) (}) -ident(letters)operator(.)ident(each)operator({) keyword(if) operator(()ident(count)operator(.)ident(containsKey)operator(()local_variable(it)(\)\)) ident(count)operator([)local_variable(it)(]) operator(+=) integer(1) keyword(else) ident(count)operator([)local_variable(it)(]) operator(=) integer(1) (}) +ident(foodColor)operator(.)ident(values)operator(()(\))operator(.)ident(each)operator({) ident(letters)operator(.)ident(addAll)operator(()operator(()local_variable(it) keyword(as) pre_type(String)type([])(\))operator(.)ident(toList)operator(()(\))(\)) (}) +ident(letters)operator(.)ident(each)operator({) keyword(if) operator(()ident(count)operator(.)ident(containsKey)operator(()local_variable(it)(\))(\)) ident(count)operator([)local_variable(it)(]) operator(+=) integer(1) keyword(else) ident(count)operator([)local_variable(it)(]) operator(=) integer(1) (}) keyword(assert) ident(count) operator(==) operator([)string<delimiter(")content(o)delimiter(")>operator(:)integer(3)operator(,) string<delimiter(")content(d)delimiter(")>operator(:)integer(1)operator(,) string<delimiter(")content(k)delimiter(")>operator(:)integer(1)operator(,) string<delimiter(")content(w)delimiter(")>operator(:)integer(2)operator(,) string<delimiter(")content(r)delimiter(")>operator(:)integer(2)operator(,) string<delimiter(")content(c)delimiter(")>operator(:)integer(1)operator(,) string<delimiter(")content(l)delimiter(")>operator(:)integer(5)operator(,) string<delimiter(")content(g)delimiter(")>operator(:)integer(1)operator(,) string<delimiter(")content(b)delimiter(")>operator(:)integer(1)operator(,) string<delimiter(")content(a)delimiter(")>operator(:)integer(2)operator(,) string<delimiter(")content(y)delimiter(")>operator(:)integer(2)operator(,) string<delimiter(")content(n)delimiter(")>operator(:)integer(1)operator(,) string<delimiter(")content(e)delimiter(")>operator(:)integer(4)(]) comment(//----------------------------------------------------------------------------------) @@ -1949,7 +1949,7 @@ ident(father) operator(=) operator([) (]) keyword(def) method(upline)operator(()ident(person)(\)) operator({) - keyword(while) operator(()ident(father)operator(.)ident(containsKey)operator(()ident(person)(\)\)) operator({) + keyword(while) operator(()ident(father)operator(.)ident(containsKey)operator(()ident(person)(\))(\)) operator({) ident(print) ident(person) operator(+) string<delimiter(')content( )delimiter(')> ident(person) operator(=) ident(father)operator([)ident(person)(]) (}) @@ -1961,11 +1961,11 @@ comment(// => Irad Enoch Cain Adam) ident(children) operator(=) operator([)operator(:)(]) ident(father)operator(.)ident(each) operator({) ident(k)operator(,)ident(v) operator(->) - keyword(if) operator(()operator(!)ident(children)operator(.)ident(containsKey)operator(()ident(v)(\)\)) ident(children)operator([)ident(v)(]) operator(=) type([]) + keyword(if) operator(()operator(!)ident(children)operator(.)ident(containsKey)operator(()ident(v)(\))(\)) ident(children)operator([)ident(v)(]) operator(=) type([]) ident(children)operator([)ident(v)(]) operator(+=) ident(k) (}) keyword(def) method(downline)operator(()ident(person)(\)) operator({) - ident(println) string<delimiter(")inline<inline_delimiter($)ident(person)>content( begat )inline<inline_delimiter(${)ident(children.containsKey(person\)?children[person].join(', '\):'Nobody')inline_delimiter(})>content(.)char(\\n)delimiter(")> + ident(println) string<delimiter(")inline<inline_delimiter($)ident(person)>content( begat )inline<inline_delimiter(${)ident(children)operator(.)ident(containsKey)operator(()ident(person)(\))operator(?)ident(children)operator([)ident(person)(])operator(.)ident(join)operator(()string<delimiter(')content(, )delimiter(')>(\))operator(:)string<delimiter(')content(Nobody)delimiter(')>inline_delimiter(})>content(.)char(\\n)delimiter(")> (}) ident(downline)operator(()string<delimiter(')content(Tubalcain)delimiter(')>(\)) comment(// => Tubalcain begat Nobody.) @@ -1980,8 +1980,8 @@ keyword(new) pre_type(File)operator(()ident(dir)(\))operator(.)ident(eachFile)op keyword(if) operator(()ident(file)operator(.)ident(directory)(\)) keyword(return) ident(file)operator(.)ident(eachLine)operator({) ident(line) operator(->) ident(matcher) operator(=) operator(()ident(line) operator(=~) string<delimiter(')content(^)char(\\\\)content(s*#)char(\\\\)content(s*include)char(\\\\)content(s*<([^>]+\)>)delimiter(')>(\)) - keyword(if) operator(()ident(matcher)operator(.)ident(matches)operator(()(\)\)) operator({) - keyword(if) operator(()operator(!)ident(includes)operator(.)ident(containsKey)operator(()ident(file)operator(.)ident(name)(\)\)) ident(includes)operator([)ident(file)operator(.)ident(name)(]) operator(=) type([]) + keyword(if) operator(()ident(matcher)operator(.)ident(matches)operator(()(\))(\)) operator({) + keyword(if) operator(()operator(!)ident(includes)operator(.)ident(containsKey)operator(()ident(file)operator(.)ident(name)(\))(\)) ident(includes)operator([)ident(file)operator(.)ident(name)(]) operator(=) type([]) ident(includes)operator([)ident(file)operator(.)ident(name)(]) operator(+=) ident(matcher)operator([)integer(0)(])operator([)integer(1)(]) (}) (}) @@ -2016,15 +2016,15 @@ type(class) class(DuNode) operator({) keyword(def) ident(kids) operator(=) type([]) comment(// support for sorting nodes with side) - keyword(def) method(compareTo)operator(()ident(node2)(\)) operator({) ident(size) operator(<=)operator(>) ident(node2)operator(.)ident(size) (}) + keyword(def) method(compareTo)operator(()ident(node2)(\)) operator({) ident(size) operator(<=>) ident(node2)operator(.)ident(size) (}) keyword(def) method(getBasename)operator(()(\)) operator({) - ident(name)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(.*)content(\\/)delimiter(/)>operator(,) string<delimiter(')delimiter(')>(\)) + ident(name)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(.*)char(\\/)delimiter(/)>operator(,) string<delimiter(')delimiter(')>(\)) (}) comment(// returns substring before last "/", otherwise null) keyword(def) method(getParent)operator(()(\)) operator({) - keyword(def) ident(p) operator(=) ident(name)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(\\/)content([^)content(\\/)content(]+)content($)delimiter(/)>operator(,)string<delimiter(')delimiter(')>(\)) + keyword(def) ident(p) operator(=) ident(name)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\/)content([^)char(\\/)content(]+)content($)delimiter(/)>operator(,)string<delimiter(')delimiter(')>(\)) keyword(return) operator(()ident(p) operator(==) ident(name)(\)) operator(?) keyword(null) operator(:) ident(p) (}) (}) @@ -2041,7 +2041,7 @@ type(class) class(DuTree) operator({) comment(// get a node by name, create it if it does not exist yet) keyword(def) method(getOrCreateNode)operator(()ident(name)(\)) operator({) - keyword(if) operator(()operator(!)ident(nodes)operator(.)ident(containsKey)operator(()ident(name)(\)\)) + keyword(if) operator(()operator(!)ident(nodes)operator(.)ident(containsKey)operator(()ident(name)(\))(\)) ident(nodes)operator([)ident(name)(]) operator(=) keyword(new) ident(DuNode)operator(()key(name)operator(:)ident(name)(\)) keyword(return) ident(nodes)operator([)ident(name)(]) (}) @@ -2064,7 +2064,7 @@ type(class) class(DuTree) operator({) keyword(def) method(processInput)operator(()(\)) operator({) keyword(def) ident(name) operator(=) string<delimiter(')delimiter(')> - ident(input)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\)})operator(.)ident(each)operator({) ident(line) operator(->) + ident(input)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\))(})operator(.)ident(each)operator({) ident(line) operator(->) keyword(def) ident(tokens) operator(=) ident(line)operator(.)ident(tokenize)operator(()(\)) keyword(def) ident(size) operator(=) ident(tokens)operator([)integer(0)(]) ident(name) operator(=) ident(tokens)operator([)integer(1)(]) @@ -2184,12 +2184,12 @@ comment(// Overlapping: 123 234 345 456 567 678 789) ident(string) operator(=) string<delimiter(')content(And little lambs eat ivy)delimiter(')> comment(// Greedy version) ident(parts) operator(=) ident(string) operator(=~) regexp<delimiter(/)content((.*\)(l[^s]*s\)(.*\))delimiter(/)> -operator(()integer(1)operator(..)ident(parts)operator(.)ident(groupCount)operator(()(\)\))operator(.)ident(each)operator({) ident(print) string<delimiter(")content(()inline<inline_delimiter(${)ident(parts[0][it])inline_delimiter(})>content(\) )delimiter(")> (})operator(;) ident(print) string<delimiter(')content(\\n)delimiter(')> +operator(()integer(1)operator(..)ident(parts)operator(.)ident(groupCount)operator(()(\))(\))operator(.)ident(each)operator({) ident(print) string<delimiter(")content(()inline<inline_delimiter(${)ident(parts)operator([)integer(0)(])operator([)local_variable(it)(])inline_delimiter(})>content(\) )delimiter(")> (})operator(;) ident(print) string<delimiter(')content(\\n)delimiter(')> comment(// (And little \) (lambs\) ( eat ivy\)) comment(// Reluctant version) ident(parts) operator(=) ident(string) operator(=~) regexp<delimiter(/)content((.*?\)(l[^s]*s\)(.*\))delimiter(/)> -operator(()integer(1)operator(..)ident(parts)operator(.)ident(groupCount)operator(()(\)\))operator(.)ident(each)operator({) ident(print) string<delimiter(")content(()inline<inline_delimiter(${)ident(parts[0][it])inline_delimiter(})>content(\) )delimiter(")> (})operator(;) ident(print) string<delimiter(')content(\\n)delimiter(')> +operator(()integer(1)operator(..)ident(parts)operator(.)ident(groupCount)operator(()(\))(\))operator(.)ident(each)operator({) ident(print) string<delimiter(")content(()inline<inline_delimiter(${)ident(parts)operator([)integer(0)(])operator([)local_variable(it)(])inline_delimiter(})>content(\) )delimiter(")> (})operator(;) ident(print) string<delimiter(')content(\\n)delimiter(')> comment(// (And \) (little lambs\) ( eat ivy\)) comment(//----------------------------------------------------------------------------------) @@ -2210,7 +2210,7 @@ comment(// The preprocessing operations \\X where X is one of l, u, L, and U ar comment(// in the sun regex library but other Java regex libraries may support this. Instead:) ident(src) operator(=) string<delimiter(')content(make all words title-cased)delimiter(')> ident(dst) operator(=) ident(src) -operator(()string<delimiter(')content(a)delimiter(')>operator(..)string<delimiter(')content(z)delimiter(')>(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(([^a-zA-Z]\))delimiter(/)>operator(+)local_variable(it)operator(+)regexp<delimiter(/)content(|)content(\\A)delimiter(/)>operator(+)local_variable(it)operator(,) regexp<delimiter(/)content($)content(1)delimiter(/)>operator(+)local_variable(it)operator(.)ident(toUpperCase)operator(()(\)\)) (}) +operator(()string<delimiter(')content(a)delimiter(')>operator(..)string<delimiter(')content(z)delimiter(')>(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(([^a-zA-Z]\))delimiter(/)>operator(+)local_variable(it)operator(+)regexp<delimiter(/)content(|)content(\\A)delimiter(/)>operator(+)local_variable(it)operator(,) regexp<delimiter(/)content($)content(1)delimiter(/)>operator(+)local_variable(it)operator(.)ident(toUpperCase)operator(()(\))(\)) (}) keyword(assert) ident(dst) operator(==) string<delimiter(')content(Make All Words Title-Cased)delimiter(')> comment(// rename list of dirs) @@ -2237,16 +2237,16 @@ Moliçre hæmoglobin naïve tschüß -random!stuff#here)content(\\u)content(0948 +random!stuff#here)content(\\u0948)content( )delimiter(''')> ident(results) operator(=) string<delimiter(')delimiter(')> ident(greekAlpha) operator(=) string<delimiter(')content(\\u0391)delimiter(')> ident(special) operator(=) string<delimiter(')content(çéüßöñà æï?)delimiter(')> operator(+) ident(greekAlpha) comment(// flag as either Y (alphabetic\) or N (not\)) -ident(words)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\)})operator(.)ident(each)operator({) ident(results) operator(+=) local_variable(it) operator(==~) regexp<delimiter(/)content(^[)char(\\w)delimiter(/)>operator(+)ident(special)operator(+)regexp<delimiter(/)content(]+)content($)delimiter(/)> operator(?)string<delimiter(')content(Y)delimiter(')>operator(:)string<delimiter(')content(N)delimiter(')> (}) +ident(words)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\))(})operator(.)ident(each)operator({) ident(results) operator(+=) local_variable(it) operator(==~) regexp<delimiter(/)content(^[)char(\\w)delimiter(/)>operator(+)ident(special)operator(+)regexp<delimiter(/)content(]+)content($)delimiter(/)> operator(?)string<delimiter(')content(Y)delimiter(')>operator(:)string<delimiter(')content(N)delimiter(')> (}) keyword(assert) ident(results) operator(==) string<delimiter(')content(YYYYYYYYYN)delimiter(')> ident(results) operator(=) string<delimiter(')delimiter(')> -ident(words)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\)})operator(.)ident(each)operator({) ident(results) operator(+=) local_variable(it) operator(==~) regexp<delimiter(/)content(^[^)content(\\p)content({Punct}]+)content($)delimiter(/)> operator(?)string<delimiter(')content(Y)delimiter(')>operator(:)string<delimiter(')content(N)delimiter(')> (}) +ident(words)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\))(})operator(.)ident(each)operator({) ident(results) operator(+=) local_variable(it) operator(==~) regexp<delimiter(/)content(^[^)content(\\p)content({Punct}]+)content($)delimiter(/)> operator(?)string<delimiter(')content(Y)delimiter(')>operator(:)string<delimiter(')content(N)delimiter(')> (}) keyword(assert) ident(results) operator(==) string<delimiter(')content(YYYYYYYYYN)delimiter(')> comment(//----------------------------------------------------------------------------------) @@ -2273,22 +2273,22 @@ comment(// @@PLEAC@@_6.4) comment(//----------------------------------------------------------------------------------) ident(str) operator(=) string<delimiter(')content(groovy.codehaus.org and www.aboutgroovy.com)delimiter(')> ident(re) operator(=) string<delimiter(''')content((?x\) # to enable whitespace and comments - ( # capture the hostname in )content($)content(1 + ( # capture the hostname in $1 (?: # these parens for grouping only (?! [-_] \) # lookahead for neither underscore nor dash - [)content(\\\\)content(w-] + # hostname component - )content(\\\\)content(. # and the domain dot + [)char(\\\\)content(w-] + # hostname component + )char(\\\\)content(. # and the domain dot \) + # now repeat that whole thing a bunch of times [A-Za-z] # next must be a letter - [)content(\\\\)content(w-] + # now trailing domain part - \) # end of )content($)content(1 capture + [)char(\\\\)content(w-] + # now trailing domain part + \) # end of $1 capture )delimiter(''')> ident(finder) operator(=) ident(str) operator(=~) ident(re) ident(out) operator(=) ident(str) operator(()integer(0)operator(..<)ident(finder)operator(.)ident(count)(\))operator(.)ident(each)operator({) ident(adr) operator(=) ident(finder)operator([)local_variable(it)(])operator([)integer(0)(]) - ident(out) operator(=) ident(out)operator(.)ident(replaceAll)operator(()ident(adr)operator(,) string<delimiter(")inline<inline_delimiter($)ident(adr)>content( [)inline<inline_delimiter(${)ident(InetAddress.getByName(adr\).hostAddress)inline_delimiter(})>content(])delimiter(")>(\)) + ident(out) operator(=) ident(out)operator(.)ident(replaceAll)operator(()ident(adr)operator(,) string<delimiter(")inline<inline_delimiter($)ident(adr)>content( [)inline<inline_delimiter(${)pre_type(InetAddress)operator(.)ident(getByName)operator(()ident(adr)(\))operator(.)ident(hostAddress)inline_delimiter(})>content(])delimiter(")>(\)) (}) ident(println) ident(out) comment(// => groovy.codehaus.org [63.246.7.187] and www.aboutgroovy.com [63.246.7.76]) @@ -2297,13 +2297,13 @@ comment(// to match whitespace or #-characters in an extended re you need to esc ident(foo) operator(=) integer(42) ident(str) operator(=) string<delimiter(')content(blah #foo# blah)delimiter(')> ident(re) operator(=) string<delimiter(''')content((?x\) # to enable whitespace and comments - )content(\\\\)content(# # a pound sign - ()content(\\\\)content(w+\) # the variable name - )content(\\\\)content(# # another pound sign + )char(\\\\)content(# # a pound sign + ()char(\\\\)content(w+\) # the variable name + )char(\\\\)content(# # another pound sign )delimiter(''')> ident(finder) operator(=) ident(str) operator(=~) ident(re) ident(found) operator(=) ident(finder)operator([)integer(0)(]) -ident(out) operator(=) ident(str)operator(.)ident(replaceAll)operator(()ident(found)operator([)integer(0)(])operator(,) ident(evaluate)operator(()ident(found)operator([)integer(1)(]\))operator(.)ident(toString)operator(()(\)\)) +ident(out) operator(=) ident(str)operator(.)ident(replaceAll)operator(()ident(found)operator([)integer(0)(])operator(,) ident(evaluate)operator(()ident(found)operator([)integer(1)(])(\))operator(.)ident(toString)operator(()(\))(\)) keyword(assert) ident(out) operator(==) string<delimiter(')content(blah 42 blah)delimiter(')> comment(//----------------------------------------------------------------------------------) @@ -2312,41 +2312,41 @@ comment(//---------------------------------------------------------------------- ident(fish) operator(=) string<delimiter(')content(One fish two fish red fish blue fish)delimiter(')> ident(expected) operator(=) string<delimiter(')content(The third fish is a red one.)delimiter(')> ident(thirdFish) operator(=) regexp<delimiter(/)content((?:)char(\\w)content(+)char(\\s)content(+fish)char(\\s)content(+\){2}()char(\\w)content(+\))char(\\s)content(+fish.*)delimiter(/)> -keyword(assert) ident(expected) operator(==) operator(()ident(fish)operator(.)ident(replaceAll)operator(()ident(thirdFish)operator(,) string<delimiter(')content(The third fish is a )content($)content(1 one.)delimiter(')>(\)\)) +keyword(assert) ident(expected) operator(==) operator(()ident(fish)operator(.)ident(replaceAll)operator(()ident(thirdFish)operator(,) string<delimiter(')content(The third fish is a $1 one.)delimiter(')>(\))(\)) ident(anyFish) operator(=) regexp<delimiter(/)content(()char(\\w)content(+\))char(\\s)content(+fish)char(\\b)delimiter(/)> ident(finder) operator(=) ident(fish) operator(=~) ident(anyFish) comment(// finder contains an array of matched groups) comment(// 2 = third one (index start at 0\), 1 = matched word in group) -ident(out) operator(=) string<delimiter(")content(The third fish is a )inline<inline_delimiter(${)ident(finder[2][1])inline_delimiter(})>content( one.)delimiter(")> +ident(out) operator(=) string<delimiter(")content(The third fish is a )inline<inline_delimiter(${)ident(finder)operator([)integer(2)(])operator([)integer(1)(])inline_delimiter(})>content( one.)delimiter(")> keyword(assert) ident(out) operator(==) ident(expected) ident(evens) operator(=) type([]) operator(()integer(0)operator(..<)ident(finder)operator(.)ident(count)(\))operator(.)ident(findAll)operator({)local_variable(it)operator(%)integer(2)operator(!=)integer(0)(})operator(.)ident(each)operator({) ident(evens) operator(+=) ident(finder)operator([)local_variable(it)(])operator([)integer(1)(]) (}) -ident(println) string<delimiter(")content(Even numbered fish are )inline<inline_delimiter(${)ident(evens.join(' '\))inline_delimiter(})>content(.)delimiter(")> +ident(println) string<delimiter(")content(Even numbered fish are )inline<inline_delimiter(${)ident(evens)operator(.)ident(join)operator(()string<delimiter(')content( )delimiter(')>(\))inline_delimiter(})>content(.)delimiter(")> comment(// => Even numbered fish are two blue.) comment(// one of several ways to do this) ident(pond) operator(=) ident(fish) operator(+) string<delimiter(')content( in the pond)delimiter(')> ident(fishInPond) operator(=) operator(()regexp<delimiter(/)content(()char(\\w)content(+\)()char(\\s)content(+fish)char(\\b)char(\\s)content(*\))delimiter(/)>(\)) operator(*) integer(4) operator(+) regexp<delimiter(/)content((.*\))delimiter(/)> ident(found) operator(=) operator(()ident(pond) operator(=~) ident(fishInPond)(\))operator([)integer(0)(]) -ident(println) operator(()operator(()ident(found)operator([)integer(1)operator(..)integer(6)(]) operator(+) string<delimiter(')content(sushi)delimiter(')> operator(+) ident(found)operator([)integer(8)operator(..)integer(9)(]\))operator(.)ident(join)operator(()(\)\)) +ident(println) operator(()operator(()ident(found)operator([)integer(1)operator(..)integer(6)(]) operator(+) string<delimiter(')content(sushi)delimiter(')> operator(+) ident(found)operator([)integer(8)operator(..)integer(9)(])(\))operator(.)ident(join)operator(()(\))(\)) comment(// => One fish two fish red fish sushi fish in the pond) comment(// find last fish) ident(expected) operator(=) string<delimiter(')content(Last fish is blue)delimiter(')> ident(pond) operator(=) string<delimiter(')content(One fish two fish red fish blue fish swim here.)delimiter(')> ident(finder) operator(=) operator(()ident(pond) operator(=~) ident(anyFish)(\)) -keyword(assert) ident(expected) operator(==) string<delimiter(")content(Last fish is )inline<inline_delimiter(${)ident(finder[finder.count-1][1])inline_delimiter(})>delimiter(")> +keyword(assert) ident(expected) operator(==) string<delimiter(")content(Last fish is )inline<inline_delimiter(${)ident(finder)operator([)ident(finder)operator(.)ident(count)operator(-)integer(1)(])operator([)integer(1)(])inline_delimiter(})>delimiter(")> comment(// => Last fish is blue) comment(// greedy match version of above) ident(finder) operator(=) operator(()ident(pond) operator(=~) regexp<delimiter(/)content(.*)char(\\b)delimiter(/)> operator(+) ident(anyFish)(\)) -keyword(assert) ident(expected) operator(==) string<delimiter(")content(Last fish is )inline<inline_delimiter(${)ident(finder[0][1])inline_delimiter(})>delimiter(")> +keyword(assert) ident(expected) operator(==) string<delimiter(")content(Last fish is )inline<inline_delimiter(${)ident(finder)operator([)integer(0)(])operator([)integer(1)(])inline_delimiter(})>delimiter(")> comment(// last fish match version of above) ident(finder) operator(=) operator(()ident(pond) operator(=~) regexp<delimiter(/)char(\\b)content(()char(\\w)content(+\))char(\\s)content(+fish)char(\\b)content((?!.*)char(\\b)content(fish)char(\\b)content(\))delimiter(/)>(\)) -keyword(assert) ident(expected) operator(==) string<delimiter(")content(Last fish is )inline<inline_delimiter(${)ident(finder[0][1])inline_delimiter(})>delimiter(")> +keyword(assert) ident(expected) operator(==) string<delimiter(")content(Last fish is )inline<inline_delimiter(${)ident(finder)operator([)integer(0)(])operator([)integer(1)(])inline_delimiter(})>delimiter(")> comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_6.6) @@ -2374,11 +2374,11 @@ ident(stripped) operator(=) ident(fakedFile)operator(.)ident(replaceAll)operator keyword(assert) ident(stripExpectations) operator(==) ident(stripped) ident(pattern) operator(=) string<delimiter(''')content((?x\) - ( # capture in )content($)content(1 + ( # capture in $1 Chapter # text string - )content(\\\\)content(s+ # mandatory whitespace - )content(\\\\)content(d+ # decimal number - )content(\\\\)content(s* # optional whitespace + )char(\\\\)content(s+ # mandatory whitespace + )char(\\\\)content(d+ # decimal number + )char(\\\\)content(s* # optional whitespace : # a real colon . * # anything not a newline till end of line \) @@ -2391,7 +2391,7 @@ Chapter 1 Title A paragraph. )delimiter(''')>operator(.)ident(trim)operator(()(\)) -ident(headerfied) operator(=) ident(stripped)operator(.)ident(replaceAll)operator(()ident(pattern)operator(,) string<delimiter(')content(<H1>)content($)content(1</H1>)delimiter(')>(\)) +ident(headerfied) operator(=) ident(stripped)operator(.)ident(replaceAll)operator(()ident(pattern)operator(,) string<delimiter(')content(<H1>$1</H1>)delimiter(')>(\)) keyword(assert) ident(headerfyExpectations) operator(==) ident(headerfied) comment(// one liner equivalent which prints to stdout) @@ -2418,7 +2418,7 @@ END ident(chunkyPattern) operator(=) regexp<delimiter(/)content((?ms\)^START(.*?\)^END)delimiter(/)> ident(finder) operator(=) ident(fakeFileInput) operator(=~) ident(chunkyPattern) operator(()integer(0)operator(..<)ident(finder)operator(.)ident(count)(\))operator(.)ident(each) operator({) - ident(println) string<delimiter(")content(Chunk #)inline<inline_delimiter($)local_variable(it)>content( contains )inline<inline_delimiter(${)ident(new StringTokenizer(finder[it][1],'\\n'\).countTokens(\))inline_delimiter(})>content( lines.)delimiter(")> + ident(println) string<delimiter(")content(Chunk #)inline<inline_delimiter($)local_variable(it)>content( contains )inline<inline_delimiter(${)keyword(new) pre_type(StringTokenizer)operator(()ident(finder)operator([)local_variable(it)(])operator([)integer(1)(])operator(,)string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(countTokens)operator(()(\))inline_delimiter(})>content( lines.)delimiter(")> (}) comment(// =>) comment(// Chunk #0 contains 2 lines.) @@ -2451,7 +2451,7 @@ vwx yz! )delimiter(''')> ident(chunks) operator(=) ident(fakedFiletext)operator(.)ident(split)operator(()regexp<delimiter(/)content((?m\)^)content(\\.)content((Ch|Se|Ss\))content($)delimiter(/)>(\)) -ident(println) string<delimiter(")content(I read )inline<inline_delimiter(${)ident(chunks.size(\))inline_delimiter(})>content( chunks.)delimiter(")> +ident(println) string<delimiter(")content(I read )inline<inline_delimiter(${)ident(chunks)operator(.)ident(size)operator(()(\))inline_delimiter(})>content( chunks.)delimiter(")> comment(// => I read 10 chunks.) comment(//----------------------------------------------------------------------------------) @@ -2476,10 +2476,10 @@ line CCC Done. )delimiter(''')>operator(.)ident(trim)operator(()(\)) -ident(examplePattern) operator(=) regexp<delimiter(/)content((?ms\)<XMP>(.*?\)<)content(\\/)content(XMP>)delimiter(/)> +ident(examplePattern) operator(=) regexp<delimiter(/)content((?ms\)<XMP>(.*?\)<)char(\\/)content(XMP>)delimiter(/)> ident(finder) operator(=) ident(htmlContent) operator(=~) ident(examplePattern) operator(()integer(0)operator(..<)ident(finder)operator(.)ident(count)(\))operator(.)ident(each) operator({) - ident(println) string<delimiter(")content(Example )inline<inline_delimiter(${)ident(it+1)inline_delimiter(})>content(:)delimiter(")> + ident(println) string<delimiter(")content(Example )inline<inline_delimiter(${)local_variable(it)operator(+)integer(1)inline_delimiter(})>content(:)delimiter(")> ident(println) ident(finder)operator([)local_variable(it)(])operator([)integer(1)(]) (}) comment(// =>) @@ -2519,10 +2519,10 @@ ident(fakedMailInput)operator(.)ident(split)operator(()string<delimiter(')conten keyword(if) operator(()ident(m)(\)) operator({) ident(addr) operator(=) ident(m)operator([)integer(0)(])operator([)integer(1)(]) operator(=~) regexp<delimiter(/)content(([^<>(\),;)char(\\s)content(]+)content(\\@)content([^<>(\),;)char(\\s)content(]+\))delimiter(/)> ident(x) operator(=) ident(addr)operator([)integer(0)(])operator([)integer(1)(]) - keyword(if) operator(()ident(seen)operator(.)ident(containsKey)operator(()ident(x)(\)\)) ident(seen)operator([)ident(x)(]) operator(+=) integer(1) keyword(else) ident(seen)operator([)ident(x)(]) operator(=) integer(1) + keyword(if) operator(()ident(seen)operator(.)ident(containsKey)operator(()ident(x)(\))(\)) ident(seen)operator([)ident(x)(]) operator(+=) integer(1) keyword(else) ident(seen)operator([)ident(x)(]) operator(=) integer(1) (}) (}) -ident(seen)operator(.)ident(each)operator({) ident(k)operator(,)ident(v) operator(->) ident(println) string<delimiter(")content(Address )inline<inline_delimiter($)ident(k)>content( seen )inline<inline_delimiter($)ident(v)>content( time)inline<inline_delimiter(${)ident(v==1?'':'s')inline_delimiter(})>content(.)delimiter(")> (}) +ident(seen)operator(.)ident(each)operator({) ident(k)operator(,)ident(v) operator(->) ident(println) string<delimiter(")content(Address )inline<inline_delimiter($)ident(k)>content( seen )inline<inline_delimiter($)ident(v)>content( time)inline<inline_delimiter(${)ident(v)operator(==)integer(1)operator(?)string<delimiter(')delimiter(')>operator(:)string<delimiter(')content(s)delimiter(')>inline_delimiter(})>content(.)delimiter(")> (}) comment(// =>) comment(// Address noone@nowhere.com seen 1 time.) comment(// Address someone@somewhere.com seen 2 times.) @@ -2542,13 +2542,13 @@ keyword(def) method(glob2pat)operator(()ident(globstr)(\)) operator({) keyword(def) ident(patmap) operator(=) operator([) string<delimiter(')content(*)delimiter(')>operator(:)string<delimiter(')content(.*)delimiter(')>operator(,) string<delimiter(')content(?)delimiter(')>operator(:)string<delimiter(')content(.)delimiter(')>operator(,) string<delimiter(')content([)delimiter(')>operator(:)string<delimiter(')content([)delimiter(')>operator(,) string<delimiter(')content(])delimiter(')>operator(:)string<delimiter(')content(])delimiter(')> (]) keyword(def) ident(result) operator(=) string<delimiter(')content((?m\)^)delimiter(')> string<delimiter(')content(^)delimiter(')> operator(+) ident(globstr)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((.\))delimiter(/)>(\)) operator({) ident(all)operator(,) ident(c) operator(->) - ident(result) operator(+=) operator(()ident(patmap)operator(.)ident(containsKey)operator(()ident(c)(\)) operator(?) ident(patmap)operator([)ident(c)(]) operator(:) pre_type(Pattern)operator(.)ident(quote)operator(()ident(c)(\)\)) + ident(result) operator(+=) operator(()ident(patmap)operator(.)ident(containsKey)operator(()ident(c)(\)) operator(?) ident(patmap)operator([)ident(c)(]) operator(:) pre_type(Pattern)operator(.)ident(quote)operator(()ident(c)(\))(\)) (}) ident(result) operator(+) string<delimiter(')content($)delimiter(')> (}) keyword(def) method(checkNumMatches)operator(()ident(pat)operator(,) ident(count)(\)) operator({) - keyword(assert) operator(()ident(names) operator(=~) ident(glob2pat)operator(()ident(pat)(\)\))operator(.)ident(count) operator(==) ident(count) + keyword(assert) operator(()ident(names) operator(=~) ident(glob2pat)operator(()ident(pat)(\))(\))operator(.)ident(count) operator(==) ident(count) (}) ident(checkNumMatches)operator(()string<delimiter(')content(*.*)delimiter(')>operator(,) integer(3)(\)) @@ -2565,14 +2565,14 @@ ident(states) operator(=) string<delimiter(')content(CO ON MI WI MN)delimiter(') keyword(def) method(popgrep1)operator(()ident(file)(\)) operator({) ident(file)operator(.)ident(eachLine)operator({) ident(line) operator(->) - keyword(if) operator(()ident(states)operator(.)ident(any)operator({) ident(line) operator(=~) regexp<delimiter(/)char(\\b)inline<inline_delimiter($)local_variable(it)>char(\\b)delimiter(/)> (}\)) ident(println) ident(line) + keyword(if) operator(()ident(states)operator(.)ident(any)operator({) ident(line) operator(=~) regexp<delimiter(/)char(\\b)inline<inline_delimiter($)local_variable(it)>char(\\b)delimiter(/)> (})(\)) ident(println) ident(line) (}) (}) comment(// popgrep1(new File('path_to_file'\)\)) comment(// version 2: eval strings; fast but hard to quote (SLOW\)) keyword(def) method(popgrep2)operator(()ident(file)(\)) operator({) - keyword(def) ident(code) operator(=) string<delimiter(')content(def found = false)content(\\n)delimiter(')> + keyword(def) ident(code) operator(=) string<delimiter(')content(def found = false\\n)delimiter(')> ident(states)operator(.)ident(each)operator({) ident(code) operator(+=) string<delimiter(")content(if (!found && line =~ /)char(\\\\)content(b)inline<inline_delimiter($)local_variable(it)>char(\\\\)content(b/\) found = true)char(\\n)delimiter(")> (}) @@ -2583,7 +2583,7 @@ comment(// popgrep2(new File('path_to_file'\)\)) comment(// version 2b: eval using switch/case (not in Perl cookbook\) (SLOW\)) keyword(def) method(popgrep2b)operator(()ident(file)(\)) operator({) - keyword(def) ident(code) operator(=) string<delimiter(')content(switch(line\) {)content(\\n)delimiter(')> + keyword(def) ident(code) operator(=) string<delimiter(')content(switch(line\) {\\n)delimiter(')> ident(states)operator(.)ident(each)operator({) ident(code) operator(+=) string<delimiter(")content(case ~/.*)char(\\\\)content(b)inline<inline_delimiter($)local_variable(it)>char(\\\\)content(b.*/:)char(\\n)content(println line;break)char(\\n)delimiter(")> (}) @@ -2595,7 +2595,7 @@ comment(// popgrep2b(new File('path_to_file'\)\)) comment(// version3: build a match_any function as a GString) keyword(def) method(popgrep3)operator(()ident(file)(\)) operator({) keyword(def) ident(code) operator(=) ident(states)operator(.)ident(collect)operator({) string<delimiter(")content(line =~ /)char(\\\\)content(b)inline<inline_delimiter($)local_variable(it)>char(\\\\)content(b/)delimiter(")> (})operator(.)ident(join)operator(()string<delimiter(')content(||)delimiter(')>(\)) - ident(file)operator(.)ident(eachLine)operator({) ident(line) operator(=) local_variable(it)operator(;) keyword(if) operator(()ident(evaluate)operator(()ident(code)(\)\)) ident(println) ident(line) (}) + ident(file)operator(.)ident(eachLine)operator({) ident(line) operator(=) local_variable(it)operator(;) keyword(if) operator(()ident(evaluate)operator(()ident(code)(\))(\)) ident(println) ident(line) (}) (}) comment(// popgrep3(new File('path_to_file'\)\)) @@ -2603,7 +2603,7 @@ comment(// version4: pretty fast, but simple: compile all re's first:) ident(patterns) operator(=) ident(states)operator(.)ident(collect)operator({) operator(~)regexp<delimiter(/)char(\\b)inline<inline_delimiter($)local_variable(it)>char(\\b)delimiter(/)> (}) keyword(def) method(popgrep4)operator(()ident(file)(\)) operator({) ident(file)operator(.)ident(eachLine)operator({) ident(line) operator(->) - keyword(if) operator(()ident(patterns)operator(.)ident(any)operator({) local_variable(it)operator(.)ident(matcher)operator(()ident(line)(\)}\)) ident(println) ident(line) + keyword(if) operator(()ident(patterns)operator(.)ident(any)operator({) local_variable(it)operator(.)ident(matcher)operator(()ident(line)(\))(})(\)) ident(println) ident(line) (}) (}) comment(// popgrep4(new File('path_to_file'\)\)) @@ -2621,7 +2621,7 @@ comment(// version5b: faster (like 5 but compiled outside loop\)) ident(pattern) operator(=) operator(~)ident(states)operator(.)ident(collect)operator({) regexp<delimiter(/)char(\\b)inline<inline_delimiter($)local_variable(it)>char(\\b)delimiter(/)> (})operator(.)ident(join)operator(()string<delimiter(')content(|)delimiter(')>(\)) keyword(def) method(popgrep5b)operator(()ident(file)(\)) operator({) ident(file)operator(.)ident(eachLine)operator({) ident(line) operator(->) - keyword(if) operator(()ident(pattern)operator(.)ident(matcher)operator(()ident(line)(\)\)) ident(println) ident(line) + keyword(if) operator(()ident(pattern)operator(.)ident(matcher)operator(()ident(line)(\))(\)) ident(println) ident(line) (}) (}) comment(// popgrep5b(new File('path_to_file'\)\)) @@ -2644,23 +2644,23 @@ both cat and dog neither just a cat just a dog -)delimiter(''')>operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\)}) +)delimiter(''')>operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\))(}) keyword(def) method(matchAny)operator(()ident(line)operator(,) ident(patterns)(\)) operator({) ident(patterns)operator(.)ident(any)operator({) ident(line) operator(=~) local_variable(it) (}) (}) keyword(def) method(matchAll)operator(()ident(line)operator(,) ident(patterns)(\)) operator({) ident(patterns)operator(.)ident(every)operator({) ident(line) operator(=~) local_variable(it) (}) (}) -keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAny)operator(()local_variable(it)operator(,) operator([)string<delimiter(')content(cat)delimiter(')>operator(,)string<delimiter(')content(dog)delimiter(')>(]\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(3) -keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAny)operator(()local_variable(it)operator(,) operator([)string<delimiter(')content(cat)content($)delimiter(')>operator(,)string<delimiter(')content(^n.*)delimiter(')>(]\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(2) -keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAll)operator(()local_variable(it)operator(,) operator([)string<delimiter(')content(cat)delimiter(')>operator(,)string<delimiter(')content(dog)delimiter(')>(]\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(1) -keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAll)operator(()local_variable(it)operator(,) operator([)string<delimiter(')content(cat)content($)delimiter(')>operator(,)string<delimiter(')content(^n.*)delimiter(')>(]\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(0) +keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAny)operator(()local_variable(it)operator(,) operator([)string<delimiter(')content(cat)delimiter(')>operator(,)string<delimiter(')content(dog)delimiter(')>(])(\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(3) +keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAny)operator(()local_variable(it)operator(,) operator([)string<delimiter(')content(cat$)delimiter(')>operator(,)string<delimiter(')content(^n.*)delimiter(')>(])(\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(2) +keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAll)operator(()local_variable(it)operator(,) operator([)string<delimiter(')content(cat)delimiter(')>operator(,)string<delimiter(')content(dog)delimiter(')>(])(\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(1) +keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAll)operator(()local_variable(it)operator(,) operator([)string<delimiter(')content(cat$)delimiter(')>operator(,)string<delimiter(')content(^n.*)delimiter(')>(])(\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(0) comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_6.11) comment(//----------------------------------------------------------------------------------) comment(// patternCheckingScript:) -ident(prompt) operator(=) string<delimiter(')content(\\n)content(> )delimiter(')> +ident(prompt) operator(=) string<delimiter(')content(\\n> )delimiter(')> ident(print) string<delimiter(')content(Enter patterns to check:)delimiter(')> operator(+) ident(prompt) -keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\)\))operator(.)ident(eachLine)operator({) ident(line) operator(->) +keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\))(\))operator(.)ident(eachLine)operator({) ident(line) operator(->) keyword(try) operator({) pre_type(Pattern)operator(.)ident(compile)operator(()ident(line)(\)) ident(print) string<delimiter(')content(Valid)delimiter(')> operator(+) ident(prompt) @@ -2685,12 +2685,12 @@ comment(//---------------------------------------------------------------------- ident(src) operator(=) string<delimiter(')content(dierk könig)delimiter(')> comment(// simplistic with locale issue) ident(dst) operator(=) ident(src) -operator(()string<delimiter(')content(a)delimiter(')>operator(..)string<delimiter(')content(z)delimiter(')>(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?<=[^a-zA-Z]\))delimiter(/)>operator(+)local_variable(it)operator(+)regexp<delimiter(/)content(|)content(\\A)delimiter(/)>operator(+)local_variable(it)operator(,) local_variable(it)operator(.)ident(toUpperCase)operator(()(\)\)) (}) +operator(()string<delimiter(')content(a)delimiter(')>operator(..)string<delimiter(')content(z)delimiter(')>(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?<=[^a-zA-Z]\))delimiter(/)>operator(+)local_variable(it)operator(+)regexp<delimiter(/)content(|)content(\\A)delimiter(/)>operator(+)local_variable(it)operator(,) local_variable(it)operator(.)ident(toUpperCase)operator(()(\))(\)) (}) ident(println) ident(dst) comment(// => Dierk KöNig) comment(// locale avoidance) ident(dst) operator(=) ident(src) -operator(()string<delimiter(')content(a)delimiter(')>operator(..)string<delimiter(')content(z)delimiter(')>(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?<=)content(\\A)content(|)char(\\b)content(\))delimiter(/)>operator(+)local_variable(it)operator(,) local_variable(it)operator(.)ident(toUpperCase)operator(()(\)\)) (}) +operator(()string<delimiter(')content(a)delimiter(')>operator(..)string<delimiter(')content(z)delimiter(')>(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?<=)content(\\A)content(|)char(\\b)content(\))delimiter(/)>operator(+)local_variable(it)operator(,) local_variable(it)operator(.)ident(toUpperCase)operator(()(\))(\)) (}) ident(println) ident(dst) comment(// => Dierk König) comment(//----------------------------------------------------------------------------------) @@ -2722,14 +2722,14 @@ blaster blasters blasting blasts -)delimiter(''')>operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\)}) -ident(metrics) operator(=) operator([)keyword(new) ident(Levenshtein)operator(()(\))operator(,) keyword(new) ident(MongeElkan)operator(()(\))operator(,) keyword(new) ident(JaroWinkler)operator(()(\))operator(,) keyword(new) ident(Soundex)operator(()(\)]) +)delimiter(''')>operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\))(}) +ident(metrics) operator(=) operator([)keyword(new) ident(Levenshtein)operator(()(\))operator(,) keyword(new) ident(MongeElkan)operator(()(\))operator(,) keyword(new) ident(JaroWinkler)operator(()(\))operator(,) keyword(new) ident(Soundex)operator(()(\))(]) keyword(def) method(out)operator(()ident(name)operator(,) ident(results)(\)) operator({) - ident(print) ident(name)operator(.)ident(padLeft)operator(()integer(14)(\)) operator(+) string<delimiter(')content( )delimiter(')>operator(;) ident(results)operator(.)ident(each)operator({)ident(print)operator(()local_variable(it)operator(.)ident(padRight)operator(()integer(16)(\)\)})operator(;) ident(println)operator(()(\)) + ident(print) ident(name)operator(.)ident(padLeft)operator(()integer(14)(\)) operator(+) string<delimiter(')content( )delimiter(')>operator(;) ident(results)operator(.)ident(each)operator({)ident(print)operator(()local_variable(it)operator(.)ident(padRight)operator(()integer(16)(\))(\))(})operator(;) ident(println)operator(()(\)) (}) -keyword(def) method(outr)operator(()ident(name)operator(,) ident(results)(\))operator({)ident(out)operator(()ident(name)operator(,) ident(results)operator(.)ident(collect)operator({)string<delimiter(')delimiter(')>operator(+)operator(()operator(()type(int)(\))operator(()local_variable(it)operator(*)integer(100)(\)\))operator(/)integer(100)(}\)}) +keyword(def) method(outr)operator(()ident(name)operator(,) ident(results)(\))operator({)ident(out)operator(()ident(name)operator(,) ident(results)operator(.)ident(collect)operator({)string<delimiter(')delimiter(')>operator(+)operator(()operator(()type(int)(\))operator(()local_variable(it)operator(*)integer(100)(\))(\))operator(/)integer(100)(})(\))(}) ident(out) operator(()string<delimiter(')content(Word/Metric)delimiter(')>operator(,) ident(metrics)operator(.)ident(collect)operator({)local_variable(it)operator(.)ident(shortDescriptionString)(}) (\)) -ident(candidates)operator(.)ident(each)operator({) ident(w) operator(->) ident(outr)operator(()ident(w)operator(,) ident(metrics)operator(.)ident(collect)operator({) ident(m) operator(->) ident(m)operator(.)ident(getSimilarity)operator(()ident(target)operator(,) ident(w)(\)}) (\)}) +ident(candidates)operator(.)ident(each)operator({) ident(w) operator(->) ident(outr)operator(()ident(w)operator(,) ident(metrics)operator(.)ident(collect)operator({) ident(m) operator(->) ident(m)operator(.)ident(getSimilarity)operator(()ident(target)operator(,) ident(w)(\))(}) (\))(}) comment(// =>) comment(// Word/Metric Levenshtein MongeElkan JaroWinkler Soundex) comment(// quick 0 0.11 0 0.66) @@ -2773,12 +2773,12 @@ comment(// you to swap patterns without changing the buffer position) ident(text) operator(=) string<delimiter(')content(the year 1752 lost 10 days on the 3rd of September)delimiter(')> ident(p) operator(=) operator(~)regexp<delimiter(/)content((?<=)char(\\D)content(\)()char(\\d)content(+\))delimiter(/)> ident(m) operator(=) ident(p)operator(.)ident(matcher)operator(()ident(text)(\)) -keyword(while) operator(()ident(m)operator(.)ident(find)operator(()(\)\)) operator({) +keyword(while) operator(()ident(m)operator(.)ident(find)operator(()(\))(\)) operator({) ident(println) string<delimiter(')content(Found )delimiter(')> operator(+) ident(m)operator(.)ident(group)operator(()(\)) operator(+) string<delimiter(')content( starting at pos )delimiter(')> operator(+) ident(m)operator(.)ident(start)operator(()(\)) operator(+) string<delimiter(')content( and ending at pos )delimiter(')> operator(+) ident(m)operator(.)ident(end)operator(()(\)) (}) comment(// now reset pos back to between 1st and 2nd numbers) -keyword(if) operator(()ident(m)operator(.)ident(find)operator(()integer(16)(\)\)) operator({) ident(println) string<delimiter(')content(Found )delimiter(')> operator(+) ident(m)operator(.)ident(group)operator(()(\)) (}) +keyword(if) operator(()ident(m)operator(.)ident(find)operator(()integer(16)(\))(\)) operator({) ident(println) string<delimiter(')content(Found )delimiter(')> operator(+) ident(m)operator(.)ident(group)operator(()(\)) (}) comment(// =>) comment(// Found 1752 starting at pos 9 and ending at pos 13) comment(// Found 10 starting at pos 19 and ending at pos 21) @@ -2789,8 +2789,8 @@ comment(// Alternatively you can use Scanner in Java 5-7+:) ident(p1) operator(=) operator(~)regexp<delimiter(/)content((?<=)char(\\D)content(\)()char(\\d)content(+\))delimiter(/)> ident(p2) operator(=) operator(~)regexp<delimiter(/)char(\\S)content(+)delimiter(/)> ident(s) operator(=) keyword(new) pre_type(Scanner)operator(()ident(text)(\)) -keyword(while) operator(()operator(()ident(f) operator(=) ident(s)operator(.)ident(findInLine)operator(()ident(p1)(\)\)\)) operator({) ident(println) string<delimiter(')content(Found: )delimiter(')> operator(+) ident(f) (}) -keyword(if) operator(()operator(()ident(f) operator(=) ident(s)operator(.)ident(findInLine)operator(()ident(p2)(\)\)\)) operator({) ident(println) string<delimiter(")content(Found )inline<inline_delimiter($)ident(f)>content( after the last number.)delimiter(")> (}) +keyword(while) operator(()operator(()ident(f) operator(=) ident(s)operator(.)ident(findInLine)operator(()ident(p1)(\))(\))(\)) operator({) ident(println) string<delimiter(')content(Found: )delimiter(')> operator(+) ident(f) (}) +keyword(if) operator(()operator(()ident(f) operator(=) ident(s)operator(.)ident(findInLine)operator(()ident(p2)(\))(\))(\)) operator({) ident(println) string<delimiter(")content(Found )inline<inline_delimiter($)ident(f)>content( after the last number.)delimiter(")> (}) comment(// =>) comment(// Found: 1752) comment(// Found: 10) @@ -2804,11 +2804,11 @@ ident(html) operator(=) string<delimiter(')content(<b><i>this</i> and <i>that</i ident(greedyHtmlStripPattern) operator(=) operator(~)regexp<delimiter(/)content((?m\)<.*>)delimiter(/)> comment(// not good) ident(nonGreedyHtmlStripPattern) operator(=) operator(~)regexp<delimiter(/)content((?m\)<.*?>)delimiter(/)> comment(// not great) -ident(simpleNested) operator(=) operator(~)regexp<delimiter(/)content((?mx\)<b><i>(.*?\)<)content(\\/)content(i><)content(\\/)content(b>)delimiter(/)> +ident(simpleNested) operator(=) operator(~)regexp<delimiter(/)content((?mx\)<b><i>(.*?\)<)char(\\/)content(i><)char(\\/)content(b>)delimiter(/)> comment(// match BEGIN, then not BEGIN, then END) ident(generalPattern) operator(=) operator(~)regexp<delimiter(/)content(BEGIN((?:(?!BEGIN\).\)*\)END)delimiter(/)> -ident(betterButInefficient1) operator(=) operator(~)regexp<delimiter(/)content((?mx\)<b><i>( (?: (?!<)content(\\/)content(b>|<)content(\\/)content(i>\). \)* \) <)content(\\/)content(i><)content(\\/)content(b>)delimiter(/)> -ident(betterButInefficient2) operator(=) operator(~)regexp<delimiter(/)content((?mx\)<b><i>( (?: (?!<)content(\\/)content([ib]>\). \)* \) <)content(\\/)content(i><)content(\\/)content(b>)delimiter(/)> +ident(betterButInefficient1) operator(=) operator(~)regexp<delimiter(/)content((?mx\)<b><i>( (?: (?!<)char(\\/)content(b>|<)char(\\/)content(i>\). \)* \) <)char(\\/)content(i><)char(\\/)content(b>)delimiter(/)> +ident(betterButInefficient2) operator(=) operator(~)regexp<delimiter(/)content((?mx\)<b><i>( (?: (?!<)char(\\/)content([ib]>\). \)* \) <)char(\\/)content(i><)char(\\/)content(b>)delimiter(/)> ident(efficientPattern) operator(=) string<delimiter(''')content((?mx\) <b><i> @@ -2825,15 +2825,15 @@ comment(//---------------------------------------------------------------------- comment(// @@PLEAC@@_6.16) comment(//----------------------------------------------------------------------------------) -ident(input) operator(=) string<delimiter(')content(This is a test)content(\\n)content(Test of the duplicate word finder.)content(\\n)delimiter(')> +ident(input) operator(=) string<delimiter(')content(This is a test\\nTest of the duplicate word finder.\\n)delimiter(')> ident(dupWordPattern) operator(=) string<delimiter(''')content((?ix\) - )content(\\\\)content(b # start at word boundary - ()content(\\\\)content(S+\) # find chunk of non-whitespace - )content(\\\\)content(b # until a word boundary + )char(\\\\)content(b # start at word boundary + ()char(\\\\)content(S+\) # find chunk of non-whitespace + )char(\\\\)content(b # until a word boundary ( - )content(\\\\)content(s+ # followed by whitespace - )content(\\\\)content(1 # and that same chunk again - )content(\\\\)content(b # and a word boundary + )char(\\\\)content(s+ # followed by whitespace + )char(\\\\)content(1 # and that same chunk again + )char(\\\\)content(b # and a word boundary \) + # one or more times )delimiter(''')> ident(finder) operator(=) ident(input) operator(=~) ident(dupWordPattern) @@ -2843,11 +2843,11 @@ comment(// => Found duplicate word: test) ident(astr) operator(=) string<delimiter(')content(nobody)delimiter(')> ident(bstr) operator(=) string<delimiter(')content(bodysnatcher)delimiter(')> ident(m) operator(=) string<delimiter(")inline<inline_delimiter($)ident(astr)>content( )inline<inline_delimiter($)ident(bstr)>delimiter(")> operator(=~) regexp<delimiter(/)content(^()char(\\w)content(+\)()char(\\w)content(+\) )char(\\2)content(()char(\\w)content(+\))content($)delimiter(/)> -ident(actual) operator(=) string<delimiter(")inline<inline_delimiter(${)ident(m[0][2])inline_delimiter(})>content( overlaps in )inline<inline_delimiter(${)ident(m[0][1])inline_delimiter(})>content(-)inline<inline_delimiter(${)ident(m[0][2])inline_delimiter(})>content(-)inline<inline_delimiter(${)ident(m[0][3])inline_delimiter(})>delimiter(")> +ident(actual) operator(=) string<delimiter(")inline<inline_delimiter(${)ident(m)operator([)integer(0)(])operator([)integer(2)(])inline_delimiter(})>content( overlaps in )inline<inline_delimiter(${)ident(m)operator([)integer(0)(])operator([)integer(1)(])inline_delimiter(})>content(-)inline<inline_delimiter(${)ident(m)operator([)integer(0)(])operator([)integer(2)(])inline_delimiter(})>content(-)inline<inline_delimiter(${)ident(m)operator([)integer(0)(])operator([)integer(3)(])inline_delimiter(})>delimiter(")> keyword(assert) ident(actual) operator(==) string<delimiter(')content(body overlaps in no-body-snatcher)delimiter(')> ident(cap) operator(=) string<delimiter(')content(o)delimiter(')> operator(*) integer(180) -keyword(while) operator(()ident(m) operator(=) operator(()ident(cap) operator(=~) regexp<delimiter(/)content(^(oo+?\))char(\\1)content(+)content($)delimiter(/)>(\)\)) operator({) +keyword(while) operator(()ident(m) operator(=) operator(()ident(cap) operator(=~) regexp<delimiter(/)content(^(oo+?\))char(\\1)content(+)content($)delimiter(/)>(\))(\)) operator({) ident(p1) operator(=) ident(m)operator([)integer(0)(])operator([)integer(1)(]) ident(print) ident(p1)operator(.)ident(size)operator(()(\)) operator(+) string<delimiter(')content( )delimiter(')> ident(cap) operator(=) ident(cap)operator(.)ident(replaceAll)operator(()ident(p1)operator(,)string<delimiter(')content(o)delimiter(')>(\)) @@ -2857,7 +2857,7 @@ comment(// => 2 2 3 3 5) comment(// diophantine) comment(// solve for 12x + 15y + 16z = 281, maximizing x) -keyword(if) operator(()operator(()ident(m) operator(=) operator(()string<delimiter(')content(o)delimiter(')> operator(*) integer(281)(\)) operator(=~) regexp<delimiter(/)content(^(o*\))char(\\1)content({11}(o*\))char(\\2)content({14}(o*\))char(\\3)content({15})content($)delimiter(/)>(\)\)) operator({) +keyword(if) operator(()operator(()ident(m) operator(=) operator(()string<delimiter(')content(o)delimiter(')> operator(*) integer(281)(\)) operator(=~) regexp<delimiter(/)content(^(o*\))char(\\1)content({11}(o*\))char(\\2)content({14}(o*\))char(\\3)content({15})content($)delimiter(/)>(\))(\)) operator({) ident(x)operator(=)ident(m)operator([)integer(0)(])operator([)integer(1)(])operator(.)ident(size)operator(()(\))operator(;) ident(y)operator(=)ident(m)operator([)integer(0)(])operator([)integer(2)(])operator(.)ident(size)operator(()(\))operator(;) ident(z)operator(=)ident(m)operator([)integer(0)(])operator([)integer(3)(])operator(.)ident(size)operator(()(\)) ident(println) string<delimiter(")content(One solution is: x=)inline<inline_delimiter($)ident(x)>content(; y=)inline<inline_delimiter($)ident(y)>content(; z=)inline<inline_delimiter($)ident(z)>delimiter(")> (}) keyword(else) ident(println) string<delimiter(")content(No solution.)delimiter(")> @@ -2955,7 +2955,7 @@ ident(noWaldoRegex) operator(=) string<delimiter(''')content((?x\) \) # is so, the negation failed . # any character (cuzza /s\) \) * # repeat that grouping 0 or more - )content($)content( # through the end of the string + $ # through the end of the string )delimiter(''')> keyword(assert) ident(map) operator(=~) ident(noWaldoRegex) @@ -3008,7 +3008,7 @@ keyword(def) method(checkUnicode)operator(()ident(s)(\)) operator({) ident(println) string<delimiter(')content(Exactly matches /)char(\\\\)content(PM)char(\\\\)content(pM*/ )delimiter(')> operator(+) operator(()ident(s) operator(==~) regexp<delimiter(/)content(\\P)content(M)content(\\p)content(M*)delimiter(/)>(\)) (}) ident(checkUnicode)operator(()string<delimiter(')content(à )delimiter(')>(\)) -ident(checkUnicode)operator(()string<delimiter(')content(\\u0061)content(\\u0300)delimiter(')>(\)) +ident(checkUnicode)operator(()string<delimiter(')content(\\u0061\\u0300)delimiter(')>(\)) ident(checkUnicode)operator(()string<delimiter(')content(\\u00E0)delimiter(')>(\)) comment(// =>) comment(// à is of size 1) @@ -3093,15 +3093,15 @@ comment(// => Action is edit) keyword(def) method(buildAbbrev)operator(()ident(words)(\)) operator({) keyword(def) ident(table) operator(=) keyword(new) pre_type(TreeMap)operator(()(\)) ident(words)operator(.)ident(each)operator({) ident(w) operator(->) - operator(()integer(0)operator(..<)ident(w)operator(.)ident(size)operator(()(\)\))operator(.)ident(each) operator({) ident(n) operator(->) + operator(()integer(0)operator(..<)ident(w)operator(.)ident(size)operator(()(\))(\))operator(.)ident(each) operator({) ident(n) operator(->) keyword(if) operator(()operator(!)operator(()ident(words) operator(-) ident(w)(\))operator(.)ident(any)operator({) local_variable(it)operator(.)ident(size)operator(()(\)) operator(>=) ident(n)operator(+)integer(1) operator(&&) local_variable(it)operator([)integer(0)operator(..)ident(n)(]) operator(==) ident(w)operator([)integer(0)operator(..)ident(n)(]) - (}\)) ident(table)operator([)ident(w)operator([)integer(0)operator(..)ident(n)(]]) operator(=) ident(w) + (})(\)) ident(table)operator([)ident(w)operator([)integer(0)operator(..)ident(n)(])(]) operator(=) ident(w) (}) (}) ident(table) (}) -ident(println) ident(buildAbbrev)operator(()string<delimiter(')content(send stop abort edit)delimiter(')>operator(.)ident(split)operator(()string<delimiter(')content( )delimiter(')>(\))operator(.)ident(toList)operator(()(\)\)) +ident(println) ident(buildAbbrev)operator(()string<delimiter(')content(send stop abort edit)delimiter(')>operator(.)ident(split)operator(()string<delimiter(')content( )delimiter(')>(\))operator(.)ident(toList)operator(()(\))(\)) comment(// => ["a":"abort", "ab":"abort", "abo":"abort", "abor":"abort", "abort":"abort",) comment(// "e":"edit", "ed":"edit", "edi":"edit", "edit":"edit", "se":"send", "sen":"send",) comment(// "send":"send", "st":"stop", "sto":"stop", "stop":"stop"]) @@ -3118,11 +3118,11 @@ ident(actions) operator(=) operator([) key(unknown)operator(:) operator({) ident(println) string<delimiter(")content(Unknown Command)delimiter(")>(}) (]) -ident(table) operator(=) ident(buildAbbrev)operator(()ident(actions)operator(.)ident(keySet)operator(()(\))operator(.)ident(toList)operator(()(\)\)) -ident(prompt) operator(=) string<delimiter(')content(\\n)content(> )delimiter(')> +ident(table) operator(=) ident(buildAbbrev)operator(()ident(actions)operator(.)ident(keySet)operator(()(\))operator(.)ident(toList)operator(()(\))(\)) +ident(prompt) operator(=) string<delimiter(')content(\\n> )delimiter(')> ident(print) string<delimiter(')content(Enter Commands: edit send list abort)delimiter(')> operator(+) ident(prompt) -keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\)\))operator(.)ident(eachLine)operator({) ident(line) operator(->) - keyword(def) ident(idx) operator(=) operator(()ident(table)operator(.)ident(containsKey)operator(()ident(line)(\)\)) operator(?) ident(table)operator([)ident(line)(]) operator(:) string<delimiter(')content(unknown)delimiter(')> +keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\))(\))operator(.)ident(eachLine)operator({) ident(line) operator(->) + keyword(def) ident(idx) operator(=) operator(()ident(table)operator(.)ident(containsKey)operator(()ident(line)(\))(\)) operator(?) ident(table)operator([)ident(line)(]) operator(:) string<delimiter(')content(unknown)delimiter(')> ident(actions)operator([)ident(idx)(])operator(()(\)) ident(print) ident(prompt) (}) @@ -3135,13 +3135,13 @@ comment(//% urlify ~/mail/*.inbox > ~/allmail.urlified) ident(urls) operator(=) string<delimiter(')content((https?|telnet|gopher|file|wais|ftp|mail\))delimiter(')> ident(ltrs) operator(=) regexp<delimiter(/)char(\\w)delimiter(/)> -ident(gunk) operator(=) regexp<delimiter(/)content(\\#)content(\\/)content(~:.?+=&%@!)content(\\-)delimiter(/)> +ident(gunk) operator(=) regexp<delimiter(/)content(\\#)char(\\/)content(~:.?+=&%@!)content(\\-)delimiter(/)> ident(punc) operator(=) regexp<delimiter(/)content(.:?)content(\\-)delimiter(/)> ident(doll) operator(=) regexp<delimiter(/)content($)delimiter(/)> ident(all) operator(=) regexp<delimiter(/)inline<inline_delimiter($)ident(ltrs)>inline<inline_delimiter($)ident(gunk)>inline<inline_delimiter($)ident(punc)>delimiter(/)> ident(findUrls) operator(=) string<delimiter(""")content((?ix\) - )content(\\\\)content(b # start at word boundary + )char(\\\\)content(b # start at word boundary ( # begin group 1 { )inline<inline_delimiter($)ident(urls)>content( : # need resource and a colon [)inline<inline_delimiter($)ident(all)>content(] +? # followed by on or more of any valid @@ -3161,7 +3161,7 @@ If you find a typo on http://groovy.codehaus.org please send an email to mail:spelling.pedant@codehaus.org )delimiter(''')> -ident(println) ident(input)operator(.)ident(replaceAll)operator(()ident(findUrls)operator(,)string<delimiter(')content(<a href=")content($)content(1">)content($)content(1</a>)delimiter(')>(\)) +ident(println) ident(input)operator(.)ident(replaceAll)operator(()ident(findUrls)operator(,)string<delimiter(')content(<a href="$1">$1</a>)delimiter(')>(\)) comment(// =>) comment(// If you find a typo on <a href="http://groovy.codehaus.org">http://groovy.codehaus.org</a> please) comment(// send an email to <a href="mail:spelling.pedant@codehaus.org">mail:spelling.pedant@codehaus.org</a>) @@ -3172,7 +3172,7 @@ comment(// urlify - wrap HTML links around URL-like constructs) comment(// definitions from above) ident(args)operator(.)ident(each)operator({) ident(file) operator(->) keyword(new) pre_type(File)operator(()ident(file)(\))operator(.)ident(eachLine)operator({) ident(line) operator(->) - ident(println) ident(line)operator(.)ident(replaceAll)operator(()ident(findUrls)operator(,)string<delimiter(')content(<a href=")content($)content(1">)content($)content(1</a>)delimiter(')>(\)) + ident(println) ident(line)operator(.)ident(replaceAll)operator(()ident(findUrls)operator(,)string<delimiter(')content(<a href="$1">$1</a>)delimiter(')>(\)) (}) (}) @@ -3193,7 +3193,7 @@ comment(// can't have tens before 1000s (M\) or 100s (C\) after 5s (V\)) keyword(assert) operator(!)operator(()string<delimiter(')content(xmvci)delimiter(')> operator(=~) ident(romans)(\)) comment(// swap first two words) -keyword(assert) string<delimiter(')content(the words)delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(()char(\\S)content(+\)()char(\\s)content(+\)()char(\\S)content(+\))delimiter(/)>operator(,) string<delimiter(')content($)content(3)content($)content(2)content($)content(1)delimiter(')>(\)) operator(==) string<delimiter(')content(words the)delimiter(')> +keyword(assert) string<delimiter(')content(the words)delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(()char(\\S)content(+\)()char(\\s)content(+\)()char(\\S)content(+\))delimiter(/)>operator(,) string<delimiter(')content($3$2$1)delimiter(')>(\)) operator(==) string<delimiter(')content(words the)delimiter(')> comment(// extract keyword and value) ident(m) operator(=) string<delimiter(')content(k=v)delimiter(')> operator(=~) regexp<delimiter(/)content(()char(\\w)content(+\))char(\\s)content(*=)char(\\s)content(*(.*\))char(\\s)content(*)content($)delimiter(/)> @@ -3214,13 +3214,13 @@ ident(expected) operator(=) string<delimiter(')content(/usr/local/bin/vi)delimit ident(orig)operator(.)ident(replaceAll)operator(()string<delimiter(')content(/usr/bin)delimiter(')>operator(,)string<delimiter(')content(/usr/local/bin)delimiter(')>(\)) operator(==) ident(expected) ident(escapeSequenceRegex) operator(=) regexp<delimiter(/)content(%([0-9A-Fa-f][0-9A-Fa-f]\))delimiter(/)> -ident(convertEscapeToChar) operator(=) operator({) pre_type(Object)type([]) ident(ch) operator(->) keyword(new) pre_type(Character)operator(()operator(()type(char)(\))pre_type(Integer)operator(.)ident(parseInt)operator(()ident(ch)operator([)integer(1)(])operator(,)integer(16)(\)\)) (}) +ident(convertEscapeToChar) operator(=) operator({) pre_type(Object)type([]) ident(ch) operator(->) keyword(new) pre_type(Character)operator(()operator(()type(char)(\))pre_type(Integer)operator(.)ident(parseInt)operator(()ident(ch)operator([)integer(1)(])operator(,)integer(16)(\))(\)) (}) keyword(assert) string<delimiter(')content(abc%3cdef)delimiter(')>operator(.)ident(replaceAll)operator(()ident(escapeSequenceRegex)operator(,) ident(convertEscapeToChar)(\)) operator(==) string<delimiter(')content(abc<def)delimiter(')> ident(commentStripper) operator(=) string<delimiter(''')content((?xms\) - /)content(\\\\)content(* # Match the opening delimiter + /)char(\\\\)content(* # Match the opening delimiter .* # Match a minimal number of characters */ - )content(\\\\)content(*/ # Match the closing delimiter + )char(\\\\)content(*/ # Match the closing delimiter )delimiter(''')> ident(input) operator(=) string<delimiter(''')content( @@ -3242,7 +3242,7 @@ comment(// emulate s.trim(\)) keyword(assert) string<delimiter(')content( x y )delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(^)char(\\s)content(+)delimiter(/)>operator(,) string<delimiter(')delimiter(')>(\))operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\s)content(+)content($)delimiter(/)>operator(,) string<delimiter(')delimiter(')>(\)) operator(==) string<delimiter(')content(x y)delimiter(')> comment(// convert \\\\n into \\n) -keyword(assert) operator(()regexp<delimiter(/)content(a)char(\\n)content(b)delimiter(/)>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\\\)content(n)delimiter(/)>operator(,)string<delimiter(")char(\\n)delimiter(")>(\)) operator(==) string<delimiter(')content(a)content(\\n)content(b)delimiter(')>(\)) +keyword(assert) operator(()regexp<delimiter(/)content(a)char(\\n)content(b)delimiter(/)>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\\\)content(n)delimiter(/)>operator(,)string<delimiter(")char(\\n)delimiter(")>(\)) operator(==) string<delimiter(')content(a\\nb)delimiter(')>(\)) comment(// remove package symbol (Groovy/Java doesn't use this as package symbol\)) keyword(assert) string<delimiter(')content(A::B)delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(^.*::)delimiter(/)>operator(,) string<delimiter(')delimiter(')>(\)) operator(==) string<delimiter(')content(B)delimiter(')> @@ -3254,14 +3254,14 @@ keyword(assert) operator(!)operator(()string<delimiter(')content(123.456.789)del keyword(assert) string<delimiter(')content(192.168.000.001)delimiter(')> operator(=~) ident(ipregex) comment(// extract basename) -keyword(assert) string<delimiter(')content(c:/usr/temp.txt)delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(^.*)content(\\/)content({1})delimiter(/)>operator(,) string<delimiter(')delimiter(')>(\)) operator(==) string<delimiter(')content(temp.txt)delimiter(')> +keyword(assert) string<delimiter(')content(c:/usr/temp.txt)delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(^.*)char(\\/)content({1})delimiter(/)>operator(,) string<delimiter(')delimiter(')>(\)) operator(==) string<delimiter(')content(temp.txt)delimiter(')> ident(termcap) operator(=) string<delimiter(')content(:co#80:li#24:)delimiter(')> ident(m) operator(=) operator(()ident(termcap) operator(=~) regexp<delimiter(/)content(:co)content(\\#)content(()char(\\d)content(+\):)delimiter(/)>(\)) keyword(assert) ident(m)operator(.)ident(count) operator(==) integer(1) keyword(assert) ident(m)operator([)integer(0)(])operator([)integer(1)(]) operator(==) string<delimiter(')content(80)delimiter(')> -keyword(assert) string<delimiter(')content(cmd c:/tmp/junk.txt)delimiter(')>operator(.)ident(replaceAll)operator(()operator(/) error(\\)ident(S)operator(+)error(\\)regexp<delimiter(/)content({1})delimiter(/)>operator(,) string<delimiter(')content( )delimiter(')>(\)) operator(==) string<delimiter(')content(cmd junk.txt)delimiter(')> +keyword(assert) string<delimiter(')content(cmd c:/tmp/junk.txt)delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content( )char(\\S)content(+)char(\\/)content({1})delimiter(/)>operator(,) string<delimiter(')content( )delimiter(')>(\)) operator(==) string<delimiter(')content(cmd junk.txt)delimiter(')> ident(os) operator(=) pre_type(System)operator(.)ident(getProperty)operator(()string<delimiter(')content(os.name)delimiter(')>(\)) ident(println) string<delimiter(')content(Is Linux? )delimiter(')> operator(+) operator(()ident(os) operator(==~) regexp<delimiter(/)content((?i\)linux.*)delimiter(/)>(\)) @@ -3319,7 +3319,7 @@ Yes! And so is this. And the fourth. )delimiter(''')> ident(sentences) operator(=) type([]) -ident(strip) operator(=) ident(input)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(()content(\\p)content({Punct}\))char(\\n)delimiter(/)>operator(,) string<delimiter(')content($)content(1 )delimiter(')>(\))operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\n)delimiter(/)>operator(,) string<delimiter(')content( )delimiter(')>(\))operator(.)ident(replaceAll)operator(()operator(/) operator({)integer(3)operator(,)(})operator(/)operator(,)string<delimiter(')content( )delimiter(')>(\)) +ident(strip) operator(=) ident(input)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(()content(\\p)content({Punct}\))char(\\n)delimiter(/)>operator(,) string<delimiter(')content($1 )delimiter(')>(\))operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\n)delimiter(/)>operator(,) string<delimiter(')content( )delimiter(')>(\))operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content( {3,})delimiter(/)>operator(,)string<delimiter(')content( )delimiter(')>(\)) ident(m) operator(=) ident(strip) operator(=~) regexp<delimiter(/)content(()char(\\S)content(.*?)content(\\p)content({Punct}\)(?= |)content(\\Z)content(\))delimiter(/)> operator(()integer(0)operator(..<)ident(m)operator(.)ident(count)(\))operator(.)ident(each)operator({) ident(sentences) operator(+=) ident(m)operator([)local_variable(it)(])operator([)integer(1)(]) (}) keyword(assert) ident(sentences) operator(==) operator([)string<delimiter(")content(Is this a sentence?)delimiter(")>operator(,) string<delimiter(")content(Yes!)delimiter(")>operator(,) string<delimiter(")content(And so is this.)delimiter(")>operator(,) string<delimiter(")content(And the fourth.)delimiter(")>(]) @@ -3327,7 +3327,7 @@ keyword(assert) ident(sentences) operator(==) operator([)string<delimiter(")cont comment(// YYYY-MM-DD) ident(m) operator(=) string<delimiter(')content(2007-2-28)delimiter(')> operator(=~) regexp<delimiter(/)content(()char(\\d)content({4}\)-()char(\\d)char(\\d)content(?\)-()char(\\d)char(\\d)content(?\))delimiter(/)> keyword(assert) ident(m)operator(.)ident(matches)operator(()(\)) -keyword(assert) operator([)string<delimiter(')content(2007)delimiter(')>operator(,) string<delimiter(')content(2)delimiter(')>operator(,) string<delimiter(')content(28)delimiter(')>(]) operator(==) operator([)ident(m)operator([)integer(0)(])operator([)integer(1)(])operator(,) ident(m)operator([)integer(0)(])operator([)integer(2)(])operator(,) ident(m)operator([)integer(0)(])operator([)integer(3)(]]) +keyword(assert) operator([)string<delimiter(')content(2007)delimiter(')>operator(,) string<delimiter(')content(2)delimiter(')>operator(,) string<delimiter(')content(28)delimiter(')>(]) operator(==) operator([)ident(m)operator([)integer(0)(])operator([)integer(1)(])operator(,) ident(m)operator([)integer(0)(])operator([)integer(2)(])operator(,) ident(m)operator([)integer(0)(])operator([)integer(3)(])(]) ident(usPhoneRegex) operator(=) regexp<delimiter(/)content(^[01]?[- .]?()content(\\()content([2-9])char(\\d)content({2})content(\\\))content(|[2-9])char(\\d)content({2}\)[- .]?)char(\\d)content({3}[- .]?)char(\\d)content({4})content($)delimiter(/)> ident(numbers) operator(=) string<delimiter(''')content( @@ -3342,7 +3342,7 @@ ident(exclaimRegex) operator(=) regexp<delimiter(/)content((?i\))char(\\b)conten keyword(assert) string<delimiter(')content(Oh my Goodness!)delimiter(')> operator(=~) ident(exclaimRegex) keyword(assert) operator(!)operator(()string<delimiter(')content(Golly gosh)delimiter(')> operator(=~) ident(exclaimRegex)(\)) -ident(input) operator(=) string<delimiter(')content(line 1)content(\\r)content(line 2)content(\\n)content(line)content(\\r)content(\\n)content(line 3)content(\\n)content(\\r)content(line 4)delimiter(')> +ident(input) operator(=) string<delimiter(')content(line 1\\rline 2\\nline\\r\\nline 3\\n\\rline 4)delimiter(')> ident(m) operator(=) ident(input) operator(=~) regexp<delimiter(/)content((?m\)^([^)char(\\012)char(\\015)content(]*\)()char(\\012)char(\\015)content(?|)char(\\015)char(\\012)content(?\))delimiter(/)> keyword(assert) ident(m)operator(.)ident(count) operator(==) integer(4) @@ -3380,7 +3380,7 @@ ident(HELP) operator(=) string<delimiter(')content(help)delimiter(')>operator(;) ident(options) operator(=) ident(op)operator(.)ident(parse)operator(()ident(args)(\)) ident(params) operator(=) ident(options)operator(.)ident(nonOptionArguments)operator(()(\)) -keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(HELP) (\)\)) operator({) +keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(HELP) (\))(\)) operator({) ident(op)operator(.)ident(printHelpOn)operator(() pre_type(System)operator(.)ident(out) (\)) (}) keyword(else) keyword(if) operator(()ident(params)operator(.)ident(size)operator(()(\)) operator(==) integer(0)(\)) operator({) ident(println) string<delimiter(")content(Usage: grep [OPTION]... PATTERN [FILE]...)char(\\n)content(Try 'grep --)inline<inline_delimiter($)ident(HELP)>content(' for more information.)delimiter(")> @@ -3395,26 +3395,26 @@ keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() id ident(o_invert) operator(=) ident(options)operator(.)ident(wasDetected)operator(() ident(INVERT) (\)) ident(o_match) operator(=) ident(options)operator(.)ident(wasDetected)operator(() ident(MATCH) (\)) ident(o_nomatch) operator(=) ident(options)operator(.)ident(wasDetected)operator(() ident(NOMATCH) (\)) - keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(EXPR) (\)\)) operator({) + keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(EXPR) (\))(\)) operator({) ident(pattern) operator(=) ident(options)operator(.)ident(valueOf)operator(() ident(EXPR) (\)) - (}) keyword(else) keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(FILE) (\)\)) operator({) - ident(pattern) operator(=) keyword(new) pre_type(File)operator(()ident(options)operator(.)ident(valueOf)operator(() ident(FILE) (\)\))operator(.)ident(text)operator(.)ident(trim)operator(()(\)) + (}) keyword(else) keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(FILE) (\))(\)) operator({) + ident(pattern) operator(=) keyword(new) pre_type(File)operator(()ident(options)operator(.)ident(valueOf)operator(() ident(FILE) (\))(\))operator(.)ident(text)operator(.)ident(trim)operator(()(\)) (}) keyword(else) operator({) ident(pattern) operator(=) ident(params)operator([)integer(0)(]) ident(params) operator(=) ident(params)operator([)integer(1)operator(..)operator(-)integer(1)(]) (}) - keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(EXCLUDE) (\)\)) ident(excludes) operator(=) ident(options)operator(.)ident(valueOf)operator(() ident(EXCLUDE) (\)) + keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(EXCLUDE) (\))(\)) ident(excludes) operator(=) ident(options)operator(.)ident(valueOf)operator(() ident(EXCLUDE) (\)) keyword(else) ident(excludes) operator(=) operator([)string<delimiter(')content(**/*.bak)delimiter(')>(]) - keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(EXACT) (\)\)) ident(pattern) operator(=) string<delimiter(')content(^)delimiter(')> operator(+) ident(pattern) operator(+) string<delimiter(')content($)delimiter(')> - keyword(else) keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(WORD) (\)\)) ident(pattern) operator(=) regexp<delimiter(/)char(\\b)inline<inline_delimiter($)ident(pattern)>char(\\b)delimiter(/)> - keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(NOCASE) (\)\)) ident(modifiers) operator(+=) string<delimiter(')content(i)delimiter(')> - keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(PARA) (\)\)) operator({) - keyword(if) operator(()ident(options)operator(.)ident(hasArgument)operator(() ident(PARA) (\)\)) ident(paraPattern) operator(=) ident(options)operator(.)ident(valueOf)operator(() ident(PARA) (\)) - keyword(else) ident(paraPattern) operator(=) string<delimiter(')content(^)content($)delimiter(')> + keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(EXACT) (\))(\)) ident(pattern) operator(=) string<delimiter(')content(^)delimiter(')> operator(+) ident(pattern) operator(+) string<delimiter(')content($)delimiter(')> + keyword(else) keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(WORD) (\))(\)) ident(pattern) operator(=) regexp<delimiter(/)char(\\b)inline<inline_delimiter($)ident(pattern)>char(\\b)delimiter(/)> + keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(NOCASE) (\))(\)) ident(modifiers) operator(+=) string<delimiter(')content(i)delimiter(')> + keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(PARA) (\))(\)) operator({) + keyword(if) operator(()ident(options)operator(.)ident(hasArgument)operator(() ident(PARA) (\))(\)) ident(paraPattern) operator(=) ident(options)operator(.)ident(valueOf)operator(() ident(PARA) (\)) + keyword(else) ident(paraPattern) operator(=) string<delimiter(')content(^$)delimiter(')> ident(paraPattern) operator(=) string<delimiter(')content((?sm\))delimiter(')> operator(+) ident(paraPattern) ident(modifiers) operator(+=) string<delimiter(')content(sm)delimiter(')> (}) - keyword(if) operator(()ident(modifiers)(\)) ident(pattern) operator(=) string<delimiter(")content((?)inline<inline_delimiter(${)ident(modifiers.join(\))inline_delimiter(})>content(\))delimiter(")> operator(+) ident(pattern) + keyword(if) operator(()ident(modifiers)(\)) ident(pattern) operator(=) string<delimiter(")content((?)inline<inline_delimiter(${)ident(modifiers)operator(.)ident(join)operator(()(\))inline_delimiter(})>content(\))delimiter(")> operator(+) ident(pattern) keyword(if) operator(()ident(params)operator(.)ident(size)operator(()(\)) operator(==) integer(0)(\)) ident(grepStream)operator(()pre_type(System)operator(.)ident(in)operator(,) string<delimiter(')content(<stdin>)delimiter(')>(\)) keyword(else) operator({) @@ -3450,7 +3450,7 @@ keyword(def) method(grepStream)operator(()ident(s)operator(,) ident(name)(\)) op (}) (}) keyword(def) ident(display) operator(=) keyword(true) - keyword(if) operator(()operator(()ident(o_match) operator(&&) ident(count) operator(==) integer(0)(\)) operator(||) operator(()ident(o_nomatch) operator(&&) ident(count) operator(!=) integer(0)(\)\)) ident(display) operator(=) keyword(false) + keyword(if) operator(()operator(()ident(o_match) operator(&&) ident(count) operator(==) integer(0)(\)) operator(||) operator(()ident(o_nomatch) operator(&&) ident(count) operator(!=) integer(0)(\))(\)) ident(display) operator(=) keyword(false) keyword(if) operator(()ident(fileMode) operator(&&) ident(display)(\)) operator({) ident(filefields) operator(=) type([]) keyword(if) operator(()operator(!)ident(o_noname)(\)) ident(filefields) operator(+=) ident(name) @@ -3518,9 +3518,9 @@ comment(// for the matching line(s\) if any, before closing the file.) comment(// this example shows how to access the standard input stream) comment(// numericCheckingScript:) -ident(prompt) operator(=) string<delimiter(')content(\\n)content(> )delimiter(')> +ident(prompt) operator(=) string<delimiter(')content(\\n> )delimiter(')> ident(print) string<delimiter(')content(Enter text including a digit:)delimiter(')> operator(+) ident(prompt) -keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\)\))operator(.)ident(eachLine)operator({) ident(line) operator(->) +keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\))(\))operator(.)ident(eachLine)operator({) ident(line) operator(->) comment(// line is read from System.in) keyword(if) operator(()ident(line) operator(=~) string<delimiter(')char(\\\\)content(d)delimiter(')>(\)) ident(println) string<delimiter(")content(Read: )inline<inline_delimiter($)ident(line)>delimiter(")> comment(// normal output to System.out) keyword(else) pre_type(System)operator(.)ident(err)operator(.)ident(println) string<delimiter(')content(No digit found.)delimiter(')> comment(// this message to System.err) @@ -3584,7 +3584,7 @@ comment(// NSPathUtilities can expand and introduce Tildes on platforms it suppo ident(path) operator(=) string<delimiter(')content(~paulk/.cvspass)delimiter(')> ident(name) operator(=) pre_type(System)operator(.)ident(getProperty)operator(()string<delimiter(')content(user.name)delimiter(')>(\)) ident(home) operator(=) pre_type(System)operator(.)ident(getProperty)operator(()string<delimiter(')content(user.home)delimiter(')>(\)) -ident(println) ident(home) operator(+) ident(path)operator(.)ident(replaceAll)operator(()string<delimiter(")content(~)inline<inline_delimiter($)ident(name)>content((.*\))delimiter(")>operator(,) string<delimiter(')content($)content(1)delimiter(')>(\)) +ident(println) ident(home) operator(+) ident(path)operator(.)ident(replaceAll)operator(()string<delimiter(")content(~)inline<inline_delimiter($)ident(name)>content((.*\))delimiter(")>operator(,) string<delimiter(')content($1)delimiter(')>(\)) comment(// => C:\\Documents and Settings\\Paul/.cvspass) comment(//----------------------------------------------------------------------------------) @@ -3623,12 +3623,12 @@ ident(file) operator(=) keyword(new) pre_type(File)operator(()string<delimiter(' ident(regex) operator(=) regexp<delimiter(/)content((?ms\)(?<=^pleac_7_6_embeddedFileInfo = '''\)(.*\)(?=^'''\))delimiter(/)> keyword(def) method(readEmbeddedInfo)operator(()(\)) operator({) ident(m) operator(=) ident(file)operator(.)ident(text) operator(=~) ident(regex) - ident(println) string<delimiter(')content(Found:)content(\\n)delimiter(')> operator(+) ident(m)operator([)integer(0)(])operator([)integer(1)(]) + ident(println) string<delimiter(')content(Found:\\n)delimiter(')> operator(+) ident(m)operator([)integer(0)(])operator([)integer(1)(]) (}) keyword(def) method(writeEmbeddedInfo)operator(()(\)) operator({) - ident(lastMod) operator(=) keyword(new) pre_type(Date)operator(()ident(file)operator(.)ident(lastModified)operator(()(\)\)) - ident(newInfo) operator(=) string<delimiter(")inline<inline_delimiter(${)ident(ls)inline_delimiter(})>content(Script size is )inline<inline_delimiter(${)ident(file.size(\))inline_delimiter(})>inline<inline_delimiter(${)ident(ls)inline_delimiter(})>content(Last script update: )inline<inline_delimiter(${)ident(lastMod)inline_delimiter(})>inline<inline_delimiter(${)ident(ls)inline_delimiter(})>delimiter(")> - ident(file)operator(.)ident(write)operator(()ident(file)operator(.)ident(text)operator(.)ident(replaceAll)operator(()ident(regex)operator(,) ident(newInfo)(\)\)) + ident(lastMod) operator(=) keyword(new) pre_type(Date)operator(()ident(file)operator(.)ident(lastModified)operator(()(\))(\)) + ident(newInfo) operator(=) string<delimiter(")inline<inline_delimiter(${)ident(ls)inline_delimiter(})>content(Script size is )inline<inline_delimiter(${)ident(file)operator(.)ident(size)operator(()(\))inline_delimiter(})>inline<inline_delimiter(${)ident(ls)inline_delimiter(})>content(Last script update: )inline<inline_delimiter(${)ident(lastMod)inline_delimiter(})>inline<inline_delimiter(${)ident(ls)inline_delimiter(})>delimiter(")> + ident(file)operator(.)ident(write)operator(()ident(file)operator(.)ident(text)operator(.)ident(replaceAll)operator(()ident(regex)operator(,) ident(newInfo)(\))(\)) (}) ident(readEmbeddedInfo)operator(()(\)) comment(// writeEmbeddedInfo(\) // uncomment to make script update itself) @@ -3700,7 +3700,7 @@ ident(args)operator(.)ident(each)operator({) ident(arg) operator(->) keyword(default)operator(:) ident(files) operator(+=) ident(arg) (}) (}) -keyword(if) operator(()ident(files)operator(.)ident(any)operator({) local_variable(it)operator(.)ident(startsWith)operator(()string<delimiter(')content(-)delimiter(')>(\)}\)) operator({) +keyword(if) operator(()ident(files)operator(.)ident(any)operator({) local_variable(it)operator(.)ident(startsWith)operator(()string<delimiter(')content(-)delimiter(')>(\))(})(\)) operator({) pre_type(System)operator(.)ident(err)operator(.)ident(println)operator(()string<delimiter(")content(usage: demo3 [-ainu] [filenames])delimiter(")>(\)) (}) comment(// process files ...) @@ -3722,11 +3722,11 @@ ident(chunks) operator(=) integer(0)operator(;) ident(done) operator(=) keyword( ident(testfile) operator(=) keyword(new) pre_type(File)operator(()string<delimiter(')content(Pleac/data/chunks.txt)delimiter(')>(\)) comment(// change on your system) ident(lines) operator(=) ident(testfile)operator(.)ident(readLines)operator(()(\)) keyword(for) operator(()ident(line) keyword(in) ident(lines)(\)) operator({) - keyword(if) operator(()operator(!)ident(line)operator(.)ident(trim)operator(()(\)\)) keyword(continue) + keyword(if) operator(()operator(!)ident(line)operator(.)ident(trim)operator(()(\))(\)) keyword(continue) ident(words) operator(=) ident(line)operator(.)ident(split)operator(()regexp<delimiter(/)content([^)char(\\w)content(#]+)delimiter(/)>(\))operator(.)ident(toList)operator(()(\)) keyword(for) operator(()ident(word) keyword(in) ident(words)(\)) operator({) keyword(if) operator(()ident(word) operator(=~) regexp<delimiter(/)content(^#)delimiter(/)>(\)) keyword(break) - keyword(if) operator(()ident(word) keyword(in) operator([)string<delimiter(")content(__DATA__)delimiter(")>operator(,) string<delimiter(")content(__END__)delimiter(")>(]\)) operator({) ident(done) operator(=) keyword(true)operator(;) keyword(break) (}) + keyword(if) operator(()ident(word) keyword(in) operator([)string<delimiter(")content(__DATA__)delimiter(")>operator(,) string<delimiter(")content(__END__)delimiter(")>(])(\)) operator({) ident(done) operator(=) keyword(true)operator(;) keyword(break) (}) ident(chunks) operator(+=) integer(1) (}) keyword(if) operator(()ident(done)(\)) keyword(break) @@ -3776,7 +3776,7 @@ ident(processWithBackup)operator(()ident(testPath)(\)) operator({) ident(out)ope (}) ident(processWithBackup)operator(()ident(testPath)(\)) operator({) ident(out)operator(,) ident(line)operator(,) ident(count) operator(->) - keyword(if) operator(()operator(!)operator(()ident(count) keyword(in) integer(20)operator(..)integer(30)(\)\)) comment(// skip the 20th line to the 30th) + keyword(if) operator(()operator(!)operator(()ident(count) keyword(in) integer(20)operator(..)integer(30)(\))(\)) comment(// skip the 20th line to the 30th) ident(out) operator(<)operator(<) ident(line) operator(+) string<delimiter(')content(\\n)delimiter(')> (}) comment(// equivalent to "one-liner":) @@ -3807,13 +3807,13 @@ comment(//---------------------------------------------------------------------- comment(// general pattern) keyword(def) method(processFileInplace)operator(()ident(file)operator(,) ident(Closure) ident(processText)(\)) operator({) keyword(def) ident(text) operator(=) ident(file)operator(.)ident(text) - ident(file)operator(.)ident(write)operator(()ident(processText)operator(()ident(text)(\)\)) + ident(file)operator(.)ident(write)operator(()ident(processText)operator(()ident(text)(\))(\)) (}) comment(// templating scenario: change DATE -> current time) ident(testfile) operator(=) keyword(new) pre_type(File)operator(()string<delimiter(')content(Pleac/data/pleac7_10.txt)delimiter(')>(\)) comment(// replace on your system) ident(processFileInplace)operator(()ident(testfile)(\)) operator({) ident(text) operator(->) - ident(text)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?m\)DATE)delimiter(/)>operator(,) keyword(new) pre_type(Date)operator(()(\))operator(.)ident(toString)operator(()(\)\)) + ident(text)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?m\)DATE)delimiter(/)>operator(,) keyword(new) pre_type(Date)operator(()(\))operator(.)ident(toString)operator(()(\))(\)) (}) comment(//----------------------------------------------------------------------------------) @@ -4044,9 +4044,9 @@ comment(// use streams or channels for advanced file handling) type(int) ident(size) operator(=) ident(datafile)operator(.)ident(size)operator(()(\)) ident(buffer) operator(=) pre_type(ByteBuffer)operator(.)ident(allocate)operator(()ident(size)(\)) comment(// for large files, use some block size, e.g. 4096) ident(channel) operator(=) keyword(new) pre_type(FileInputStream)operator(()ident(datafile)(\))operator(.)ident(channel) -ident(println) string<delimiter(")content(Number of bytes read was: )inline<inline_delimiter(${)ident(channel.read(buffer\))inline_delimiter(})>delimiter(")> comment(// -1 = EOF) +ident(println) string<delimiter(")content(Number of bytes read was: )inline<inline_delimiter(${)ident(channel)operator(.)ident(read)operator(()ident(buffer)(\))inline_delimiter(})>delimiter(")> comment(// -1 = EOF) -ident(channel) operator(=) keyword(new) pre_type(FileOutputStream)operator(()pre_type(File)operator(.)ident(createTempFile)operator(()string<delimiter(")content(pleac8)delimiter(")>operator(,) string<delimiter(")content(.junk)delimiter(")>(\)\))operator(.)ident(channel) +ident(channel) operator(=) keyword(new) pre_type(FileOutputStream)operator(()pre_type(File)operator(.)ident(createTempFile)operator(()string<delimiter(")content(pleac8)delimiter(")>operator(,) string<delimiter(")content(.junk)delimiter(")>(\))(\))operator(.)ident(channel) ident(size) operator(=) ident(channel)operator(.)ident(size)operator(()(\)) ident(channel)operator(.)ident(truncate)operator(()ident(size)(\)) comment(// shrinks file (in our case to same size\)) @@ -4111,7 +4111,7 @@ ident(println) string<delimiter(")content(Found )inline<inline_delimiter($)ident comment(// note: counts blank line at end as start of next empty para) comment(// with a StreamTokenizer) -ident(st) operator(=) keyword(new) pre_type(StreamTokenizer)operator(()ident(testfile)operator(.)ident(newReader)operator(()(\)\)) +ident(st) operator(=) keyword(new) pre_type(StreamTokenizer)operator(()ident(testfile)operator(.)ident(newReader)operator(()(\))(\)) keyword(while) operator(()ident(st)operator(.)ident(nextToken)operator(()(\)) operator(!=) pre_type(StreamTokenizer)operator(.)ident(TT_EOF)(\)) operator({)(}) ident(println) ident(st)operator(.)ident(lineno)operator(()(\)) comment(//----------------------------------------------------------------------------------) @@ -4136,7 +4136,7 @@ ident(println) ident(count) comment(// (variation to Perl example\)) comment(// with a StreamTokenizer (counting words and numbers in Pleac chapter 8 source file\)) ident(words) operator(=) integer(0)operator(;) ident(numbers) operator(=) integer(0) -ident(st) operator(=) keyword(new) pre_type(StreamTokenizer)operator(()ident(testfile)operator(.)ident(newReader)operator(()(\)\)) +ident(st) operator(=) keyword(new) pre_type(StreamTokenizer)operator(()ident(testfile)operator(.)ident(newReader)operator(()(\))(\)) ident(st)operator(.)ident(slashSlashComments)operator(()keyword(true)(\)) comment(// ignore words and numbers in comments) keyword(while) operator(()ident(st)operator(.)ident(nextToken)operator(()(\)) operator(!=) pre_type(StreamTokenizer)operator(.)ident(TT_EOF)(\)) operator({) keyword(if) operator(()ident(st)operator(.)ident(ttype) operator(==) pre_type(StreamTokenizer)operator(.)ident(TT_WORD)(\)) ident(words)operator(++) @@ -4149,11 +4149,11 @@ comment(// word frequency count) ident(seen) operator(=) operator([)operator(:)(]) ident(processWordsInFile)operator(()ident(testfile)(\)) operator({) ident(w) operator(=) local_variable(it)operator(.)ident(toLowerCase)operator(()(\)) - keyword(if) operator(()ident(seen)operator(.)ident(containsKey)operator(()ident(w)(\)\)) ident(seen)operator([)ident(w)(]) operator(+=) integer(1) + keyword(if) operator(()ident(seen)operator(.)ident(containsKey)operator(()ident(w)(\))(\)) ident(seen)operator([)ident(w)(]) operator(+=) integer(1) keyword(else) ident(seen)operator([)ident(w)(]) operator(=) integer(1) (}) comment(// output map in a descending numeric sort of its values) -ident(seen)operator(.)ident(entrySet)operator(()(\))operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->) ident(b)operator(.)ident(value) operator(<=)operator(>) ident(a)operator(.)ident(value) (})operator(.)ident(each)operator({) ident(e) operator(->) +ident(seen)operator(.)ident(entrySet)operator(()(\))operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->) ident(b)operator(.)ident(value) operator(<=>) ident(a)operator(.)ident(value) (})operator(.)ident(each)operator({) ident(e) operator(->) ident(printf)operator(()string<delimiter(")content(%5d %s)char(\\n)delimiter(")>operator(,) operator([)ident(e)operator(.)ident(value)operator(,) ident(e)operator(.)ident(key)(]) (\)) (}) comment(// =>) @@ -4200,14 +4200,14 @@ keyword(while)operator(() keyword(true) (\)) operator({) type(long) ident(fileLength) operator(=) ident(logfile)operator(.)ident(size)operator(()(\)) keyword(if)operator(() ident(fileLength) operator(<) ident(filePointer) (\)) operator({) comment(// Log file must have been rotated or deleted;) - pre_type(System)operator(.)ident(err)operator(.)ident(println) string<delimiter(")inline<inline_delimiter(${)ident(new Date(\))inline_delimiter(})>content(: Reopening )inline<inline_delimiter($)ident(logfile)>delimiter(")> + pre_type(System)operator(.)ident(err)operator(.)ident(println) string<delimiter(")inline<inline_delimiter(${)keyword(new) pre_type(Date)operator(()(\))inline_delimiter(})>content(: Reopening )inline<inline_delimiter($)ident(logfile)>delimiter(")> ident(file) operator(=) keyword(new) pre_type(RandomAccessFile)operator(() ident(logfile)operator(,) string<delimiter(")content(r)delimiter(")> (\)) ident(filePointer) operator(=) integer(0) (}) keyword(if)operator(() ident(fileLength) operator(>) ident(filePointer) (\)) operator({) comment(// There is data to read) ident(file)operator(.)ident(seek)operator(() ident(filePointer) (\)) - keyword(while)operator(() operator(()ident(line) operator(=) ident(file)operator(.)ident(readLine)operator(()(\)\)) operator(!=) keyword(null) (\)) operator({) + keyword(while)operator(() operator(()ident(line) operator(=) ident(file)operator(.)ident(readLine)operator(()(\))(\)) operator(!=) keyword(null) (\)) operator({) ident(println) string<delimiter(')content(##)delimiter(')> operator(+) ident(line) (}) ident(filePointer) operator(=) ident(file)operator(.)ident(filePointer) @@ -4225,7 +4225,7 @@ comment(//testfile = newFile('/usr/share/fortune/humorists'\)) comment(// small files:) ident(random) operator(=) keyword(new) pre_type(Random)operator(()(\)) ident(lines) operator(=) ident(testfile)operator(.)ident(readLines)operator(()(\)) -ident(println) ident(lines)operator([)ident(random)operator(.)ident(nextInt)operator(()ident(lines)operator(.)ident(size)operator(()(\)\)]) +ident(println) ident(lines)operator([)ident(random)operator(.)ident(nextInt)operator(()ident(lines)operator(.)ident(size)operator(()(\))(\))(]) comment(// streamed alternative) ident(count) operator(=) integer(0) @@ -4252,13 +4252,13 @@ comment(//---------------------------------------------------------------------- ident(desiredLine) operator(=) integer(235) comment(// for small files) ident(lines) operator(=) ident(testfile)operator(.)ident(readLines)operator(()(\)) -ident(println) string<delimiter(")content(Line )inline<inline_delimiter($)ident(desiredLine)>content(: )inline<inline_delimiter(${)ident(lines[desiredLine-1])inline_delimiter(})>delimiter(")> +ident(println) string<delimiter(")content(Line )inline<inline_delimiter($)ident(desiredLine)>content(: )inline<inline_delimiter(${)ident(lines)operator([)ident(desiredLine)operator(-)integer(1)(])inline_delimiter(})>delimiter(")> comment(// streaming solution) ident(reader) operator(=) ident(testfile)operator(.)ident(newReader)operator(()(\)) ident(count) operator(=) integer(0) keyword(def) ident(line) -keyword(while) operator(()operator(()ident(line) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\)\))operator(!=) keyword(null)(\)) operator({) +keyword(while) operator(()operator(()ident(line) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\))(\))operator(!=) keyword(null)(\)) operator({) keyword(if) operator(()operator(++)ident(count) operator(==) ident(desiredLine)(\)) keyword(break) (}) ident(println) string<delimiter(")content(Line )inline<inline_delimiter($)ident(desiredLine)>content(: )inline<inline_delimiter($)ident(line)>delimiter(")> @@ -4276,7 +4276,7 @@ comment(// @@PLEAC@@_8.10) comment(//----------------------------------------------------------------------------------) ident(file) operator(=) keyword(new) pre_type(RandomAccessFile)operator(() ident(logfile)operator(,) string<delimiter(")content(rw)delimiter(")> (\)) type(long) ident(previous)operator(,) ident(lastpos) operator(=) integer(0) -keyword(while)operator(() operator(()ident(line) operator(=) ident(file)operator(.)ident(readLine)operator(()(\)\)) operator(!=) keyword(null) (\)) operator({) +keyword(while)operator(() operator(()ident(line) operator(=) ident(file)operator(.)ident(readLine)operator(()(\))(\)) operator(!=) keyword(null) (\)) operator({) ident(previous) operator(=) ident(lastpos) ident(lastpos) operator(=) ident(file)operator(.)ident(filePointer) (}) @@ -4305,7 +4305,7 @@ ident(dumpStart)operator(()string<delimiter(')content(Pleac/classes/pleac8.class comment(// => 202 254 186 190 0 0 0 47 2 20 (starting bytes in HEX: CAFEBABE\)) ident(binfile) operator(=) keyword(new) pre_type(File)operator(()string<delimiter(')content(Pleac/data/temp.bin)delimiter(')>(\)) -ident(binfile)operator(.)ident(withOutputStream)operator({) ident(stream) operator(->) operator(()integer(0)operator(..<)integer(20)(\))operator(.)ident(each)operator({) ident(stream)operator(.)ident(write)operator(()local_variable(it)(\)) (}}) +ident(binfile)operator(.)ident(withOutputStream)operator({) ident(stream) operator(->) operator(()integer(0)operator(..<)integer(20)(\))operator(.)ident(each)operator({) ident(stream)operator(.)ident(write)operator(()local_variable(it)(\)) (})(}) ident(binfile)operator(.)ident(eachByte)operator({) ident(print) local_variable(it) operator(+) string<delimiter(')content( )delimiter(')> (})operator(;) ident(println)operator(()(\)) comment(// => 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19) comment(//----------------------------------------------------------------------------------) @@ -4402,10 +4402,10 @@ ident(channel) operator(=) keyword(new) pre_type(FileInputStream)operator(()iden ident(buf) operator(=) pre_type(ByteBuffer)operator(.)ident(allocate)operator(()integer(24)(\)) ident(channel)operator(.)ident(read)operator(()ident(buf)(\)) ident(buf)operator(.)ident(flip)operator(()(\)) -integer(3)operator(.)ident(times)operator({) ident(print) operator(()operator(()type(char)(\))ident(buf)operator(.)ident(get)operator(()(\)\)) (}) -ident(println) operator(()ident(buf)operator(.)ident(getDouble)operator(()(\)\)) -integer(5)operator(.)ident(times)operator({) ident(print) operator(()operator(()type(char)(\))ident(buf)operator(.)ident(get)operator(()(\)\)) (}) -ident(println) operator(()keyword(new) pre_type(Date)operator(()ident(buf)operator(.)ident(getLong)operator(()(\)\)\)) +integer(3)operator(.)ident(times)operator({) ident(print) operator(()operator(()type(char)(\))ident(buf)operator(.)ident(get)operator(()(\))(\)) (}) +ident(println) operator(()ident(buf)operator(.)ident(getDouble)operator(()(\))(\)) +integer(5)operator(.)ident(times)operator({) ident(print) operator(()operator(()type(char)(\))ident(buf)operator(.)ident(get)operator(()(\))(\)) (}) +ident(println) operator(()keyword(new) pre_type(Date)operator(()ident(buf)operator(.)ident(getLong)operator(()(\))(\))(\)) ident(channel)operator(.)ident(close)operator(()(\)) comment(// =>) comment(// PI=3.141592653589793) @@ -4415,9 +4415,9 @@ comment(// object-oriented streams) ident(binfile)operator(.)ident(delete)operator(()(\))operator(;) ident(binfile)operator(.)ident(createNewFile)operator(()(\)) comment(// start from scratch) type(class) class(Person) directive(implements) pre_type(Serializable) operator({) keyword(def) ident(name)operator(,) ident(age) (}) ident(binfile)operator(.)ident(withObjectOutputStream)operator({) ident(oos) operator(->) - ident(oos)operator(.)ident(writeObject)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)string<delimiter(')content(Bernie)delimiter(')>operator(,)key(age)operator(:)integer(16)(\)\)) - ident(oos)operator(.)ident(writeObject)operator(()operator([)integer(1)operator(:)string<delimiter(')content(a)delimiter(')>operator(,) integer(2)operator(:)string<delimiter(')content(b)delimiter(')>(]\)) - ident(oos)operator(.)ident(writeObject)operator(()keyword(new) pre_type(Date)operator(()(\)\)) + ident(oos)operator(.)ident(writeObject)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)string<delimiter(')content(Bernie)delimiter(')>operator(,)key(age)operator(:)integer(16)(\))(\)) + ident(oos)operator(.)ident(writeObject)operator(()operator([)integer(1)operator(:)string<delimiter(')content(a)delimiter(')>operator(,) integer(2)operator(:)string<delimiter(')content(b)delimiter(')>(])(\)) + ident(oos)operator(.)ident(writeObject)operator(()keyword(new) pre_type(Date)operator(()(\))(\)) (}) comment(// now read it back in) ident(binfile)operator(.)ident(withObjectInputStream)operator({) ident(ois) operator(->) @@ -4444,7 +4444,7 @@ comment(// user.name=me) comment(// user.password=secret) ident(props) operator(=) keyword(new) pre_type(Properties)operator(()(\)) ident(propsfile)operator(=)keyword(new) pre_type(File)operator(()string<delimiter(')content(Pleac/data/plain.properties)delimiter(')>(\)) -ident(props)operator(.)ident(load)operator(()ident(propsfile)operator(.)ident(newInputStream)operator(()(\)\)) +ident(props)operator(.)ident(load)operator(()ident(propsfile)operator(.)ident(newInputStream)operator(()(\))(\)) ident(props)operator(.)ident(list)operator(()pre_type(System)operator(.)ident(out)(\)) comment(// =>) comment(// -- listing properties --) @@ -4508,7 +4508,7 @@ comment(//---------------------------------------------------------------------- comment(// general purpose utility methods) keyword(def) method(getString)operator(()ident(buf)operator(,)ident(size)(\))operator({) comment(// consider get(buf[]\) instead of get(buf\) for efficiency) - ident(b)operator(=)type([])operator(;) ident(size)operator(.)ident(times)operator({)ident(b)operator(+=)ident(buf)operator(.)ident(get)operator(()(\)})operator(;) keyword(new) pre_type(String)operator(()ident(b) keyword(as) type(byte)type([])(\))operator(.)ident(trim)operator(()(\)) + ident(b)operator(=)type([])operator(;) ident(size)operator(.)ident(times)operator({)ident(b)operator(+=)ident(buf)operator(.)ident(get)operator(()(\))(})operator(;) keyword(new) pre_type(String)operator(()ident(b) keyword(as) type(byte)type([])(\))operator(.)ident(trim)operator(()(\)) (}) keyword(def) method(getInt)operator(()ident(buf)operator(,)ident(size)(\)) operator({) comment(// normally in Java we would just use methods like getLong(\)) @@ -4528,7 +4528,7 @@ keyword(def) method(processWtmpRecords)operator(()ident(file)operator(,) ident(o ident(channel)operator(.)ident(position)operator(()ident(origpos)(\)) ident(newpos) operator(=) ident(origpos) ident(buf) operator(=) pre_type(ByteBuffer)operator(.)ident(allocate)operator(()ident(recsize)(\)) - keyword(while) operator(()operator(()ident(count) operator(=) ident(channel)operator(.)ident(read)operator(()ident(buf)(\)\)) operator(!=) operator(-)integer(1)(\)) operator({) + keyword(while) operator(()operator(()ident(count) operator(=) ident(channel)operator(.)ident(read)operator(()ident(buf)(\))(\)) operator(!=) operator(-)integer(1)(\)) operator({) keyword(if) operator(()ident(count) operator(!=) ident(recsize)(\)) keyword(break) ident(buf)operator(.)ident(flip)operator(()(\)) ident(print) ident(getInt)operator(()ident(buf)operator(,)integer(4)(\)) operator(+) string<delimiter(')content( )delimiter(')> comment(// type) @@ -4538,7 +4538,7 @@ keyword(def) method(processWtmpRecords)operator(()ident(file)operator(,) ident(o ident(print) ident(getString)operator(()ident(buf)operator(,)integer(32)(\)) operator(+) string<delimiter(')content( )delimiter(')> comment(// user) ident(print) ident(getString)operator(()ident(buf)operator(,)integer(256)(\)) operator(+) string<delimiter(')content( )delimiter(')> comment(// hostname) ident(buf)operator(.)ident(position)operator(()ident(buf)operator(.)ident(position)operator(()(\)) operator(+) integer(8)(\)) comment(// skip) - ident(println) string<delimiter(")inline<inline_delimiter(${)ident(getDate(buf\))inline_delimiter(})>content( )delimiter(")> comment(// time) + ident(println) string<delimiter(")inline<inline_delimiter(${)ident(getDate)operator(()ident(buf)(\))inline_delimiter(})>content( )delimiter(")> comment(// time) ident(buf)operator(.)ident(clear)operator(()(\)) ident(newpos) operator(=) ident(channel)operator(.)ident(position)operator(()(\)) (}) @@ -4598,10 +4598,10 @@ type(class) class(TeeTarget) operator({) directive(private) ident(p) ident(TeeTarget)operator(()pre_type(String) ident(name)operator(,) ident(append)operator(,) ident(buffered)operator(,) ident(ignore)(\)) operator({) - keyword(if) operator(()ident(name)operator(.)ident(startsWith)operator(()string<delimiter(')content(>>)delimiter(')>(\)\)) operator({) + keyword(if) operator(()ident(name)operator(.)ident(startsWith)operator(()string<delimiter(')content(>>)delimiter(')>(\))(\)) operator({) ident(createFileStream)operator(()ident(name)operator([)integer(2)operator(..)operator(-)integer(1)(])operator(,)keyword(true)operator(,)ident(buffered)operator(,)ident(ignore)(\)) - (}) keyword(else) keyword(if) operator(()ident(name)operator(.)ident(startsWith)operator(()string<delimiter(')content(|)delimiter(')>(\)\)) operator({) - ident(createProcessReader)operator(()ident(name)operator([)integer(1)operator(..)operator(-)integer(1)(]\)) + (}) keyword(else) keyword(if) operator(()ident(name)operator(.)ident(startsWith)operator(()string<delimiter(')content(|)delimiter(')>(\))(\)) operator({) + ident(createProcessReader)operator(()ident(name)operator([)integer(1)operator(..)operator(-)integer(1)(])(\)) (}) keyword(else) operator({) ident(createFileStream)operator(()ident(name)operator(,)ident(append)operator(,)ident(buffered)operator(,)ident(ignore)(\)) (}) @@ -4623,12 +4623,12 @@ type(class) class(TeeTarget) operator({) keyword(if) operator(()operator(!)ident(buffered)(\)) ident(stream) operator(=) ident(fos) keyword(else) ident(stream) operator(=) keyword(new) pre_type(BufferedOutputStream)operator(()ident(fos)(\)) (}) - directive(private) ident(createWriter)operator(()ident(os)(\)) operator({)keyword(new) pre_type(PrintWriter)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()ident(os)(\)\)}) - directive(private) ident(createReader)operator(()ident(is)(\)) operator({)keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()ident(is)(\)\)}) + directive(private) ident(createWriter)operator(()ident(os)(\)) operator({)keyword(new) pre_type(PrintWriter)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()ident(os)(\))(\))(}) + directive(private) ident(createReader)operator(()ident(is)(\)) operator({)keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()ident(is)(\))(\))(}) directive(private) ident(createPiperThread)operator(()ident(br)operator(,) ident(pw)(\)) operator({) pre_type(Thread)operator(.)ident(start)operator({) keyword(def) ident(next) - keyword(while)operator(()operator(()ident(next) operator(=) ident(br)operator(.)ident(readLine)operator(()(\)\))operator(!=)keyword(null)(\)) operator({) + keyword(while)operator(()operator(()ident(next) operator(=) ident(br)operator(.)ident(readLine)operator(()(\))(\))operator(!=)keyword(null)(\)) operator({) ident(pw)operator(.)ident(println)operator(()ident(next)(\)) (}) ident(pw)operator(.)ident(flush)operator(()(\))operator(;) ident(pw)operator(.)ident(close)operator(()(\)) @@ -4637,7 +4637,7 @@ type(class) class(TeeTarget) operator({) directive(private) ident(createProcessReader)operator(()ident(name)(\)) operator({) keyword(def) ident(readFromStream) operator(=) keyword(new) pre_type(PipedInputStream)operator(()(\)) keyword(def) ident(r1) operator(=) ident(createReader)operator(()ident(readFromStream)(\)) - ident(stream) operator(=) keyword(new) pre_type(BufferedOutputStream)operator(()keyword(new) pre_type(PipedOutputStream)operator(()ident(readFromStream)(\)\)) + ident(stream) operator(=) keyword(new) pre_type(BufferedOutputStream)operator(()keyword(new) pre_type(PipedOutputStream)operator(()ident(readFromStream)(\))(\)) ident(p) operator(=) pre_type(Runtime)operator(.)ident(runtime)operator(.)ident(exec)operator(()ident(name)(\)) keyword(def) ident(w1) operator(=) ident(createWriter)operator(()ident(p)operator(.)ident(outputStream)(\)) ident(createPiperThread)operator(()ident(r1)operator(,) ident(w1)(\)) @@ -4649,9 +4649,9 @@ type(class) class(TeeTarget) operator({) ident(targets) operator(=) type([]) ident(append) operator(=) keyword(false)operator(;) ident(ignore) operator(=) keyword(false)operator(;) ident(includeStdout) operator(=) keyword(true)operator(;) ident(buffer) operator(=) keyword(true) -operator(()integer(0)operator(..<)ident(args)operator(.)ident(size)operator(()(\)\))operator(.)ident(each)operator({) +operator(()integer(0)operator(..<)ident(args)operator(.)ident(size)operator(()(\))(\))operator(.)ident(each)operator({) ident(arg) operator(=) ident(args)operator([)local_variable(it)(]) - keyword(if) operator(()ident(arg)operator(.)ident(startsWith)operator(()string<delimiter(')content(-)delimiter(')>(\)\)) operator({) + keyword(if) operator(()ident(arg)operator(.)ident(startsWith)operator(()string<delimiter(')content(-)delimiter(')>(\))(\)) operator({) keyword(switch) operator(()ident(arg)(\)) operator({) keyword(case) string<delimiter(')content(-a)delimiter(')>operator(:) ident(append) operator(=) keyword(true)operator(;) keyword(break) keyword(case) string<delimiter(')content(-i)delimiter(')>operator(:) ident(ignore) operator(=) keyword(true)operator(;) keyword(break) @@ -4666,7 +4666,7 @@ operator(()integer(0)operator(..<)ident(args)operator(.)ident(size)operator(()(\ ident(targets) operator(=) ident(targets)operator(.)ident(collect)operator({) keyword(new) ident(TeeTarget)operator(()local_variable(it)operator(,) ident(append)operator(,) ident(buffer)operator(,) ident(ignore)(\)) (}) keyword(if) operator(()ident(includeStdout)(\)) ident(targets) operator(+=) keyword(new) ident(TeeTarget)operator(()pre_type(System)operator(.)ident(out)(\)) keyword(def) ident(tee) operator(=) keyword(new) ident(MultiStream)operator(()ident(targets)operator(,) ident(ignore)(\)) -keyword(while) operator(()ident(line) operator(=) pre_type(System)operator(.)ident(in)operator(.)ident(readLine)operator(()(\)\)) operator({) +keyword(while) operator(()ident(line) operator(=) pre_type(System)operator(.)ident(in)operator(.)ident(readLine)operator(()(\))(\)) operator({) ident(tee)operator(.)ident(println)operator(()ident(line)(\)) (}) ident(tee)operator(.)ident(close)operator(()(\)) @@ -4687,7 +4687,7 @@ ident(buf)operator(.)ident(flip)operator(()(\)) ident(date) operator(=) ident(getDate)operator(()ident(buf)(\)) ident(line) operator(=) ident(getString)operator(()ident(buf)operator(,)integer(32)(\)) ident(host) operator(=) ident(getString)operator(()ident(buf)operator(,)integer(256)(\)) -ident(println) string<delimiter(")content(User with uid )inline<inline_delimiter($)ident(uid)>content( last logged on )inline<inline_delimiter($)ident(date)>content( from )inline<inline_delimiter(${)ident(host?host:'unknown')inline_delimiter(})>content( on )inline<inline_delimiter($)ident(line)>delimiter(")> +ident(println) string<delimiter(")content(User with uid )inline<inline_delimiter($)ident(uid)>content( last logged on )inline<inline_delimiter($)ident(date)>content( from )inline<inline_delimiter(${)ident(host)operator(?)ident(host)operator(:)string<delimiter(')content(unknown)delimiter(')>inline_delimiter(})>content( on )inline<inline_delimiter($)ident(line)>delimiter(")> comment(// => User with uid 1000 last logged on Sat Jan 13 09:09:35 EST 2007 from unknown on :0) comment(//----------------------------------------------------------------------------------) @@ -4724,7 +4724,7 @@ comment(// in most situations) comment(// File modification time (no exact equivalent of ctime - but you can) comment(// call stat(\) using JNI or use exec(\) of dir or ls to get this kind of info\)) comment(// JSR 203 also plans to provide such info in Java 7.) -ident(println) keyword(new) pre_type(Date)operator(()ident(entry)operator(.)ident(lastModified)operator(()(\)\)) +ident(println) keyword(new) pre_type(Date)operator(()ident(entry)operator(.)ident(lastModified)operator(()(\))(\)) comment(// => Wed Aug 04 07:00:00 EST 2004) comment(// file size) @@ -4765,7 +4765,7 @@ comment(// => Sun Jan 07 11:49:02 EST 2007) ident(MILLIS_PER_WEEK) operator(=) integer(60) operator(*) integer(60) operator(*) integer(24) operator(*) integer(1000) operator(*) integer(7) ident(file)operator(.)ident(setLastModified)operator(()ident(timeModified) operator(-) ident(MILLIS_PER_WEEK)(\)) -ident(println) keyword(new) pre_type(Date)operator(()ident(file)operator(.)ident(lastModified)operator(()(\)\)) +ident(println) keyword(new) pre_type(Date)operator(()ident(file)operator(.)ident(lastModified)operator(()(\))(\)) comment(// => Sun Dec 31 11:49:02 EST 2006) comment(// Java currently doesn't provide access to other timestamps but) @@ -4812,11 +4812,11 @@ ident(files)operator([)integer(0)operator(..)integer(1)(])operator(.)ident(each) keyword(def) method(deleteFiles)operator(()ident(files)(\)) operator({) keyword(def) ident(problemFileNames) operator(=) type([]) ident(files)operator(.)ident(each)operator({) ident(f) operator(->) - keyword(if) operator(()operator(!)ident(f)operator(.)ident(delete)operator(()(\)\)) + keyword(if) operator(()operator(!)ident(f)operator(.)ident(delete)operator(()(\))(\)) ident(problemFileNames) operator(+=) ident(f)operator(.)ident(name) (}) keyword(def) ident(delCnt) operator(=) ident(files)operator(.)ident(size)operator(()(\)) operator(-) ident(problemFileNames)operator(.)ident(size)operator(()(\)) - ident(println) string<delimiter(")content(Successfully deleted )inline<inline_delimiter($)ident(delCnt)>content( of )inline<inline_delimiter(${)ident(files.size(\))inline_delimiter(})>content( file(s\))delimiter(")> + ident(println) string<delimiter(")content(Successfully deleted )inline<inline_delimiter($)ident(delCnt)>content( of )inline<inline_delimiter(${)ident(files)operator(.)ident(size)operator(()(\))inline_delimiter(})>content( file(s\))delimiter(")> keyword(if) operator(()ident(problemFileNames)(\)) ident(println) string<delimiter(")content(Problems file(s\): )delimiter(")> operator(+) ident(problemFileNames)operator(.)ident(join)operator(()string<delimiter(')content(, )delimiter(')>(\)) (}) @@ -4932,7 +4932,7 @@ comment(// process only unique files) ident(seen) operator(=) type([]) keyword(def) method(myProcessing)operator(()ident(file)(\)) operator({) keyword(def) ident(path) operator(=) ident(file)operator(.)ident(canonicalPath) - keyword(if) operator(()operator(!)ident(seen)operator(.)ident(contains)operator(()ident(path)(\)\)) operator({) + keyword(if) operator(()operator(!)ident(seen)operator(.)ident(contains)operator(()ident(path)(\))(\)) operator({) ident(seen) operator(<)operator(<) ident(path) comment(// do something with file because we haven't seen it before) (}) @@ -4944,7 +4944,7 @@ ident(filenames) operator(=) operator([)string<delimiter(')content(/dummyfile1.t ident(filenames)operator(.)ident(each)operator({) ident(filename) operator(->) keyword(def) ident(file) operator(=) keyword(new) pre_type(File)operator(()ident(filename)(\)) keyword(def) ident(cpath) operator(=) ident(file)operator(.)ident(canonicalPath) - keyword(if) operator(()operator(!)ident(seen)operator(.)ident(containsKey)operator(()ident(cpath)(\)\)) operator({) + keyword(if) operator(()operator(!)ident(seen)operator(.)ident(containsKey)operator(()ident(cpath)(\))(\)) operator({) ident(seen)operator([)ident(cpath)(]) operator(=) type([]) (}) ident(seen)operator([)ident(cpath)(]) operator(+=) ident(file)operator(.)ident(absolutePath) @@ -4964,11 +4964,11 @@ ident(basedir) operator(=) string<delimiter(')content(Pleac/src)delimiter(')> comment(// process all files printing out full name (. and .. auto excluded\)) keyword(new) pre_type(File)operator(()ident(basedir)(\))operator(.)ident(eachFile)operator({) ident(f)operator(->) - keyword(if) operator(()ident(f)operator(.)ident(isFile)operator(()(\)\)) ident(println) ident(f)operator(.)ident(canonicalPath) + keyword(if) operator(()ident(f)operator(.)ident(isFile)operator(()(\))(\)) ident(println) ident(f)operator(.)ident(canonicalPath) (}) comment(// also remove dot files such as '.svn' and '.cvs' etc.) keyword(new) pre_type(File)operator(()ident(basedir)(\))operator(.)ident(eachFileMatch)operator(()operator(~)string<delimiter(')content(^[^.].*)delimiter(')>(\))operator({) ident(f)operator(->) - keyword(if) operator(()ident(f)operator(.)ident(isFile)operator(()(\)\)) ident(println) ident(f)operator(.)ident(canonicalPath) + keyword(if) operator(()ident(f)operator(.)ident(isFile)operator(()(\))(\)) ident(println) ident(f)operator(.)ident(canonicalPath) (}) comment(//----------------------------------------------------------------------------------) @@ -4977,13 +4977,13 @@ comment(//---------------------------------------------------------------------- comment(// Globbing via Apache Jakarta ORO) keyword(import) include(org.apache.oro.io.GlobFilenameFilter) ident(dir) operator(=) keyword(new) pre_type(File)operator(()ident(basedir)(\)) -ident(namelist) operator(=) ident(dir)operator(.)ident(list)operator(()keyword(new) ident(GlobFilenameFilter)operator(()string<delimiter(')content(*.c)delimiter(')>(\)\)) +ident(namelist) operator(=) ident(dir)operator(.)ident(list)operator(()keyword(new) ident(GlobFilenameFilter)operator(()string<delimiter(')content(*.c)delimiter(')>(\))(\)) ident(filelist) operator(=) ident(dir)operator(.)ident(listFiles)operator(()keyword(new) ident(GlobFilenameFilter)operator(()string<delimiter(')content(*.h)delimiter(')>(\)) keyword(as) pre_type(FilenameFilter)(\)) comment(// Built-in matching using regex's) ident(files) operator(=) type([]) keyword(new) pre_type(File)operator(()ident(basedir)(\))operator(.)ident(eachFileMatch)operator(()operator(~)regexp<delimiter(/)content(\\.)content([ch])content($)delimiter(/)>(\))operator({) ident(f)operator(->) - keyword(if) operator(()ident(f)operator(.)ident(isFile)operator(()(\)\)) ident(files) operator(+=) ident(f) + keyword(if) operator(()ident(f)operator(.)ident(isFile)operator(()(\))(\)) ident(files) operator(+=) ident(f) (}) comment(// Using Ant's FileScanner (supports arbitrary nested levels using **\)) @@ -5023,19 +5023,19 @@ comment(// => Pleac/src contains 365676 bytes) comment(// find biggest) ident(biggest) operator(=) ident(files)operator(.)ident(max)operator({) local_variable(it)operator(.)ident(size)operator(()(\)) (}) -ident(println) string<delimiter(")content(Biggest file is )inline<inline_delimiter($)ident(biggest)>content(.name with )inline<inline_delimiter(${)ident(biggest.size(\))inline_delimiter(})>content( bytes)delimiter(")> +ident(println) string<delimiter(")content(Biggest file is )inline<inline_delimiter($)ident(biggest)>content(.name with )inline<inline_delimiter(${)ident(biggest)operator(.)ident(size)operator(()(\))inline_delimiter(})>content( bytes)delimiter(")> comment(// => Biggest file is pleac6.groovy with 42415 bytes) comment(// find most recently modified) ident(youngest) operator(=) ident(files)operator(.)ident(max)operator({) local_variable(it)operator(.)ident(lastModified)operator(()(\)) (}) -ident(println) string<delimiter(")content(Most recently modified is )inline<inline_delimiter($)ident(youngest)>content(.name, changed )inline<inline_delimiter(${)ident(new Date(youngest.lastModified(\)\))inline_delimiter(})>delimiter(")> +ident(println) string<delimiter(")content(Most recently modified is )inline<inline_delimiter($)ident(youngest)>content(.name, changed )inline<inline_delimiter(${)keyword(new) pre_type(Date)operator(()ident(youngest)operator(.)ident(lastModified)operator(()(\))(\))inline_delimiter(})>delimiter(")> comment(// => Most recently modified is pleac9.groovy, changed Tue Jan 09 07:35:39 EST 2007) comment(// find all directories) ident(dir)operator(.)ident(eachDir)operator({) ident(println) string<delimiter(')content(Found: )delimiter(')> operator(+) local_variable(it)operator(.)ident(name)(}) comment(// find all directories recursively) -ident(dir)operator(.)ident(eachFileRecurse)operator({) ident(f) operator(->) keyword(if) operator(()ident(f)operator(.)ident(isDirectory)operator(()(\)\)) ident(println) string<delimiter(')content(Found: )delimiter(')> operator(+) ident(f)operator(.)ident(canonicalPath)(}) +ident(dir)operator(.)ident(eachFileRecurse)operator({) ident(f) operator(->) keyword(if) operator(()ident(f)operator(.)ident(isDirectory)operator(()(\))(\)) ident(println) string<delimiter(')content(Found: )delimiter(')> operator(+) ident(f)operator(.)ident(canonicalPath)(}) comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_9.8) @@ -5054,7 +5054,7 @@ comment(//---------------------------------------------------------------------- comment(// @@PLEAC@@_9.9) comment(//----------------------------------------------------------------------------------) ident(names) operator(=) operator([)string<delimiter(')content(Pleac/src/abc.java)delimiter(')>operator(,) string<delimiter(')content(Pleac/src/def.groovy)delimiter(')>(]) -ident(names)operator(.)ident(each)operator({) ident(name) operator(->) keyword(new) pre_type(File)operator(()ident(name)(\))operator(.)ident(renameTo)operator(()keyword(new) pre_type(File)operator(()ident(name) operator(+) string<delimiter(')content(.bak)delimiter(')>(\)\)) (}) +ident(names)operator(.)ident(each)operator({) ident(name) operator(->) keyword(new) pre_type(File)operator(()ident(name)(\))operator(.)ident(renameTo)operator(()keyword(new) pre_type(File)operator(()ident(name) operator(+) string<delimiter(')content(.bak)delimiter(')>(\))(\)) (}) comment(// The Groovy way of doing rename using an expr would be to use a closure) comment(// for the expr:) @@ -5067,7 +5067,7 @@ ident(files) operator(=) ident(args)operator([)integer(1)operator(..)operator(-) ident(shell) operator(=) keyword(new) ident(GroovyShell)operator(()ident(binding)(\)) ident(files)operator(.)ident(each)operator({) ident(f) operator(->) ident(newname) operator(=) ident(shell)operator(.)ident(evaluate)operator(()string<delimiter(")inline<inline_delimiter($)ident(op)>content((')inline<inline_delimiter($)ident(f)>content('\))delimiter(")>(\)) - keyword(new) pre_type(File)operator(()ident(f)(\))operator(.)ident(renameTo)operator(()keyword(new) pre_type(File)operator(()ident(newname)(\)\)) + keyword(new) pre_type(File)operator(()ident(f)(\))operator(.)ident(renameTo)operator(()keyword(new) pre_type(File)operator(()ident(newname)(\))(\)) (}) comment(// this would allow processing such as:) @@ -5085,7 +5085,7 @@ ident(sep) operator(=) pre_type(File)operator(.)ident(separator) ident(ext) operator(=) operator({) string<delimiter(')content(.)delimiter(')> operator(+) local_variable(it)operator(.)ident(tokenize)operator(()string<delimiter(')content(.)delimiter(')>(\))operator([)operator(-)integer(1)(]) (}) ident(base) operator(=) operator({) keyword(new) pre_type(File)operator(()local_variable(it)(\))operator(.)ident(name) operator(-) ident(ext)operator(()local_variable(it)(\)) (}) ident(parent) operator(=) operator({) keyword(new) pre_type(File)operator(()local_variable(it)(\))operator(.)ident(parent) (}) -ident(lastModified) operator(=) operator({) keyword(new) pre_type(Date)operator(()keyword(new) pre_type(File)operator(()local_variable(it)(\))operator(.)ident(lastModified)operator(()(\)\)) (}) +ident(lastModified) operator(=) operator({) keyword(new) pre_type(Date)operator(()keyword(new) pre_type(File)operator(()local_variable(it)(\))operator(.)ident(lastModified)operator(()(\))(\)) (}) comment(// would then allow the following more succinct expressions:) comment(//% rename "{ n -> parent(n\) + sep + base(n\).reverse(\) + ext(n\) }" files) comment(// with param Pleac/src/pleac9.groovy => Pleac\\src\\9caelp.groovy) @@ -5173,17 +5173,17 @@ ident(op)operator(.)ident(accepts)operator(() ident(SIZE_OPTION)operator(,) stri ident(op)operator(.)ident(accepts)operator(() ident(HELP_OPTION)operator(,) string<delimiter(')content(display this message)delimiter(')> (\)) ident(options) operator(=) ident(op)operator(.)ident(parse)operator(()ident(args)(\)) -keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(HELP_OPTION) (\)\)) operator({) +keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(HELP_OPTION) (\))(\)) operator({) ident(op)operator(.)ident(printHelpOn)operator(() pre_type(System)operator(.)ident(out) (\)) (}) keyword(else) operator({) ident(sort) operator(=) operator({)(}) ident(params) operator(=) ident(options)operator(.)ident(nonOptionArguments)operator(()(\)) ident(longFormat) operator(=) ident(options)operator(.)ident(wasDetected)operator(() ident(LONG_OPTION) (\)) ident(reversed) operator(=) ident(options)operator(.)ident(wasDetected)operator(() ident(REVERSE_OPTION) (\)) - keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(SIZE_OPTION) (\)\)) operator({) - ident(sort) operator(=) operator({)ident(a)operator(,)ident(b) operator(->) ident(a)operator(.)ident(size)operator(()(\))operator(<=)operator(>)ident(b)operator(.)ident(size)operator(()(\)}) - (}) keyword(else) keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(MODIFY_OPTION) (\)\)) operator({) - ident(sort) operator(=) operator({)ident(a)operator(,)ident(b) operator(->) ident(a)operator(.)ident(lastModified)operator(()(\))operator(<=)operator(>)ident(b)operator(.)ident(lastModified)operator(()(\)}) + keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(SIZE_OPTION) (\))(\)) operator({) + ident(sort) operator(=) operator({)ident(a)operator(,)ident(b) operator(->) ident(a)operator(.)ident(size)operator(()(\))operator(<=>)ident(b)operator(.)ident(size)operator(()(\))(}) + (}) keyword(else) keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(MODIFY_OPTION) (\))(\)) operator({) + ident(sort) operator(=) operator({)ident(a)operator(,)ident(b) operator(->) ident(a)operator(.)ident(lastModified)operator(()(\))operator(<=>)ident(b)operator(.)ident(lastModified)operator(()(\))(}) (}) ident(displayFiles)operator(()ident(params)operator(,) ident(longFormat)operator(,) ident(reversed)operator(,) ident(sort)(\)) (}) @@ -5200,7 +5200,7 @@ keyword(def) method(displayFiles)operator(()ident(params)operator(,) ident(longF ident(print) operator(()ident(file)operator(.)ident(canWrite)operator(()(\)) operator(?) string<delimiter(')content(w )delimiter(')> operator(:) string<delimiter(')content(- )delimiter(')> (\)) comment(//print (file.canExecute(\) ? 'x' : '-' \) // Java 6) ident(print) ident(file)operator(.)ident(size)operator(()(\))operator(.)ident(toString)operator(()(\))operator(.)ident(padLeft)operator(()integer(12)(\)) operator(+) string<delimiter(')content( )delimiter(')> - ident(print) keyword(new) pre_type(Date)operator(()ident(file)operator(.)ident(lastModified)operator(()(\)\))operator(.)ident(toString)operator(()(\))operator(.)ident(padRight)operator(()integer(22)(\)) + ident(print) keyword(new) pre_type(Date)operator(()ident(file)operator(.)ident(lastModified)operator(()(\))(\))operator(.)ident(toString)operator(()(\))operator(.)ident(padRight)operator(()integer(22)(\)) ident(println) string<delimiter(')content( )delimiter(')> operator(+) ident(file) (}) keyword(else) operator({) ident(println) ident(file) @@ -5276,7 +5276,7 @@ keyword(assert) ident(toInteger)operator(()ident(nums)(\)) operator(==) operator ident(orignums) operator(=) operator([)float(1.4)operator(,) float(3.5)operator(,) float(6.7)(]) keyword(def) method(truncMe)operator(()ident(n)(\)) operator({) - operator(()integer(0)operator(..<)ident(n)operator(.)ident(size)operator(()(\)\))operator(.)ident(each)operator({) ident(idx) operator(->) ident(n)operator([)ident(idx)(]) operator(=) ident(n)operator([)ident(idx)(])operator(.)ident(toInteger)operator(()(\)) (}) + operator(()integer(0)operator(..<)ident(n)operator(.)ident(size)operator(()(\))(\))operator(.)ident(each)operator({) ident(idx) operator(->) ident(n)operator([)ident(idx)(]) operator(=) ident(n)operator([)ident(idx)(])operator(.)ident(toInteger)operator(()(\)) (}) (}) ident(truncMe)operator(()ident(orignums)(\)) keyword(assert) ident(orignums) operator(==) operator([)integer(1)operator(,) integer(3)operator(,) integer(6)(]) @@ -5309,7 +5309,7 @@ keyword(def) method(saveArray)operator(()ident(ary)(\)) operator({) ident(globalArray) operator(+=) ident(ary) (}) -ident(saveArray)operator(()operator([)string<delimiter(')content(important)delimiter(')>(]\)) +ident(saveArray)operator(()operator([)string<delimiter(')content(important)delimiter(')>(])(\)) keyword(assert) ident(globalArray) operator(==) operator([)string<delimiter(")content(internal)delimiter(")>operator(,) string<delimiter(")content(important)delimiter(")>(]) comment(//----------------------------------------------------------------------------------) @@ -5357,7 +5357,7 @@ keyword(def) method(myMethod)operator(()(\)) operator({) (}) keyword(def) method(myMethod2)operator(()(\)) operator({) ident(names) operator(=) pre_type(Thread)operator(.)ident(currentThread)operator(()(\))operator(.)ident(stackTrace)operator(*.)ident(methodName) - ident(names) operator(=) ident(names)operator([)integer(3)operator(..<)ident(names)operator(.)ident(size)operator(()(\)]) comment(// skip call to dumpThread) + ident(names) operator(=) ident(names)operator([)integer(3)operator(..<)ident(names)operator(.)ident(size)operator(()(\))(]) comment(// skip call to dumpThread) ident(println) ident(groovyUnwrap)operator(()ident(names)(\)) (}) keyword(def) method(groovyUnwrap)operator(()ident(names)(\)) operator({) ident(names)operator([)ident(names)operator(.)ident(indexOf)operator(()string<delimiter(')content(invoke0)delimiter(')>(\))operator(-)integer(1)(]) (}) @@ -5378,8 +5378,8 @@ comment(// no such problem, just call: arrayDiff(array1, array2\)) comment(// pairwise add (altered so it doesn't require equal sizes\)) keyword(def) method(pairWiseAdd)operator(()ident(a1)operator(,) ident(a2)(\)) operator({) ident(s1) operator(=) ident(a1)operator(.)ident(size)operator(()(\))operator(;) ident(s2) operator(=) ident(a2)operator(.)ident(size)operator(()(\)) - operator(()integer(0)operator(..<)operator([)ident(s1)operator(,)ident(s2)(])operator(.)ident(max)operator(()(\)\))operator(.)ident(collect)operator({) - local_variable(it) operator(>) ident(s1)operator(-)integer(1) operator(?) ident(a2)operator([)local_variable(it)(]) operator(:) operator(()local_variable(it) operator(>) ident(s2)operator(-)integer(1) operator(?) ident(a1)operator([)local_variable(it)(]) operator(:) ident(a1)operator([)local_variable(it)(]) operator(+) ident(a2)operator([)local_variable(it)(]\)) + operator(()integer(0)operator(..<)operator([)ident(s1)operator(,)ident(s2)(])operator(.)ident(max)operator(()(\))(\))operator(.)ident(collect)operator({) + local_variable(it) operator(>) ident(s1)operator(-)integer(1) operator(?) ident(a2)operator([)local_variable(it)(]) operator(:) operator(()local_variable(it) operator(>) ident(s2)operator(-)integer(1) operator(?) ident(a1)operator([)local_variable(it)(]) operator(:) ident(a1)operator([)local_variable(it)(]) operator(+) ident(a2)operator([)local_variable(it)(])(\)) (}) (}) ident(a) operator(=) operator([)integer(1)operator(,) integer(2)(]) @@ -5414,10 +5414,10 @@ keyword(def) method(addValueOrSize)operator(()ident(a1)operator(,) ident(a2)(\)) ident(b2) operator(=) operator(()ident(a2) keyword(instanceof) pre_type(Number)(\)) operator(?) ident(a2) operator(:) ident(a2)operator(.)ident(size)operator(()(\)) ident(b1) operator(+) ident(b2) (}) -keyword(assert) operator(()ident(addValueOrSize)operator(()integer(10)operator(,) string<delimiter(')content(abcd)delimiter(')>(\)\)) operator(==) integer(14) -keyword(assert) operator(()ident(addValueOrSize)operator(()integer(10)operator(,) operator([)integer(25)operator(,) integer(50)(]\)\)) operator(==) integer(12) -keyword(assert) operator(()ident(addValueOrSize)operator(()string<delimiter(')content(abc)delimiter(')>operator(,) operator([)integer(25)operator(,) integer(50)(]\)\)) operator(==) integer(5) -keyword(assert) operator(()ident(addValueOrSize)operator(()integer(25)operator(,) integer(50)(\)\)) operator(==) integer(75) +keyword(assert) operator(()ident(addValueOrSize)operator(()integer(10)operator(,) string<delimiter(')content(abcd)delimiter(')>(\))(\)) operator(==) integer(14) +keyword(assert) operator(()ident(addValueOrSize)operator(()integer(10)operator(,) operator([)integer(25)operator(,) integer(50)(])(\))(\)) operator(==) integer(12) +keyword(assert) operator(()ident(addValueOrSize)operator(()string<delimiter(')content(abc)delimiter(')>operator(,) operator([)integer(25)operator(,) integer(50)(])(\))(\)) operator(==) integer(5) +keyword(assert) operator(()ident(addValueOrSize)operator(()integer(25)operator(,) integer(50)(\))(\)) operator(==) integer(75) comment(// Of course, a key feature of many OO languages including Groovy is) comment(// method overloading so that responding to dofferent parameters has) @@ -5427,14 +5427,14 @@ type(class) class(MakeBiggerHelper) operator({) keyword(def) method(triple)operator(()type(int) ident(i)(\)) operator({) ident(i) operator(*) integer(3) (}) (}) ident(mbh) operator(=) keyword(new) ident(MakeBiggerHelper)operator(()(\)) -keyword(assert) ident(mbh)operator(.)ident(triple)operator(()operator([)integer(4)operator(,) integer(5)(]\)) operator(==) operator([)integer(12)operator(,) integer(15)(]) +keyword(assert) ident(mbh)operator(.)ident(triple)operator(()operator([)integer(4)operator(,) integer(5)(])(\)) operator(==) operator([)integer(12)operator(,) integer(15)(]) keyword(assert) ident(mbh)operator(.)ident(triple)operator(()integer(4)(\)) operator(==) integer(12) comment(// Of course with duck typing, we can rely on dynamic typing if we want) keyword(def) method(directTriple)operator(()ident(arg)(\)) operator({) operator(()ident(arg) keyword(instanceof) pre_type(Number)(\)) operator(?) ident(arg) operator(*) integer(3) operator(:) ident(arg)operator(.)ident(collect)operator({) local_variable(it) operator(*) integer(3) (}) (}) -keyword(assert) ident(directTriple)operator(()operator([)integer(4)operator(,) integer(5)(]\)) operator(==) operator([)integer(12)operator(,) integer(15)(]) +keyword(assert) ident(directTriple)operator(()operator([)integer(4)operator(,) integer(5)(])(\)) operator(==) operator([)integer(12)operator(,) integer(15)(]) keyword(assert) ident(directTriple)operator(()integer(4)(\)) operator(==) integer(12) comment(//----------------------------------------------------------------------------------) @@ -5452,7 +5452,7 @@ keyword(def) method(thefunc)operator(()pre_type(Map) ident(args)(\)) operator({) comment(// positional arguments with defaults) keyword(def) method(thefunc)operator(()ident(start)operator(=)integer(0)operator(,) ident(end)operator(=)integer(30)operator(,) ident(step)operator(=)integer(10)(\)) operator({) - operator(()operator(()ident(start)operator(..)ident(end)(\))operator(.)ident(step)operator(()ident(step)(\)\)) + operator(()operator(()ident(start)operator(..)ident(end)(\))operator(.)ident(step)operator(()ident(step)(\))(\)) (}) keyword(assert) ident(thefunc)operator(()(\)) operator(==) operator([)integer(0)operator(,) integer(10)operator(,) integer(20)operator(,) integer(30)(]) @@ -5489,9 +5489,9 @@ comment(// just use a holder class, array or collection. There are no limitation comment(// on returning arbitrary nested values using this technique.) keyword(def) method(getInfo)operator(()(\)) operator({) keyword(def) ident(system) operator(=) operator([)key(millis)operator(:)pre_type(System)operator(.)ident(currentTimeMillis)operator(()(\))operator(,) - key(version)operator(:)pre_type(System)operator(.)ident(getProperty)operator(()string<delimiter(')content(java.vm.version)delimiter(')>(\)]) + key(version)operator(:)pre_type(System)operator(.)ident(getProperty)operator(()string<delimiter(')content(java.vm.version)delimiter(')>(\))(]) keyword(def) ident(runtime) operator(=) operator([)key(freemem)operator(:)pre_type(Runtime)operator(.)ident(runtime)operator(.)ident(freeMemory)operator(()(\))operator(,) - key(maxmem)operator(:)pre_type(Runtime)operator(.)ident(runtime)operator(.)ident(maxMemory)operator(()(\)]) + key(maxmem)operator(:)pre_type(Runtime)operator(.)ident(runtime)operator(.)ident(maxMemory)operator(()(\))(]) keyword(return) operator([)key(system)operator(:)ident(system)operator(,) key(runtime)operator(:)ident(runtime)(]) (}) ident(println) ident(info)operator(.)ident(runtime)operator(.)ident(maxmem) comment(// => 66650112 (info automatically calls getInfo(\) here\)) @@ -5511,7 +5511,7 @@ keyword(def) method(check)operator(()ident(thing)(\)) operator({) ident(println) operator(()ident(result) operator(?) string<delimiter(")content(Worked with result: )inline<inline_delimiter($)ident(result)>delimiter(")> operator(:) string<delimiter(')content(Failed)delimiter(')>(\)) (}) ident(check)operator(()integer(4)(\)) -ident(check)operator(()operator([)integer(1)operator(,) integer(2)(]\)) +ident(check)operator(()operator([)integer(1)operator(,) integer(2)(])(\)) ident(check)operator(()string<delimiter(')content(abc)delimiter(')>(\)) comment(// =>) comment(// Failed) @@ -5668,7 +5668,7 @@ type(class) class(FontHelper) operator({) (}) comment(// but this method will catch any undefined ones) keyword(def) method(invokeMethod)operator(()pre_type(String) ident(name)operator(,) pre_type(Object) ident(args)(\)) operator({) - ident(buildFont)operator(()ident(name)operator(,) ident(args)operator(.)ident(join)operator(()string<delimiter(')content( and )delimiter(')>(\)\)) + ident(buildFont)operator(()ident(name)operator(,) ident(args)operator(.)ident(join)operator(()string<delimiter(')content( and )delimiter(')>(\))(\)) (}) keyword(def) method(buildFont)operator(()ident(name)operator(,) ident(info)(\)) operator({) string<delimiter(")content(<FONT COLOR=')inline<inline_delimiter($)ident(name)>content('>)delimiter(")> operator(+) ident(info) operator(+) string<delimiter(")content(</FONT>)delimiter(")> @@ -5700,8 +5700,8 @@ doctype(#!/usr/bin/groovy) keyword(import) include(javax.mail.*) comment(// solution using mstor package (mstor.sf.net\)) -ident(session) operator(=) ident(Session)operator(.)ident(getDefaultInstance)operator(()keyword(new) pre_type(Properties)operator(()(\)\)) -ident(store) operator(=) ident(session)operator(.)ident(getStore)operator(()keyword(new) ident(URLName)operator(()string<delimiter(')content(mstor:/path_to_your_mbox_directory)delimiter(')>(\)\)) +ident(session) operator(=) ident(Session)operator(.)ident(getDefaultInstance)operator(()keyword(new) pre_type(Properties)operator(()(\))(\)) +ident(store) operator(=) ident(session)operator(.)ident(getStore)operator(()keyword(new) ident(URLName)operator(()string<delimiter(')content(mstor:/path_to_your_mbox_directory)delimiter(')>(\))(\)) ident(store)operator(.)ident(connect)operator(()(\)) comment(// read messages from Inbox) @@ -5715,7 +5715,7 @@ ident(subjectExcludingReplyPrefix) operator(=) operator({) ident(m) operator(->) ident(date) operator(=) operator({) ident(m) operator(->) ident(d) operator(=) ident(m)operator(.)ident(sentDate)operator(;) keyword(new) pre_type(Date)operator(()ident(d)operator(.)ident(year)operator(,) ident(d)operator(.)ident(month)operator(,) ident(d)operator(.)ident(date)(\)) (}) comment(// ignore time fields) comment(// sort by subject excluding 'Re:' prefixs then print subject for first 6) -ident(println) ident(messages)operator(.)ident(sort)operator({)ident(subjectExcludingReplyPrefix)operator(()local_variable(it)(\)})operator([)integer(0)operator(..)integer(5)(])operator(*.)ident(subject)operator(.)ident(join)operator(()string<delimiter(')content(\\n)delimiter(')>(\)) +ident(println) ident(messages)operator(.)ident(sort)operator({)ident(subjectExcludingReplyPrefix)operator(()local_variable(it)(\))(})operator([)integer(0)operator(..)integer(5)(])operator(*.)ident(subject)operator(.)ident(join)operator(()string<delimiter(')content(\\n)delimiter(')>(\)) comment(// =>) comment(// Additional Resources for JDeveloper 10g (10.1.3\)) comment(// Amazon Web Services Developer Connection Newsletter #18) @@ -5727,8 +5727,8 @@ comment(// BigPond Account Notification) comment(// sort by date then subject (print first 6 entries\)) ident(sorted) operator(=) ident(messages)operator(.)ident(sort)operator({) ident(a)operator(,)ident(b) operator(->) ident(date)operator(()ident(a)(\)) operator(==) ident(date)operator(()ident(b)(\)) operator(?) - ident(subjectExcludingReplyPrefix)operator(()ident(a)(\)) operator(<=)operator(>) ident(subjectExcludingReplyPrefix)operator(()ident(b)(\)) operator(:) - ident(date)operator(()ident(a)(\)) operator(<=)operator(>) ident(date)operator(()ident(b)(\)) + ident(subjectExcludingReplyPrefix)operator(()ident(a)(\)) operator(<=>) ident(subjectExcludingReplyPrefix)operator(()ident(b)(\)) operator(:) + ident(date)operator(()ident(a)(\)) operator(<=>) ident(date)operator(()ident(b)(\)) (}) ident(sorted)operator([)integer(0)operator(..)integer(5)(])operator(.)ident(each)operator({) ident(m) operator(->) ident(println) string<delimiter(")inline<inline_delimiter($)ident(m)>content(.sentDate: )inline<inline_delimiter($)ident(m)>content(.subject)delimiter(")> (}) comment(// =>) @@ -5811,7 +5811,7 @@ ident(println) ident(implicitCreation)operator([)operator(-)integer(1)(]) comment(//=> 10) comment(// And if you were looping through (and not using a list closure operator\)) -operator(()integer(0)operator(..<)ident(aref)operator(.)ident(size)operator(()(\)\))operator(.)ident(each)operator({) comment(/* do something */) (}) +operator(()integer(0)operator(..<)ident(aref)operator(.)ident(size)operator(()(\))(\))operator(.)ident(each)operator({) comment(/* do something */) (}) ident(numItems) operator(=) ident(aref)operator(.)ident(size)operator(()(\)) @@ -5832,7 +5832,7 @@ ident(println) ident(anonList)operator([)integer(4)(]) comment(// refers to the comment(// The following two statements are equivalent and return up to 3 elements) comment(// at indices 3, 4, and 5 (if they exist\).) ident(x) operator(=) ident(anonList)operator([)integer(3)operator(..)integer(5)(]) -ident(x) operator(=) ident(anonList)operator([)operator(()integer(3)operator(..)integer(5)(\))operator(.)ident(step)operator(()integer(1)(\)]) +ident(x) operator(=) ident(anonList)operator([)operator(()integer(3)operator(..)integer(5)(\))operator(.)ident(step)operator(()integer(1)(\))(]) comment(// This will insert 3 elements, overwriting elements at indices 3,4, or 5 - if they exist.) ident(anonList)operator([)integer(3)operator(..)integer(5)(]) operator(=) operator([)string<delimiter(")content(blackberry)delimiter(")>operator(,) string<delimiter(")content(blueberry)delimiter(")>operator(,) string<delimiter(")content(pumpkin)delimiter(")>(]) @@ -5842,8 +5842,8 @@ keyword(for) operator(()ident(item) keyword(in) ident(anonList)(\)) ident(printl ident(anonList)operator(.)ident(each)operator({) ident(println) local_variable(it) (}) comment(// index-based looping) -operator(()integer(0)operator(..<)ident(anonList)operator(.)ident(size)operator(()(\)\))operator(.)ident(each)operator({) ident(idx) operator(->) ident(println) ident(anonList)operator([)ident(idx)(]) (}) -keyword(for) operator(()ident(idx) keyword(in) integer(0)operator(..<)ident(anonList)operator(.)ident(size)operator(()(\)\)) ident(println) ident(anonList)operator([)ident(idx)(]) +operator(()integer(0)operator(..<)ident(anonList)operator(.)ident(size)operator(()(\))(\))operator(.)ident(each)operator({) ident(idx) operator(->) ident(println) ident(anonList)operator([)ident(idx)(]) (}) +keyword(for) operator(()ident(idx) keyword(in) integer(0)operator(..<)ident(anonList)operator(.)ident(size)operator(()(\))(\)) ident(println) ident(anonList)operator([)ident(idx)(]) comment(//----------------------------------------------------------------------------------) @@ -5896,7 +5896,7 @@ comment(// a key => [3, 4, 5, 6]) ident(values) operator(=) operator([)string<delimiter(')content(key1)delimiter(')>operator(,)string<delimiter(')content(key2)delimiter(')>(])operator(.)ident(collect)operator({) ident(myHash)operator([)local_variable(it)(]) (}) ident(println) ident(values) comment(// => [100, 200]) -keyword(for) operator(()ident(key) keyword(in) operator([)string<delimiter(")content(key1)delimiter(")>operator(,) string<delimiter(")content(key2)delimiter(")>(]\)) operator({) +keyword(for) operator(()ident(key) keyword(in) operator([)string<delimiter(")content(key1)delimiter(")>operator(,) string<delimiter(")content(key2)delimiter(")>(])(\)) operator({) ident(myHash)operator([)ident(key)(]) operator(+=) integer(7) (}) ident(println) ident(myHash) comment(// => ["key1":107, "key2":207]) @@ -5917,7 +5917,7 @@ ident(commands) operator(=) operator([)key(happy)operator(:) local_variable(this ident(print) string<delimiter(")content(How are you?)delimiter(")> ident(cmd) operator(=) pre_type(System)operator(.)ident(in)operator(.)ident(readLine)operator(()(\)) -keyword(if) operator(()ident(cmd) keyword(in) ident(commands)operator(.)ident(keySet)operator(()(\)\)) ident(commands)operator([)ident(cmd)(])operator(()(\)) +keyword(if) operator(()ident(cmd) keyword(in) ident(commands)operator(.)ident(keySet)operator(()(\))(\)) ident(commands)operator([)ident(cmd)(])operator(()(\)) keyword(else) ident(println) string<delimiter(")content(No such command: )inline<inline_delimiter($)ident(cmd)>delimiter(")> @@ -5929,13 +5929,13 @@ keyword(def) method(counterMaker)operator(()(\))operator({) (}) ident(counter) operator(=) ident(counterMaker)operator(()(\)) -integer(5)operator(.)ident(times)operator({) ident(print) string<delimiter(")inline<inline_delimiter(${)ident(counter(\))inline_delimiter(})>content( )delimiter(")> (})operator(;) ident(println)operator(()(\)) +integer(5)operator(.)ident(times)operator({) ident(print) string<delimiter(")inline<inline_delimiter(${)ident(counter)operator(()(\))inline_delimiter(})>content( )delimiter(")> (})operator(;) ident(println)operator(()(\)) ident(counter1) operator(=) ident(counterMaker)operator(()(\)) ident(counter2) operator(=) ident(counterMaker)operator(()(\)) -integer(5)operator(.)ident(times)operator({) ident(println) string<delimiter(")inline<inline_delimiter(${)ident(counter1(\))inline_delimiter(})>content( )delimiter(")> (}) -ident(println) string<delimiter(")inline<inline_delimiter(${)ident(counter1(\))inline_delimiter(})>content( )inline<inline_delimiter(${)ident(counter2(\))inline_delimiter(})>delimiter(")> +integer(5)operator(.)ident(times)operator({) ident(println) string<delimiter(")inline<inline_delimiter(${)ident(counter1)operator(()(\))inline_delimiter(})>content( )delimiter(")> (}) +ident(println) string<delimiter(")inline<inline_delimiter(${)ident(counter1)operator(()(\))inline_delimiter(})>content( )inline<inline_delimiter(${)ident(counter2)operator(()(\))inline_delimiter(})>delimiter(")> comment(//=> 0) comment(//=> 1) comment(//=> 2) @@ -5952,8 +5952,8 @@ ident(early) operator(=) ident(timestamp)operator(()(\)) comment(//sleep(10000\)) ident(later) operator(=) ident(timestamp)operator(()(\)) ident(sleep)operator(()integer(2000)(\)) -ident(println) string<delimiter(")content(It's been )inline<inline_delimiter(${)ident(early(\))inline_delimiter(})>content( seconds since early.)delimiter(")> -ident(println) string<delimiter(")content(It's been )inline<inline_delimiter(${)ident(later(\))inline_delimiter(})>content( seconds since later.)delimiter(")> +ident(println) string<delimiter(")content(It's been )inline<inline_delimiter(${)ident(early)operator(()(\))inline_delimiter(})>content( seconds since early.)delimiter(")> +ident(println) string<delimiter(")content(It's been )inline<inline_delimiter(${)ident(later)operator(()(\))inline_delimiter(})>content( seconds since later.)delimiter(")> comment(//=> It's been 12 seconds since early.) comment(//=> It's been 2 seconds since later.) comment(//----------------------------------------------------------------------------------) @@ -5967,7 +5967,7 @@ comment(// Some operations produce new objects.) comment(// 15 is an Integer which is an immutable object.) comment(// passing 15 to a method passes a reference to the Integer object.) -keyword(def) method(print)operator(()ident(n)(\)) operator({) ident(println) string<delimiter(")inline<inline_delimiter(${)ident(n.toString(\))inline_delimiter(})>delimiter(")> (}) +keyword(def) method(print)operator(()ident(n)(\)) operator({) ident(println) string<delimiter(")inline<inline_delimiter(${)ident(n)operator(.)ident(toString)operator(()(\))inline_delimiter(})>delimiter(")> (}) ident(print)operator(()integer(15)(\)) comment(// no need to create any kind of explicit reference) comment(// even though Integers are immutable, references to them are not) @@ -5987,7 +5987,7 @@ ident(print) ident(list) comment(//=> [[1] 1 s]) ident(list) operator(=) ident(list)operator(.)ident(collect)operator({) local_variable(it) operator(+) integer(1) (}) ident(print) ident(list) comment(//=> [[1, 1], 2, s1]) -ident(list) operator(=) operator([)operator([)string<delimiter(')content(Z)delimiter(')>operator(,) string<delimiter(')content(Y)delimiter(')>operator(,) string<delimiter(')content(X)delimiter(')>(])operator(,) operator([)string<delimiter(')content(C)delimiter(')>operator(,) string<delimiter(')content(B)delimiter(')>operator(,) string<delimiter(')content(A)delimiter(')>(])operator(,) operator([)integer(5)operator(,) integer(3)operator(,) integer(1)(]]) +ident(list) operator(=) operator([)operator([)string<delimiter(')content(Z)delimiter(')>operator(,) string<delimiter(')content(Y)delimiter(')>operator(,) string<delimiter(')content(X)delimiter(')>(])operator(,) operator([)string<delimiter(')content(C)delimiter(')>operator(,) string<delimiter(')content(B)delimiter(')>operator(,) string<delimiter(')content(A)delimiter(')>(])operator(,) operator([)integer(5)operator(,) integer(3)operator(,) integer(1)(])(]) ident(list)operator(.)ident(each)operator({) local_variable(it)operator(.)ident(sort)operator(()(\)) (}) comment(// sort operation operates inline) ident(println) ident(list) comment(// => [["X", "Y", "Z"], ["A", "B", "C"], [1, 3, 5]]) comment(//----------------------------------------------------------------------------------) @@ -5999,7 +5999,7 @@ comment(// As indicated by the previous section, everything is referenced, so) comment(// just create a list as normal, and beware that augmented assignment) comment(// works differently with immutable objects to mutable ones and depends) comment(// on the semantics of the particular operation invoked:) -ident(mylist) operator(=) operator([)integer(1)operator(,) string<delimiter(")content(s)delimiter(")>operator(,) operator([)integer(1)(]]) +ident(mylist) operator(=) operator([)integer(1)operator(,) string<delimiter(")content(s)delimiter(")>operator(,) operator([)integer(1)(])(]) ident(print) ident(mylist) comment(//=> [1, s, [1]]) @@ -6035,23 +6035,23 @@ keyword(def) method(mkcounter)operator(()ident(count)(\)) operator({) ident(c1) operator(=) ident(mkcounter)operator(()integer(20)(\)) ident(c2) operator(=) ident(mkcounter)operator(()integer(77)(\)) -ident(println) string<delimiter(")content(next c1: )inline<inline_delimiter(${)ident(c1["NEXT"](\))inline_delimiter(})>delimiter(")> comment(// 21) -ident(println) string<delimiter(")content(next c2: )inline<inline_delimiter(${)ident(c2["NEXT"](\))inline_delimiter(})>delimiter(")> comment(// 78) -ident(println) string<delimiter(")content(next c1: )inline<inline_delimiter(${)ident(c1["NEXT"](\))inline_delimiter(})>delimiter(")> comment(// 22) -ident(println) string<delimiter(")content(last c1: )inline<inline_delimiter(${)ident(c1["PREV"](\))inline_delimiter(})>delimiter(")> comment(// 21) -ident(println) string<delimiter(")content(last c1: )inline<inline_delimiter(${)ident(c1["LAST"](\))inline_delimiter(})>delimiter(")> comment(// 20) -ident(println) string<delimiter(")content(old c2: )inline<inline_delimiter(${)ident(c2["RESET"](\))inline_delimiter(})>delimiter(")> comment(// 77) +ident(println) string<delimiter(")content(next c1: )inline<inline_delimiter(${)ident(c1)operator([)string<delimiter(")content(NEXT)delimiter(")>(])operator(()(\))inline_delimiter(})>delimiter(")> comment(// 21) +ident(println) string<delimiter(")content(next c2: )inline<inline_delimiter(${)ident(c2)operator([)string<delimiter(")content(NEXT)delimiter(")>(])operator(()(\))inline_delimiter(})>delimiter(")> comment(// 78) +ident(println) string<delimiter(")content(next c1: )inline<inline_delimiter(${)ident(c1)operator([)string<delimiter(")content(NEXT)delimiter(")>(])operator(()(\))inline_delimiter(})>delimiter(")> comment(// 22) +ident(println) string<delimiter(")content(last c1: )inline<inline_delimiter(${)ident(c1)operator([)string<delimiter(")content(PREV)delimiter(")>(])operator(()(\))inline_delimiter(})>delimiter(")> comment(// 21) +ident(println) string<delimiter(")content(last c1: )inline<inline_delimiter(${)ident(c1)operator([)string<delimiter(")content(LAST)delimiter(")>(])operator(()(\))inline_delimiter(})>delimiter(")> comment(// 20) +ident(println) string<delimiter(")content(old c2: )inline<inline_delimiter(${)ident(c2)operator([)string<delimiter(")content(RESET)delimiter(")>(])operator(()(\))inline_delimiter(})>delimiter(")> comment(// 77) comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_11.8) comment(//----------------------------------------------------------------------------------) keyword(def) method(addAndMultiply)operator(()ident(a)operator(,) ident(b)(\)) operator({) - ident(println) string<delimiter(")inline<inline_delimiter(${)ident(a+b)inline_delimiter(})>content( )inline<inline_delimiter(${)ident(a*b)inline_delimiter(})>delimiter(")> + ident(println) string<delimiter(")inline<inline_delimiter(${)ident(a)operator(+)ident(b)inline_delimiter(})>content( )inline<inline_delimiter(${)ident(a)operator(*)ident(b)inline_delimiter(})>delimiter(")> (}) ident(methRef) operator(=) local_variable(this)operator(.)operator(&)ident(addAndMultiply) comment(// or use direct closure) -ident(multiplyAndAdd) operator(=) operator({) ident(a)operator(,)ident(b) operator(->) ident(println) string<delimiter(")inline<inline_delimiter(${)ident(a*b)inline_delimiter(})>content( )inline<inline_delimiter(${)ident(a+b)inline_delimiter(})>delimiter(")> (}) +ident(multiplyAndAdd) operator(=) operator({) ident(a)operator(,)ident(b) operator(->) ident(println) string<delimiter(")inline<inline_delimiter(${)ident(a)operator(*)ident(b)inline_delimiter(})>content( )inline<inline_delimiter(${)ident(a)operator(+)ident(b)inline_delimiter(})>delimiter(")> (}) comment(// later ...) ident(methRef)operator(()integer(2)operator(,)integer(3)(\)) comment(// => 5 6) ident(multiplyAndAdd)operator(()integer(2)operator(,)integer(3)(\)) comment(// => 6 5) @@ -6068,28 +6068,28 @@ ident(record) operator(=) operator([) string<delimiter(")content(salary)delimiter(")>operator(:) integer(37000)operator(,) string<delimiter(")content(pals)delimiter(")>operator(:) operator([)string<delimiter(")content(Norbert)delimiter(")>operator(,) string<delimiter(")content(Rhys)delimiter(")>operator(,) string<delimiter(")content(Phineas)delimiter(")>(])operator(,) (]) -ident(println) string<delimiter(")content(I am )inline<inline_delimiter(${)ident(record.'name')inline_delimiter(})>content(, and my pals are )inline<inline_delimiter(${)ident(record.'pals'.join(', '\))inline_delimiter(})>content(.)delimiter(")> +ident(println) string<delimiter(")content(I am )inline<inline_delimiter(${)ident(record)operator(.)string<delimiter(')content(name)delimiter(')>inline_delimiter(})>content(, and my pals are )inline<inline_delimiter(${)ident(record)operator(.)string<delimiter(')content(pals)delimiter(')>operator(.)ident(join)operator(()string<delimiter(')content(, )delimiter(')>(\))inline_delimiter(})>content(.)delimiter(")> comment(// => I am Jason, and my pals are Norbert, Rhys, Phineas.) ident(byname) operator(=) operator([)operator(:)(]) -ident(byname)operator([)ident(record)operator([)string<delimiter(")content(name)delimiter(")>(]]) operator(=) ident(record) +ident(byname)operator([)ident(record)operator([)string<delimiter(")content(name)delimiter(")>(])(]) operator(=) ident(record) ident(rp) operator(=) ident(byname)operator(.)ident(get)operator(()string<delimiter(")content(Aron)delimiter(")>(\)) -keyword(if) operator(()ident(rp)(\)) ident(println) string<delimiter(")content(Aron is employee )inline<inline_delimiter(${)ident(rp["empno"])inline_delimiter(})>content(.)delimiter(")> +keyword(if) operator(()ident(rp)(\)) ident(println) string<delimiter(")content(Aron is employee )inline<inline_delimiter(${)ident(rp)operator([)string<delimiter(")content(empno)delimiter(")>(])inline_delimiter(})>content(.)delimiter(")> ident(byname)operator([)string<delimiter(")content(Jason)delimiter(")>(])operator([)string<delimiter(")content(pals)delimiter(")>(]) operator(+=) string<delimiter(")content(Theodore)delimiter(")> -ident(println) string<delimiter(")content(Jason now has )inline<inline_delimiter(${)ident(byname['Jason']['pals'].size(\))inline_delimiter(})>content( pals.)delimiter(")> +ident(println) string<delimiter(")content(Jason now has )inline<inline_delimiter(${)ident(byname)operator([)string<delimiter(')content(Jason)delimiter(')>(])operator([)string<delimiter(')content(pals)delimiter(')>(])operator(.)ident(size)operator(()(\))inline_delimiter(})>content( pals.)delimiter(")> ident(byname)operator(.)ident(each)operator({) ident(name)operator(,) ident(record) operator(->) - ident(println) string<delimiter(")inline<inline_delimiter($)ident(name)>content( is employee number )inline<inline_delimiter(${)ident(record['empno'])inline_delimiter(})>content(.)delimiter(")> + ident(println) string<delimiter(")inline<inline_delimiter($)ident(name)>content( is employee number )inline<inline_delimiter(${)ident(record)operator([)string<delimiter(')content(empno)delimiter(')>(])inline_delimiter(})>content(.)delimiter(")> (}) ident(employees) operator(=) operator([)operator(:)(]) -ident(employees)operator([)ident(record)operator([)string<delimiter(")content(empno)delimiter(")>(]]) operator(=) ident(record) +ident(employees)operator([)ident(record)operator([)string<delimiter(")content(empno)delimiter(")>(])(]) operator(=) ident(record) comment(// lookup by id) ident(rp) operator(=) ident(employees)operator([)integer(132)(]) -keyword(if) operator(()ident(rp)(\)) ident(println) string<delimiter(")content(Employee number 132 is )inline<inline_delimiter(${)ident(rp.'name')inline_delimiter(})>content(.)delimiter(")> +keyword(if) operator(()ident(rp)(\)) ident(println) string<delimiter(")content(Employee number 132 is )inline<inline_delimiter(${)ident(rp)operator(.)string<delimiter(')content(name)delimiter(')>inline_delimiter(})>content(.)delimiter(")> ident(byname)operator([)string<delimiter(")content(Jason)delimiter(")>(])operator([)string<delimiter(")content(salary)delimiter(")>(]) operator(*=) float(1.035) ident(println) ident(record) @@ -6104,17 +6104,17 @@ keyword(assert) ident(tsevens)operator(.)ident(size)operator(()(\)) operator(==) comment(// Go through all records) ident(println) string<delimiter(')content(Names are: )delimiter(')> operator(+) ident(employees)operator(.)ident(values)operator(()(\))operator(.)ident(collect)operator({)ident(r)operator(->)ident(r)operator(.)string<delimiter(')content(name)delimiter(')>(})operator(.)ident(join)operator(()string<delimiter(')content(, )delimiter(')>(\)) -ident(byAge) operator(=) operator({)ident(a)operator(,)ident(b)operator(->) ident(a)operator(.)ident(value)operator(()(\))operator(.)string<delimiter(')content(age)delimiter(')> operator(<=)operator(>) ident(b)operator(.)ident(value)operator(()(\))operator(.)string<delimiter(')content(age)delimiter(')>(}) +ident(byAge) operator(=) operator({)ident(a)operator(,)ident(b)operator(->) ident(a)operator(.)ident(value)operator(()(\))operator(.)string<delimiter(')content(age)delimiter(')> operator(<=>) ident(b)operator(.)ident(value)operator(()(\))operator(.)string<delimiter(')content(age)delimiter(')>(}) ident(employees)operator(.)ident(values)operator(()(\))operator(.)ident(sort)operator({)ident(byAge)(})operator(.)ident(each)operator({) ident(r)operator(->) - ident(println) string<delimiter(")inline<inline_delimiter(${)ident(r.'name')inline_delimiter(})>content( is )inline<inline_delimiter(${)ident(r.'age')inline_delimiter(})>delimiter(")> + ident(println) string<delimiter(")inline<inline_delimiter(${)ident(r)operator(.)string<delimiter(')content(name)delimiter(')>inline_delimiter(})>content( is )inline<inline_delimiter(${)ident(r)operator(.)string<delimiter(')content(age)delimiter(')>inline_delimiter(})>delimiter(")> (}) comment(// byage, a hash: age => list of records) ident(byage) operator(=) operator([)operator(:)(]) -ident(byage)operator([)ident(record)operator([)string<delimiter(")content(age)delimiter(")>(]]) operator(=) ident(byage)operator(.)ident(get)operator(()ident(record)operator([)string<delimiter(")content(age)delimiter(")>(])operator(,) type([])(\)) operator(+) operator([)ident(record)(]) +ident(byage)operator([)ident(record)operator([)string<delimiter(")content(age)delimiter(")>(])(]) operator(=) ident(byage)operator(.)ident(get)operator(()ident(record)operator([)string<delimiter(")content(age)delimiter(")>(])operator(,) type([])(\)) operator(+) operator([)ident(record)(]) ident(byage)operator(.)ident(each)operator({) ident(age)operator(,) ident(list) operator(->) - ident(println) string<delimiter(")content(Age )inline<inline_delimiter($)ident(age)>content(: )inline<inline_delimiter(${)ident(list.collect{it.'name')inline_delimiter(})>content(.join(', '\)})delimiter(")> + ident(println) string<delimiter(")content(Age )inline<inline_delimiter($)ident(age)>content(: )inline<inline_delimiter(${)ident(list)operator(.)ident(collect)operator({)local_variable(it)operator(.)string<delimiter(')content(name)delimiter(')>(})operator(.)ident(join)operator(()string<delimiter(')content(, )delimiter(')>(\))inline_delimiter(})>delimiter(")> (}) comment(//----------------------------------------------------------------------------------) @@ -6142,11 +6142,11 @@ comment(//---------------------------------------------------------------------- comment(// @@PLEAC@@_11.11) comment(//----------------------------------------------------------------------------------) comment(// Groovy automatically does pretty printing for some of the key types, e.g.) -ident(mylist) operator(=) operator([)operator([)integer(1)operator(,)integer(2)operator(,)integer(3)(])operator(,) operator([)integer(4)operator(,) operator([)integer(5)operator(,)integer(6)operator(,)integer(7)(])operator(,) integer(8)operator(,)integer(9)operator(,) operator([)integer(0)operator(,)integer(3)operator(,)integer(5)(]])operator(,) integer(7)operator(,) integer(8)(]) +ident(mylist) operator(=) operator([)operator([)integer(1)operator(,)integer(2)operator(,)integer(3)(])operator(,) operator([)integer(4)operator(,) operator([)integer(5)operator(,)integer(6)operator(,)integer(7)(])operator(,) integer(8)operator(,)integer(9)operator(,) operator([)integer(0)operator(,)integer(3)operator(,)integer(5)(])(])operator(,) integer(7)operator(,) integer(8)(]) ident(println) ident(mylist) comment(// => [[1, 2, 3], [4, [5, 6, 7], 8, 9, [0, 3, 5]], 7, 8]) -ident(mydict) operator(=) operator([)string<delimiter(")content(abc)delimiter(")>operator(:) string<delimiter(")content(def)delimiter(")>operator(,) string<delimiter(")content(ghi)delimiter(")>operator(:)operator([)integer(1)operator(,)integer(2)operator(,)integer(3)(]]) +ident(mydict) operator(=) operator([)string<delimiter(")content(abc)delimiter(")>operator(:) string<delimiter(")content(def)delimiter(")>operator(,) string<delimiter(")content(ghi)delimiter(")>operator(:)operator([)integer(1)operator(,)integer(2)operator(,)integer(3)(])(]) ident(println) ident(mydict) comment(// => ["abc":"def", "ghi":[1, 2, 3]]) @@ -6156,7 +6156,7 @@ type(class) class(PetLover) operator({) keyword(def) ident(age) keyword(def) ident(pets) (}) -ident(p) operator(=) keyword(new) ident(PetLover)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)string<delimiter(')content(Rover)delimiter(')>operator(,)key(cat)operator(:)string<delimiter(')content(Garfield)delimiter(')>(]\)) +ident(p) operator(=) keyword(new) ident(PetLover)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)string<delimiter(')content(Rover)delimiter(')>operator(,)key(cat)operator(:)string<delimiter(')content(Garfield)delimiter(')>(])(\)) ident(println) ident(p) comment(// => PetLover@b957ea) ident(println) ident(p)operator(.)ident(dump)operator(()(\)) @@ -6167,7 +6167,7 @@ comment(// or Jakarta Commons Lang *ToStringBuilders (jakarta.apache.org/commons comment(// Here's an example of Boost, just extend the supplied Primordial class) keyword(import) include(au.net.netstorm.boost.primordial.Primordial) type(class) class(PetLover2) directive(extends) ident(Primordial) operator({) keyword(def) ident(name)operator(,) ident(age)operator(,) ident(pets) (}) -ident(println) keyword(new) ident(PetLover2)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)string<delimiter(')content(Rover)delimiter(')>operator(,)key(cat)operator(:)string<delimiter(')content(Garfield)delimiter(')>(]\)) +ident(println) keyword(new) ident(PetLover2)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)string<delimiter(')content(Rover)delimiter(')>operator(,)key(cat)operator(:)string<delimiter(')content(Garfield)delimiter(')>(])(\)) comment(// =>) comment(// PetLover2[) comment(// name=Jason) @@ -6184,14 +6184,14 @@ type(class) class(PetLover3) operator({) ident(ReflectionToStringBuilder)operator(.)ident(toString)operator(()local_variable(this)(\)) (}) (}) -ident(println) keyword(new) ident(PetLover3)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)string<delimiter(')content(Rover)delimiter(')>operator(,)key(cat)operator(:)string<delimiter(')content(Garfield)delimiter(')>(]\)) +ident(println) keyword(new) ident(PetLover3)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)string<delimiter(')content(Rover)delimiter(')>operator(,)key(cat)operator(:)string<delimiter(')content(Garfield)delimiter(')>(])(\)) comment(// => PetLover3@196e136[name=Jason,age=23,pets={cat=Garfield, dog=Rover}]) comment(// using Commons Lang ToStringBuilder if you want a custom format) type(class) class(PetLover4) operator({) keyword(def) ident(name)operator(,) ident(dob)operator(,) ident(pets) pre_type(String) ident(toString)operator(()(\)) operator({) - keyword(def) ident(d1) operator(=) ident(dob)operator(.)ident(time)operator(;) keyword(def) ident(d2) operator(=) operator(()keyword(new) pre_type(Date)operator(()(\)\))operator(.)ident(time) + keyword(def) ident(d1) operator(=) ident(dob)operator(.)ident(time)operator(;) keyword(def) ident(d2) operator(=) operator(()keyword(new) pre_type(Date)operator(()(\))(\))operator(.)ident(time) type(int) ident(age) operator(=) operator(()ident(d2) operator(-) ident(d1)(\))operator(/)integer(1000)operator(/)integer(60)operator(/)integer(60)operator(/)integer(24)operator(/)integer(365) comment(// close approx good enough here) keyword(return) keyword(new) ident(ToStringBuilder)operator(()local_variable(this)(\))operator(.) ident(append)operator(()string<delimiter(")content(Pet Lover's name)delimiter(")>operator(,) ident(name)(\))operator(.) @@ -6199,7 +6199,7 @@ type(class) class(PetLover4) operator({) ident(append)operator(()string<delimiter(')content(Age)delimiter(')>operator(,) ident(age)(\)) (}) (}) -ident(println) keyword(new) ident(PetLover4)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(dob)operator(:)keyword(new) pre_type(Date)operator(()integer(83)operator(,)oct(03)operator(,)oct(04)(\))operator(,) key(pets)operator(:)operator([)key(dog)operator(:)string<delimiter(')content(Rover)delimiter(')>operator(,)key(cat)operator(:)string<delimiter(')content(Garfield)delimiter(')>(]\)) +ident(println) keyword(new) ident(PetLover4)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(dob)operator(:)keyword(new) pre_type(Date)operator(()integer(83)operator(,)oct(03)operator(,)oct(04)(\))operator(,) key(pets)operator(:)operator([)key(dog)operator(:)string<delimiter(')content(Rover)delimiter(')>operator(,)key(cat)operator(:)string<delimiter(')content(Garfield)delimiter(')>(])(\)) comment(// => PetLover4@fdfc58[Pet Lover's name=Jason,Pets={cat=Garfield, dog=Rover},Age=23]) comment(//----------------------------------------------------------------------------------) @@ -6237,7 +6237,7 @@ keyword(def) method(deepcopy)operator(()ident(orig)(\)) operator({) ident(bos) operator(=) keyword(new) pre_type(ByteArrayOutputStream)operator(()(\)) ident(oos) operator(=) keyword(new) pre_type(ObjectOutputStream)operator(()ident(bos)(\)) ident(oos)operator(.)ident(writeObject)operator(()ident(orig)(\))operator(;) ident(oos)operator(.)ident(flush)operator(()(\)) - ident(bin) operator(=) keyword(new) pre_type(ByteArrayInputStream)operator(()ident(bos)operator(.)ident(toByteArray)operator(()(\)\)) + ident(bin) operator(=) keyword(new) pre_type(ByteArrayInputStream)operator(()ident(bos)operator(.)ident(toByteArray)operator(()(\))(\)) ident(ois) operator(=) keyword(new) pre_type(ObjectInputStream)operator(()ident(bin)(\)) keyword(return) ident(ois)operator(.)ident(readObject)operator(()(\)) (}) @@ -6293,7 +6293,7 @@ type(class) class(StoreTransaction) directive(implements) ident(Transaction) ope ident(StoreTransaction)operator(()ident(val)(\)) operator({) local_variable(this)operator(.)ident(val) operator(=) ident(val) (}) type(void) ident(executeOn)operator(()ident(prevayler)operator(,) pre_type(Date) ident(ignored)(\)) operator({) ident(prevayler)operator(.)ident(putAt)operator(()ident(val)operator(,)ident(val)operator(*)integer(2)(\)) (}) (}) -keyword(def) method(save)operator(()ident(n)(\))operator({) ident(store)operator(.)ident(execute)operator(()keyword(new) ident(StoreTransaction)operator(()ident(n)(\)\)) (}) +keyword(def) method(save)operator(()ident(n)(\))operator({) ident(store)operator(.)ident(execute)operator(()keyword(new) ident(StoreTransaction)operator(()ident(n)(\))(\)) (}) ident(store) operator(=) ident(PrevaylerFactory)operator(.)ident(createPrevayler)operator(()keyword(new) ident(ImportantHash)operator(()(\))operator(,) string<delimiter(")content(pleac11)delimiter(")>(\)) ident(hash) operator(=) ident(store)operator(.)ident(prevalentSystem)operator(()(\)) keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..)integer(1000)(\)) operator({) @@ -6389,7 +6389,7 @@ comment(// first generate 20 random inserts) ident(test) operator(=) keyword(new) ident(BinaryTree)operator(()integer(500)(\)) ident(rand) operator(=) keyword(new) pre_type(Random)operator(()(\)) integer(20)operator(.)ident(times)operator({) - ident(test)operator(.)ident(insert)operator(()ident(rand)operator(.)ident(nextInt)operator(()integer(1000)(\)\)) + ident(test)operator(.)ident(insert)operator(()ident(rand)operator(.)ident(nextInt)operator(()integer(1000)(\))(\)) (}) comment(// now dump out the tree all three ways) @@ -6398,8 +6398,8 @@ ident(print) string<delimiter(")content(In order: )delimiter(")>operator(;) id ident(print) string<delimiter(")content(Post order: )delimiter(")>operator(;) ident(test)operator(.)ident(postOrder)operator(()(\))operator(;) ident(println) string<delimiter(")delimiter(")> ident(println) string<delimiter(")char(\\n)content(Search?)delimiter(")> -keyword(while) operator(()operator(()ident(item) operator(=) pre_type(System)operator(.)ident(in)operator(.)ident(readLine)operator(()(\))operator(?)operator(.)ident(trim)operator(()(\)\)) operator(!=) keyword(null)(\)) operator({) - ident(println) ident(test)operator(.)ident(search)operator(()ident(item)operator(.)ident(toInteger)operator(()(\)\)) +keyword(while) operator(()operator(()ident(item) operator(=) pre_type(System)operator(.)ident(in)operator(.)ident(readLine)operator(()(\))operator(?)operator(.)ident(trim)operator(()(\))(\)) operator(!=) keyword(null)(\)) operator({) + ident(println) ident(test)operator(.)ident(search)operator(()ident(item)operator(.)ident(toInteger)operator(()(\))(\)) ident(println) string<delimiter(")char(\\n)content(Search?)delimiter(")> (}) comment(// Randomly produces a tree such as:) @@ -6488,7 +6488,7 @@ comment(// using the normal exception handling mechanisms.) comment(// attempt to load an unknown resource or script:) keyword(try) operator({) - ident(evaluate)operator(()keyword(new) pre_type(File)operator(()string<delimiter(')content(doesnotexist.groovy)delimiter(')>(\)\)) + ident(evaluate)operator(()keyword(new) pre_type(File)operator(()string<delimiter(')content(doesnotexist.groovy)delimiter(')>(\))(\)) (}) keyword(catch) operator(()pre_type(Exception) pre_type(FileNotFoundException)(\)) operator({) ident(println) string<delimiter(')content(File not found, skipping ...)delimiter(')> (}) @@ -6927,9 +6927,9 @@ ident(pazzi) operator(=) keyword(new) ident(Person)operator(()integer(40)operato comment(// Calling a class method) ident(println) string<delimiter(")content(There are )inline<inline_delimiter($)ident(Person)>content(.numberOfPeople Person objects.)delimiter(")> -ident(println) string<delimiter(")inline<inline_delimiter($)ident(pazzi)>content(.name is )inline<inline_delimiter(${)ident(pazzi.alive ? 'alive' : 'dead')inline_delimiter(})>content(.)delimiter(")> +ident(println) string<delimiter(")inline<inline_delimiter($)ident(pazzi)>content(.name is )inline<inline_delimiter(${)ident(pazzi)operator(.)ident(alive) operator(?) string<delimiter(')content(alive)delimiter(')> operator(:) string<delimiter(')content(dead)delimiter(')>inline_delimiter(})>content(.)delimiter(")> ident(lecter)operator(.)ident(kill)operator(()ident(pazzi)(\)) -ident(println) string<delimiter(")inline<inline_delimiter($)ident(pazzi)>content(.name is )inline<inline_delimiter(${)ident(pazzi.isStillAlive(\) ? 'alive' : 'dead')inline_delimiter(})>content(.)delimiter(")> +ident(println) string<delimiter(")inline<inline_delimiter($)ident(pazzi)>content(.name is )inline<inline_delimiter(${)ident(pazzi)operator(.)ident(isStillAlive)operator(()(\)) operator(?) string<delimiter(')content(alive)delimiter(')> operator(:) string<delimiter(')content(dead)delimiter(')>inline_delimiter(})>content(.)delimiter(")> ident(println) string<delimiter(")inline<inline_delimiter($)ident(starling)>content(.name was born in )inline<inline_delimiter($)ident(starling)>content(.yearOfBirth.)delimiter(")> comment(//----------------------------------------------------------------------------------) @@ -6976,7 +6976,7 @@ comment(// on your class, e.g. close(\).) type(class) class(MyClass4)operator({) type(void) ident(finalize)operator(()(\)) operator({) - ident(println) string<delimiter(")content(Object [internal id=)inline<inline_delimiter(${)ident(hashCode(\))inline_delimiter(})>content(] is dying at )inline<inline_delimiter(${)ident(new Date(\))inline_delimiter(})>delimiter(")> + ident(println) string<delimiter(")content(Object [internal id=)inline<inline_delimiter(${)ident(hashCode)operator(()(\))inline_delimiter(})>content(] is dying at )inline<inline_delimiter(${)keyword(new) pre_type(Date)operator(()(\))inline_delimiter(})>delimiter(")> (}) (}) @@ -7042,7 +7042,7 @@ ident(people) operator(=) type([]) integer(10)operator(.)ident(times) operator({) ident(people) operator(+=) keyword(new) ident(Person5)operator(()(\)) (}) -ident(println) string<delimiter(")content(There are )inline<inline_delimiter(${)ident(Person5.population)inline_delimiter(})>content( people alive)delimiter(")> +ident(println) string<delimiter(")content(There are )inline<inline_delimiter(${)ident(Person5)operator(.)ident(population)inline_delimiter(})>content( people alive)delimiter(")> comment(// => There are 10 people alive) ident(alpha) operator(=) keyword(new) ident(FixedArray)operator(()(\)) @@ -7076,27 +7076,27 @@ ident(p) operator(=) keyword(new) ident(DynamicPerson)operator(()(\)) ident(p)operator(.)ident(name) operator(=) string<delimiter(")content(Jason Smythe)delimiter(")> ident(p)operator(.)ident(age) operator(=) integer(13) ident(p)operator(.)ident(peers) operator(=) operator([)string<delimiter(")content(Wilbur)delimiter(")>operator(,) string<delimiter(")content(Ralph)delimiter(")>operator(,) string<delimiter(")content(Fred)delimiter(")>(]) -ident(p)operator(.)ident(setPeers)operator(()operator([)string<delimiter(")content(Wilbur)delimiter(")>operator(,) string<delimiter(")content(Ralph)delimiter(")>operator(,) string<delimiter(")content(Fred)delimiter(")>(]\)) comment(// alternative using implicit setter) +ident(p)operator(.)ident(setPeers)operator(()operator([)string<delimiter(")content(Wilbur)delimiter(")>operator(,) string<delimiter(")content(Ralph)delimiter(")>operator(,) string<delimiter(")content(Fred)delimiter(")>(])(\)) comment(// alternative using implicit setter) ident(p)operator([)string<delimiter(")content(peers)delimiter(")>(]) operator(=) operator([)string<delimiter(")content(Wilbur)delimiter(")>operator(,) string<delimiter(")content(Ralph)delimiter(")>operator(,) string<delimiter(")content(Fred)delimiter(")>(]) comment(// alternative access using name of field) -ident(println) string<delimiter(")content(At age )inline<inline_delimiter($)ident(p)>content(.age, )inline<inline_delimiter($)ident(p)>content(.name's first friend is )inline<inline_delimiter(${)ident(p.peers[0])inline_delimiter(})>delimiter(")> +ident(println) string<delimiter(")content(At age )inline<inline_delimiter($)ident(p)>content(.age, )inline<inline_delimiter($)ident(p)>content(.name's first friend is )inline<inline_delimiter(${)ident(p)operator(.)ident(peers)operator([)integer(0)(])inline_delimiter(})>delimiter(")> comment(// => At age 13, Jason Smythe's first friend is Wilbur) comment(// The fields of this struct-like class are statically typed) type(class) class(StaticPerson) operator({) pre_type(String) ident(name)operator(;) type(int) ident(age)operator(;) pre_type(List) ident(peers) (}) -ident(p) operator(=) keyword(new) ident(StaticPerson)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(14)operator(,) key(peers)operator(:)operator([)string<delimiter(')content(Fred)delimiter(')>operator(,)string<delimiter(')content(Wilbur)delimiter(')>operator(,)string<delimiter(')content(Ralph)delimiter(')>(]\)) -ident(println) string<delimiter(")content(At age )inline<inline_delimiter($)ident(p)>content(.age, )inline<inline_delimiter($)ident(p)>content(.name's first friend is )inline<inline_delimiter(${)ident(p.peers[0])inline_delimiter(})>delimiter(")> +ident(p) operator(=) keyword(new) ident(StaticPerson)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(14)operator(,) key(peers)operator(:)operator([)string<delimiter(')content(Fred)delimiter(')>operator(,)string<delimiter(')content(Wilbur)delimiter(')>operator(,)string<delimiter(')content(Ralph)delimiter(')>(])(\)) +ident(println) string<delimiter(")content(At age )inline<inline_delimiter($)ident(p)>content(.age, )inline<inline_delimiter($)ident(p)>content(.name's first friend is )inline<inline_delimiter(${)ident(p)operator(.)ident(peers)operator([)integer(0)(])inline_delimiter(})>delimiter(")> comment(// => At age 14, Jason's first friend is Fred) type(class) class(Family) operator({) keyword(def) ident(head)operator(,) ident(address)operator(,) ident(members) (}) -ident(folks) operator(=) keyword(new) ident(Family)operator(()key(head)operator(:)keyword(new) ident(DynamicPerson)operator(()key(name)operator(:)string<delimiter(')content(John)delimiter(')>operator(,)key(age)operator(:)integer(34)(\)\)) +ident(folks) operator(=) keyword(new) ident(Family)operator(()key(head)operator(:)keyword(new) ident(DynamicPerson)operator(()key(name)operator(:)string<delimiter(')content(John)delimiter(')>operator(,)key(age)operator(:)integer(34)(\))(\)) comment(// supply of own accessor method for the struct for error checking) type(class) class(ValidatingPerson) operator({) directive(private) ident(age) keyword(def) method(printAge)operator(()(\)) operator({) ident(println) string<delimiter(')content(Age=)delimiter(')> operator(+) ident(age) (}) keyword(def) method(setAge)operator(()ident(value)(\)) operator({) - keyword(if) operator(()operator(!)operator(()ident(value) keyword(instanceof) pre_type(Integer)(\)\)) + keyword(if) operator(()operator(!)operator(()ident(value) keyword(instanceof) pre_type(Integer)(\))(\)) keyword(throw) keyword(new) pre_type(IllegalArgumentException)operator(()string<delimiter(")content(Argument ')inline<inline_delimiter(${)ident(value)inline_delimiter(})>content(' isn't an Integer)delimiter(")>(\)) keyword(if) operator(()ident(value) operator(>) integer(150)(\)) keyword(throw) keyword(new) pre_type(IllegalArgumentException)operator(()string<delimiter(")content(Age )inline<inline_delimiter(${)ident(value)inline_delimiter(})>content( is unreasonable)delimiter(")>(\)) @@ -7266,7 +7266,7 @@ type(class) class(Person8) operator({) ident(dad) operator(=) keyword(new) ident(Person8)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(23)(\)) ident(kid) operator(=) ident(dad)operator(.)ident(newChild)operator(()key(name)operator(:)string<delimiter(')content(Rachel)delimiter(')>operator(,) key(age)operator(:)integer(2)(\)) -ident(println) string<delimiter(")content(Kid's parent is )inline<inline_delimiter(${)ident(kid.parent.name)inline_delimiter(})>delimiter(")> +ident(println) string<delimiter(")content(Kid's parent is )inline<inline_delimiter(${)ident(kid)operator(.)ident(parent)operator(.)ident(name)inline_delimiter(})>delimiter(")> comment(// => Kid's parent is Jason) comment(// additional fields ...) @@ -7303,7 +7303,7 @@ comment(// You can test it with this code:) type(class) class(Person9) operator({) keyword(def) ident(friend) type(void) ident(finalize)operator(()(\)) operator({) - ident(println) string<delimiter(")content(Object [internal id=)inline<inline_delimiter(${)ident(hashCode(\))inline_delimiter(})>content(] is dying at )inline<inline_delimiter(${)ident(new Date(\))inline_delimiter(})>delimiter(")> + ident(println) string<delimiter(")content(Object [internal id=)inline<inline_delimiter(${)ident(hashCode)operator(()(\))inline_delimiter(})>content(] is dying at )inline<inline_delimiter(${)keyword(new) pre_type(Date)operator(()(\))inline_delimiter(})>delimiter(")> (}) (}) @@ -7337,11 +7337,11 @@ comment(// Suppose we have a class with a compareTo operator, such as:) type(class) class(Person10) directive(implements) pre_type(Comparable) operator({) keyword(def) ident(firstname)operator(,) ident(initial)operator(,) ident(surname) ident(Person10)operator(()ident(f)operator(,)ident(i)operator(,)ident(s)(\)) operator({) ident(firstname) operator(=) ident(f)operator(;) ident(initial) operator(=) ident(i)operator(;) ident(surname) operator(=) ident(s) (}) - type(int) ident(compareTo)operator(()ident(other)(\)) operator({) ident(firstname) operator(<=)operator(>) ident(other)operator(.)ident(firstname) (}) + type(int) ident(compareTo)operator(()ident(other)(\)) operator({) ident(firstname) operator(<=>) ident(other)operator(.)ident(firstname) (}) (}) ident(a) operator(=) keyword(new) ident(Person10)operator(()string<delimiter(')content(James)delimiter(')>operator(,) string<delimiter(')content(T)delimiter(')>operator(,) string<delimiter(')content(Kirk)delimiter(')>(\)) ident(b) operator(=) keyword(new) ident(Person10)operator(()string<delimiter(')content(Samuel)delimiter(')>operator(,) string<delimiter(')content(L)delimiter(')>operator(,) string<delimiter(')content(Jackson)delimiter(')>(\)) -ident(println) ident(a) operator(<=)operator(>) ident(b) +ident(println) ident(a) operator(<=>) ident(b) comment(// => -1) comment(// we can override the existing Person10's <=> operator as below) @@ -7349,12 +7349,12 @@ comment(// so that now comparisons are made using the middle initial) comment(// instead of the fisrtname:) type(class) class(Person11) directive(extends) ident(Person10) operator({) ident(Person11)operator(()ident(f)operator(,)ident(i)operator(,)ident(s)(\)) operator({) local_variable(super)operator(()ident(f)operator(,)ident(i)operator(,)ident(s)(\)) (}) - type(int) ident(compareTo)operator(()ident(other)(\)) operator({) ident(initial) operator(<=)operator(>) ident(other)operator(.)ident(initial) (}) + type(int) ident(compareTo)operator(()ident(other)(\)) operator({) ident(initial) operator(<=>) ident(other)operator(.)ident(initial) (}) (}) ident(a) operator(=) keyword(new) ident(Person11)operator(()string<delimiter(')content(James)delimiter(')>operator(,) string<delimiter(')content(T)delimiter(')>operator(,) string<delimiter(')content(Kirk)delimiter(')>(\)) ident(b) operator(=) keyword(new) ident(Person11)operator(()string<delimiter(')content(Samuel)delimiter(')>operator(,) string<delimiter(')content(L)delimiter(')>operator(,) string<delimiter(')content(Jackson)delimiter(')>(\)) -ident(println) ident(a) operator(<=)operator(>) ident(b) +ident(println) ident(a) operator(<=>) ident(b) comment(// => 1) comment(// we could also in general use Groovy's categories to extend class functionality.) @@ -7415,7 +7415,7 @@ ident(x) operator(=) string<delimiter(")content(Red)delimiter(")>operator(;) ide ident(z) operator(=) ident(x)operator(+)ident(y) ident(r) operator(=) ident(z)operator(*)integer(3) comment(// r is "RedBlackRedBlackRedBlack") ident(println) string<delimiter(")content(values are )inline<inline_delimiter($)ident(x)>content(, )inline<inline_delimiter($)ident(y)>content(, )inline<inline_delimiter($)ident(z)>content(, and )inline<inline_delimiter($)ident(r)>delimiter(")> -ident(println) string<delimiter(")inline<inline_delimiter($)ident(x)>content( is )inline<inline_delimiter(${)ident(x < y ? 'LT' : 'GE')inline_delimiter(})>content( )inline<inline_delimiter($)ident(y)>delimiter(")> +ident(println) string<delimiter(")inline<inline_delimiter($)ident(x)>content( is )inline<inline_delimiter(${)ident(x) operator(<) ident(y) operator(?) string<delimiter(')content(LT)delimiter(')> operator(:) string<delimiter(')content(GE)delimiter(')>inline_delimiter(})>content( )inline<inline_delimiter($)ident(y)>delimiter(")> comment(// prints:) comment(// values are Red, Black, RedBlack, and RedBlackRedBlackRedBlack) comment(// Red is GE Black) @@ -7441,15 +7441,15 @@ type(class) class(FixNum) operator({) (}) keyword(def) method(plus)operator(()ident(other)(\)) operator({) - keyword(new) ident(FixNum)operator(()ident(value) operator(+) ident(other)operator(.)ident(value)operator(,) operator([)ident(places)operator(,) ident(other)operator(.)ident(places)(])operator(.)ident(max)operator(()(\)\)) + keyword(new) ident(FixNum)operator(()ident(value) operator(+) ident(other)operator(.)ident(value)operator(,) operator([)ident(places)operator(,) ident(other)operator(.)ident(places)(])operator(.)ident(max)operator(()(\))(\)) (}) keyword(def) method(multiply)operator(()ident(other)(\)) operator({) - keyword(new) ident(FixNum)operator(()ident(value) operator(*) ident(other)operator(.)ident(value)operator(,) operator([)ident(places)operator(,) ident(other)operator(.)ident(places)(])operator(.)ident(max)operator(()(\)\)) + keyword(new) ident(FixNum)operator(()ident(value) operator(*) ident(other)operator(.)ident(value)operator(,) operator([)ident(places)operator(,) ident(other)operator(.)ident(places)(])operator(.)ident(max)operator(()(\))(\)) (}) keyword(def) method(div)operator(()ident(other)(\)) operator({) - ident(println) string<delimiter(")content(DEUG: Divide = )inline<inline_delimiter(${)ident(value/other.value)inline_delimiter(})>delimiter(")> + ident(println) string<delimiter(")content(DEUG: Divide = )inline<inline_delimiter(${)ident(value)operator(/)ident(other)operator(.)ident(value)inline_delimiter(})>delimiter(")> keyword(def) ident(result) operator(=) keyword(new) ident(FixNum)operator(()ident(value)operator(/)ident(other)operator(.)ident(value)(\)) ident(result)operator(.)ident(places) operator(=) operator([)ident(places)operator(,)ident(other)operator(.)ident(places)(])operator(.)ident(max)operator(()(\)) ident(result) @@ -7464,8 +7464,8 @@ type(class) class(FixNum) operator({) ident(x) operator(=) keyword(new) ident(FixNum)operator(()integer(40)(\)) ident(y) operator(=) keyword(new) ident(FixNum)operator(()integer(12)operator(,) integer(0)(\)) -ident(println) string<delimiter(")content(sum of )inline<inline_delimiter($)ident(x)>content( and )inline<inline_delimiter($)ident(y)>content( is )inline<inline_delimiter(${)ident(x+y)inline_delimiter(})>delimiter(")> -ident(println) string<delimiter(")content(product of )inline<inline_delimiter($)ident(x)>content( and )inline<inline_delimiter($)ident(y)>content( is )inline<inline_delimiter(${)ident(x*y)inline_delimiter(})>delimiter(")> +ident(println) string<delimiter(")content(sum of )inline<inline_delimiter($)ident(x)>content( and )inline<inline_delimiter($)ident(y)>content( is )inline<inline_delimiter(${)ident(x)operator(+)ident(y)inline_delimiter(})>delimiter(")> +ident(println) string<delimiter(")content(product of )inline<inline_delimiter($)ident(x)>content( and )inline<inline_delimiter($)ident(y)>content( is )inline<inline_delimiter(${)ident(x)operator(*)ident(y)inline_delimiter(})>delimiter(")> ident(z) operator(=) ident(x)operator(/)ident(y) ident(println) string<delimiter(")inline<inline_delimiter($)ident(z)>content( has )inline<inline_delimiter($)ident(z)>content(.places places)delimiter(")> @@ -7473,7 +7473,7 @@ ident(z)operator(.)ident(places) operator(=) integer(2) ident(println) string<delimiter(")inline<inline_delimiter($)ident(z)>content( now has )inline<inline_delimiter($)ident(z)>content(.places places)delimiter(")> ident(println) string<delimiter(")content(div of )inline<inline_delimiter($)ident(x)>content( by )inline<inline_delimiter($)ident(y)>content( is )inline<inline_delimiter($)ident(z)>delimiter(")> -ident(println) string<delimiter(")content(square of that is )inline<inline_delimiter(${)ident(z*z)inline_delimiter(})>delimiter(")> +ident(println) string<delimiter(")content(square of that is )inline<inline_delimiter(${)ident(z)operator(*)ident(z)inline_delimiter(})>delimiter(")> comment(// =>) comment(// sum of STRFixNum: 40 and STRFixNum: 12 is STRFixNum: 52) comment(// product of STRFixNum: 40 and STRFixNum: 12 is STRFixNum: 480) @@ -7498,7 +7498,7 @@ type(class) class(ValueRing) operator({) keyword(return) ident(head) (}) (}) -ident(ring) operator(=) keyword(new) ident(ValueRing)operator(()key(values)operator(:)operator([)string<delimiter(')content(red)delimiter(')>operator(,) string<delimiter(')content(blue)delimiter(')>(]\)) +ident(ring) operator(=) keyword(new) ident(ValueRing)operator(()key(values)operator(:)operator([)string<delimiter(')content(red)delimiter(')>operator(,) string<delimiter(')content(blue)delimiter(')>(])(\)) keyword(def) method(getColor)operator(()(\)) operator({) ident(ring)operator(.)ident(next)operator(()(\)) (}) type(void) ident(setProperty)operator(()pre_type(String) ident(n)operator(,) ident(v)(\)) operator({) keyword(if) operator(()ident(n) operator(==) string<delimiter(')content(color)delimiter(')>(\)) operator({) ident(ring)operator(.)ident(add)operator(()ident(v)(\))operator(;) keyword(return) (}) @@ -7575,10 +7575,10 @@ comment(// 26) comment(// Autoappending hash:) type(class) class(AutoMap) directive(extends) pre_type(HashMap) operator({) type(void) ident(setProperty)operator(()pre_type(String) ident(name)operator(,) ident(v)(\)) operator({) - keyword(if) operator(()ident(containsKey)operator(()ident(name)(\)\)) operator({) + keyword(if) operator(()ident(containsKey)operator(()ident(name)(\))(\)) operator({) ident(put)operator(()ident(name)operator(,) ident(get)operator(()ident(name)(\)) operator(+) ident(v)(\)) (}) keyword(else) operator({) - ident(put)operator(()ident(name)operator(,) operator([)ident(v)(]\)) + ident(put)operator(()ident(name)operator(,) operator([)ident(v)(])(\)) (}) (}) (}) @@ -7595,7 +7595,7 @@ type(class) class(FoldedMap) directive(extends) pre_type(HashMap) operator({) ident(put)operator(()ident(name)operator(.)ident(toLowerCase)operator(()(\))operator(,) ident(v)(\)) (}) keyword(def) method(getProperty)operator(()pre_type(String) ident(name)(\)) operator({) - ident(get)operator(()ident(name)operator(.)ident(toLowerCase)operator(()(\)\)) + ident(get)operator(()ident(name)operator(.)ident(toLowerCase)operator(()(\))(\)) (}) (}) ident(tab) operator(=) keyword(new) ident(FoldedMap)operator(()(\)) @@ -7608,7 +7608,7 @@ comment(// => ["heroine":"red riding hood", "villain":"big bad wolf"]) comment(// Hash That "Allows Look-Ups by Key or Value":) type(class) class(RevMap) directive(extends) pre_type(HashMap) operator({) type(void) ident(setProperty)operator(()pre_type(String) ident(n)operator(,) ident(v)(\)) operator({) ident(put)operator(()ident(n)operator(,)ident(v)(\))operator(;) ident(put)operator(()ident(v)operator(,)ident(n)(\)) (}) - type(void) ident(remove)operator(()ident(n)(\)) operator({) local_variable(super)operator(.)ident(remove)operator(()ident(get)operator(()ident(n)(\)\))operator(;) local_variable(super)operator(.)ident(remove)operator(()ident(n)(\)) (}) + type(void) ident(remove)operator(()ident(n)(\)) operator({) local_variable(super)operator(.)ident(remove)operator(()ident(get)operator(()ident(n)(\))(\))operator(;) local_variable(super)operator(.)ident(remove)operator(()ident(n)(\)) (}) (}) ident(rev) operator(=) keyword(new) ident(RevMap)operator(()(\)) ident(rev)operator(.)ident(Rojo) operator(=) string<delimiter(')content(Red)delimiter(')> @@ -7629,14 +7629,14 @@ comment(// Multiple Strrams scenario:) type(class) class(MultiStream) directive(extends) pre_type(PrintStream) operator({) keyword(def) ident(streams) ident(MultiStream)operator(()pre_type(List) ident(streams)(\)) operator({) - local_variable(super)operator(()ident(streams)operator([)integer(0)(]\)) + local_variable(super)operator(()ident(streams)operator([)integer(0)(])(\)) local_variable(this)operator(.)ident(streams) operator(=) ident(streams) (}) keyword(def) method(println)operator(()pre_type(String) ident(x)(\)) operator({) ident(streams)operator(.)ident(each)operator({) local_variable(it)operator(.)ident(println)operator(()ident(x)(\)) (}) (}) (}) -ident(tee) operator(=) keyword(new) ident(MultiStream)operator(()operator([)pre_type(System)operator(.)ident(out)operator(,) pre_type(System)operator(.)ident(err)(]\)) +ident(tee) operator(=) keyword(new) ident(MultiStream)operator(()operator([)pre_type(System)operator(.)ident(out)operator(,) pre_type(System)operator(.)ident(err)(])(\)) ident(tee)operator(.)ident(println) operator(()string<delimiter(')content(This goes two places)delimiter(')>(\)) comment(// =>) comment(// This goes two places) @@ -7686,8 +7686,8 @@ ident(myDbConfig) operator(=) keyword(new) ident(DatabaseConfig)operator(()(\)) ident(myDbConfig)operator(.)ident(setAllowCreate)operator(()keyword(true)(\)) ident(myDb) operator(=) ident(myEnv)operator(.)ident(openDatabase)operator(()ident(tx)operator(,) string<delimiter(")content(vendorDB)delimiter(")>operator(,) ident(myDbConfig)(\)) -ident(theKey) operator(=) keyword(new) ident(DatabaseEntry)operator(()string<delimiter(")content(key)delimiter(")>operator(.)ident(getBytes)operator(()string<delimiter(")content(UTF-8)delimiter(")>(\)\)) -ident(theData) operator(=) keyword(new) ident(DatabaseEntry)operator(()string<delimiter(")content(data)delimiter(")>operator(.)ident(getBytes)operator(()string<delimiter(")content(UTF-8)delimiter(")>(\)\)) +ident(theKey) operator(=) keyword(new) ident(DatabaseEntry)operator(()string<delimiter(")content(key)delimiter(")>operator(.)ident(getBytes)operator(()string<delimiter(")content(UTF-8)delimiter(")>(\))(\)) +ident(theData) operator(=) keyword(new) ident(DatabaseEntry)operator(()string<delimiter(")content(data)delimiter(")>operator(.)ident(getBytes)operator(()string<delimiter(")content(UTF-8)delimiter(")>(\))(\)) ident(myDb)operator(.)ident(put)operator(()ident(tx)operator(,) ident(theKey)operator(,) ident(theData)(\)) keyword(if) operator(()ident(myDb)operator(.)ident(get)operator(()ident(tx)operator(,) ident(theKey)operator(,) ident(theData)operator(,) ident(LockMode)operator(.)ident(DEFAULT)(\)) operator(==) ident(OperationStatus)operator(.)ident(SUCCESS)(\)) operator({) ident(key) operator(=) keyword(new) pre_type(String)operator(()ident(theKey)operator(.)ident(data)operator(,) string<delimiter(")content(UTF-8)delimiter(")>(\)) @@ -7716,12 +7716,12 @@ type(class) class(LoginInfo) directive(implements) ident(Persistent) operator({) (}) keyword(def) method(printAllUsers)operator(()ident(store)(\)) operator({) - ident(printUsers)operator(()ident(store)operator(,) ident(store)operator(.)ident(select)operator(()ident(LoginInfo)operator(.)ident(class)(\))operator(.)ident(collect)operator({)local_variable(it)operator(.)ident(name)(})operator(.)ident(sort)operator(()(\)\)) + ident(printUsers)operator(()ident(store)operator(,) ident(store)operator(.)ident(select)operator(()ident(LoginInfo)operator(.)ident(class)(\))operator(.)ident(collect)operator({)local_variable(it)operator(.)ident(name)(})operator(.)ident(sort)operator(()(\))(\)) (}) keyword(def) method(printUsers)operator(()ident(store)operator(,) ident(list)(\)) operator({) ident(list)operator(.)ident(each)operator({) - ident(println) string<delimiter(")inline<inline_delimiter($)local_variable(it)>content( )inline<inline_delimiter(${)ident(store.selectSingle(LoginInfo.class, 'name', it\).loginCount)inline_delimiter(})>delimiter(")> + ident(println) string<delimiter(")inline<inline_delimiter($)local_variable(it)>content( )inline<inline_delimiter(${)ident(store)operator(.)ident(selectSingle)operator(()ident(LoginInfo)operator(.)ident(class)operator(,) string<delimiter(')content(name)delimiter(')>operator(,) local_variable(it)(\))operator(.)ident(loginCount)inline_delimiter(})>delimiter(")> (}) (}) @@ -7734,7 +7734,7 @@ keyword(def) method(addUsers)operator(()ident(store)(\)) operator({) ident(item)operator(.)ident(loginCount)operator(++) ident(store)operator(.)ident(save)operator(()ident(item)(\)) (}) keyword(else) operator({) - ident(store)operator(.)ident(insert)operator(()keyword(new) ident(LoginInfo)operator(()ident(name)(\)\)) + ident(store)operator(.)ident(insert)operator(()keyword(new) ident(LoginInfo)operator(()ident(name)(\))(\)) (}) (}) (}) @@ -7746,7 +7746,7 @@ ident(ds)operator(.)ident(password) operator(=) string<delimiter(')delimiter(')> ident(store) operator(=) keyword(new) ident(Store)operator(()ident(ds)(\)) keyword(if) operator(()ident(args)operator(.)ident(size)operator(()(\)) operator(==) integer(0)(\)) operator({) ident(addUsers)operator(()ident(store)(\)) -(}) keyword(else) keyword(if) operator(()ident(args) operator(==) operator([)string<delimiter(')content(ALL)delimiter(')>(]\)) operator({) +(}) keyword(else) keyword(if) operator(()ident(args) operator(==) operator([)string<delimiter(')content(ALL)delimiter(')>(])(\)) operator({) ident(printAllUsers)operator(()ident(store)(\)) (}) keyword(else) operator({) ident(printUsers)operator(()ident(store)operator(,) ident(args)(\)) @@ -7769,8 +7769,8 @@ ident(myDbConfig) operator(=) keyword(new) ident(DatabaseConfig)operator(()(\)) ident(myDbConfig)operator(.)ident(setAllowCreate)operator(()keyword(true)(\)) ident(myDb) operator(=) ident(myEnv)operator(.)ident(openDatabase)operator(()ident(tx)operator(,) string<delimiter(")content(vendorDB)delimiter(")>operator(,) ident(myDbConfig)(\)) -ident(theKey) operator(=) keyword(new) ident(DatabaseEntry)operator(()string<delimiter(")content(key)delimiter(")>operator(.)ident(getBytes)operator(()string<delimiter(")content(UTF-8)delimiter(")>(\)\)) -ident(theData) operator(=) keyword(new) ident(DatabaseEntry)operator(()string<delimiter(")content(data)delimiter(")>operator(.)ident(getBytes)operator(()string<delimiter(")content(UTF-8)delimiter(")>(\)\)) +ident(theKey) operator(=) keyword(new) ident(DatabaseEntry)operator(()string<delimiter(")content(key)delimiter(")>operator(.)ident(getBytes)operator(()string<delimiter(")content(UTF-8)delimiter(")>(\))(\)) +ident(theData) operator(=) keyword(new) ident(DatabaseEntry)operator(()string<delimiter(")content(data)delimiter(")>operator(.)ident(getBytes)operator(()string<delimiter(")content(UTF-8)delimiter(")>(\))(\)) ident(myDb)operator(.)ident(put)operator(()ident(tx)operator(,) ident(theKey)operator(,) ident(theData)(\)) ident(myDb)operator(.)ident(close)operator(()(\)) comment(// clear out database) @@ -7804,8 +7804,8 @@ type(class) class(Person) directive(implements) ident(Persistent) operator({) (}) comment(// populate with test data) -ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)string<delimiter(')content(Tom Christiansen)delimiter(')>operator(,) key(does)operator(:)string<delimiter(')content(book author)delimiter(')>operator(,) key(email)operator(:)string<delimiter(')content(tchrist@perl.com)delimiter(')>(\)\)) -ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)string<delimiter(')content(Tom Boutell)delimiter(')>operator(,) key(does)operator(:)string<delimiter(')content(Poet Programmer)delimiter(')>operator(,) key(email)operator(:)string<delimiter(')content(boutell@boutell.com)delimiter(')>(\)\)) +ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)string<delimiter(')content(Tom Christiansen)delimiter(')>operator(,) key(does)operator(:)string<delimiter(')content(book author)delimiter(')>operator(,) key(email)operator(:)string<delimiter(')content(tchrist@perl.com)delimiter(')>(\))(\)) +ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)string<delimiter(')content(Tom Boutell)delimiter(')>operator(,) key(does)operator(:)string<delimiter(')content(Poet Programmer)delimiter(')>operator(,) key(email)operator(:)string<delimiter(')content(boutell@boutell.com)delimiter(')>(\))(\)) ident(people) operator(=) ident(store)operator(.)ident(select)operator(()ident(Person)operator(.)ident(class)(\)) @@ -7901,8 +7901,8 @@ comment(//---------------------------------------------------------------------- ident(use)operator(()ident(ArrayListCategory)(\)) operator({) ident(println) string<delimiter(")content(ORIGINAL)delimiter(")> - keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(lines)operator(.)ident(size)operator(()(\)\)) - ident(println) string<delimiter(")inline<inline_delimiter(${)ident(i)inline_delimiter(})>content(: )inline<inline_delimiter(${)ident(lines[i])inline_delimiter(})>delimiter(")> + keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(lines)operator(.)ident(size)operator(()(\))(\)) + ident(println) string<delimiter(")inline<inline_delimiter(${)ident(i)inline_delimiter(})>content(: )inline<inline_delimiter(${)ident(lines)operator([)ident(i)(])inline_delimiter(})>delimiter(")> ident(a) operator(=) ident(lines)operator([)operator(-)integer(1)(]) ident(lines)operator([)operator(-)integer(1)(]) operator(=) string<delimiter(")content(last)delimiter(")> @@ -7919,7 +7919,7 @@ comment(//---------------------------------------------------------------------- ident(println) string<delimiter(")content(REVERSE)delimiter(")> operator(()ident(lines)operator(.)ident(size)operator(()(\)) operator(-) integer(1)(\))operator(.)ident(downto)operator(()integer(0)(\))operator({) ident(i) operator(->) - ident(println) string<delimiter(")inline<inline_delimiter(${)ident(i)inline_delimiter(})>content(: )inline<inline_delimiter(${)ident(lines[i])inline_delimiter(})>delimiter(")> + ident(println) string<delimiter(")inline<inline_delimiter(${)ident(i)inline_delimiter(})>content(: )inline<inline_delimiter(${)ident(lines)operator([)ident(i)(])inline_delimiter(})>delimiter(")> (}) ident(lines)operator(.)ident(save)operator(()(\)) (}) @@ -7961,8 +7961,8 @@ type(class) class(Person) directive(implements) ident(Persistent) operator({) ident(name1) operator(=) string<delimiter(')content(Tom Christiansen)delimiter(')> ident(name2) operator(=) string<delimiter(')content(Tom Boutell)delimiter(')> -ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)ident(name1)operator(,) key(does)operator(:)string<delimiter(')content(book author)delimiter(')>operator(,) key(email)operator(:)string<delimiter(')content(tchrist@perl.com)delimiter(')>(\)\)) -ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)ident(name2)operator(,) key(does)operator(:)string<delimiter(')content(shareware author)delimiter(')>operator(,) key(email)operator(:)string<delimiter(')content(boutell@boutell.com)delimiter(')>(\)\)) +ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)ident(name1)operator(,) key(does)operator(:)string<delimiter(')content(book author)delimiter(')>operator(,) key(email)operator(:)string<delimiter(')content(tchrist@perl.com)delimiter(')>(\))(\)) +ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)ident(name2)operator(,) key(does)operator(:)string<delimiter(')content(shareware author)delimiter(')>operator(,) key(email)operator(:)string<delimiter(')content(boutell@boutell.com)delimiter(')>(\))(\)) ident(tom1) operator(=) ident(store)operator(.)ident(selectSingle)operator(()ident(Person)operator(.)ident(class)operator(,) string<delimiter(')content(name)delimiter(')>operator(,) ident(name1)(\)) ident(tom2) operator(=) ident(store)operator(.)ident(selectSingle)operator(()ident(Person)operator(.)ident(class)operator(,) string<delimiter(')content(name)delimiter(')>operator(,) ident(name2)(\)) @@ -8042,17 +8042,17 @@ ident(tables)operator(.)ident(each)operator({) ident(table) operator(->) keyword(if) operator(()ident(options)operator(.)ident(c)(\)) ident(url) operator(=) ident(url)operator(.)ident(tokenize)operator(()string<delimiter(')content(?)delimiter(')>(\))operator([)integer(0)(]) keyword(if) operator(()operator(!)ident(regex) operator(||) ident(url) operator(=~) ident(regex)(\)) operator({) keyword(if) operator(()operator(!)ident(options)operator(.)ident(e) operator(||) ident(row)operator(.)ident(getValue)operator(()string<delimiter(')content(Hidden)delimiter(')>(\)) operator(!=) string<delimiter(')content(1)delimiter(')>(\)) operator({) - ident(println) string<delimiter(")inline<inline_delimiter($)ident(url)>char(\\n)content( Last Visited: )inline<inline_delimiter(${)ident(date(row,'LastVisitDate'\))inline_delimiter(})>delimiter(")> + ident(println) string<delimiter(")inline<inline_delimiter($)ident(url)>char(\\n)content( Last Visited: )inline<inline_delimiter(${)ident(date)operator(()ident(row)operator(,)string<delimiter(')content(LastVisitDate)delimiter(')>(\))inline_delimiter(})>delimiter(")> keyword(if) operator(()ident(options)operator(.)ident(v)(\)) operator({) - ident(println) string<delimiter(")content( First Visited: )inline<inline_delimiter(${)ident(date(row,'FirstVisitDate'\))inline_delimiter(})>delimiter(")> - ident(println) string<delimiter(")content( Referrer: )inline<inline_delimiter(${)ident(row.getValue('Referrer'\))inline_delimiter(})>delimiter(")> + ident(println) string<delimiter(")content( First Visited: )inline<inline_delimiter(${)ident(date)operator(()ident(row)operator(,)string<delimiter(')content(FirstVisitDate)delimiter(')>(\))inline_delimiter(})>delimiter(")> + ident(println) string<delimiter(")content( Referrer: )inline<inline_delimiter(${)ident(row)operator(.)ident(getValue)operator(()string<delimiter(')content(Referrer)delimiter(')>(\))inline_delimiter(})>delimiter(")> (}) (}) (}) (}) (}) keyword(def) method(date)operator(()ident(row)operator(,) ident(key)(\)) operator({) - keyword(return) keyword(new) pre_type(Date)operator(()operator(()type(long)(\))operator(()ident(row)operator(.)ident(getValue)operator(()ident(key)(\))operator(.)ident(toLong)operator(()(\))operator(/)integer(1000)(\)\)) + keyword(return) keyword(new) pre_type(Date)operator(()operator(()type(long)(\))operator(()ident(row)operator(.)ident(getValue)operator(()ident(key)(\))operator(.)ident(toLong)operator(()(\))operator(/)integer(1000)(\))(\)) (}) comment(// $ groovy gfh -ev oracle' =>) comment(// http://www.oracle.com/technology/products/jdev/index.html) @@ -8084,7 +8084,7 @@ keyword(if) operator(()ident(options)operator(.)ident(v)(\)) comment(// ...) keyword(if) operator(()ident(options)operator(.)ident(D)(\)) ident(println) string<delimiter(')content(Debugging info available)delimiter(')> keyword(if) operator(()ident(options)operator(.)ident(o)(\)) operator({) ident(println) string<delimiter(')content(Output file flag was specified)delimiter(')> - ident(println) string<delimiter(")content(Output file is )inline<inline_delimiter(${)ident(options.o)inline_delimiter(})>delimiter(")> + ident(println) string<delimiter(")content(Output file is )inline<inline_delimiter(${)ident(options)operator(.)ident(o)inline_delimiter(})>delimiter(")> (}) comment(// ...) @@ -8092,9 +8092,9 @@ comment(// ...) comment(// jopt-simple example 1 (short form\)) ident(cli) operator(=) keyword(new) ident(joptsimple)operator(.)ident(OptionParser)operator(()string<delimiter(")content(vDo::)delimiter(")>(\)) ident(options) operator(=) ident(cli)operator(.)ident(parse)operator(()ident(args)(\)) -keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(()string<delimiter(')content(o)delimiter(')>(\)\)) operator({) +keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(()string<delimiter(')content(o)delimiter(')>(\))(\)) operator({) ident(println) string<delimiter(')content(Output file flag was specified.)delimiter(')> - ident(println) string<delimiter(")content(Output file is )inline<inline_delimiter(${)ident(options.argumentsOf('o'\))inline_delimiter(})>delimiter(")> + ident(println) string<delimiter(")content(Output file is )inline<inline_delimiter(${)ident(options)operator(.)ident(argumentsOf)operator(()string<delimiter(')content(o)delimiter(')>(\))inline_delimiter(})>delimiter(")> (}) comment(// ...) @@ -8107,7 +8107,7 @@ ident(OUTPUT) operator(=) string<delimiter(')content(o)delimiter(')>operator(;) ident(describedAs)operator(() string<delimiter(")content(file)delimiter(")> (\))operator(.)ident(ofType)operator(() pre_type(File)operator(.)ident(class) (\)) ident(options) operator(=) ident(op)operator(.)ident(parse)operator(()ident(args)(\)) ident(params) operator(=) ident(options)operator(.)ident(nonOptionArguments)operator(()(\)) -keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(DEBUG) (\)\)) ident(println) string<delimiter(')content(Debugging info available)delimiter(')> +keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(DEBUG) (\))(\)) ident(println) string<delimiter(')content(Debugging info available)delimiter(')> comment(// ...) comment(//----------------------------------------------------------------------------------) @@ -8169,7 +8169,7 @@ ident(values) operator(=) operator(()integer(1)operator(..)integer(5)(\))operato ident(max) operator(=) ident(values)operator(.)ident(max)operator(()(\)) ident(ratio) operator(=) operator(()ident(numCols) operator(-) integer(12)(\))operator(/)ident(max) ident(values)operator(.)ident(each)operator({) ident(i) operator(->) - ident(printf)operator(()string<delimiter(')content(%8.1f %s)content(\\n)delimiter(')>operator(,) operator([)ident(i) keyword(as) type(double)operator(,) string<delimiter(")content(*)delimiter(")> operator(*) ident(ratio) operator(*) ident(i)(]\)) + ident(printf)operator(()string<delimiter(')content(%8.1f %s\\n)delimiter(')>operator(,) operator([)ident(i) keyword(as) type(double)operator(,) string<delimiter(")content(*)delimiter(")> operator(*) ident(ratio) operator(*) ident(i)(])(\)) (}) comment(// gives, for example:) @@ -8190,7 +8190,7 @@ comment(// Note: Run examples using these libraries from command line not inside comment(// If you are using a terminal/console that understands ANSI codes) comment(// (excludes WinNT derivatives\) you can just print the ANSI codes) -ident(ESC) operator(=) string<delimiter(")inline<inline_delimiter(${)ident((char\)27)inline_delimiter(})>delimiter(")> +ident(ESC) operator(=) string<delimiter(")inline<inline_delimiter(${)operator(()type(char)(\))integer(27)inline_delimiter(})>delimiter(")> ident(redOnBlack) operator(=) ident(ESC) operator(+) string<delimiter(')content([31;40m)delimiter(')> ident(reset) operator(=) ident(ESC) operator(+) string<delimiter(')content([0m)delimiter(')> ident(println) operator(()ident(redOnBlack) operator(+) string<delimiter(')content(Danger, Will Robinson!)delimiter(')> operator(+) ident(reset)(\)) @@ -8235,7 +8235,7 @@ comment(// Default Java libraries buffer System.in by default.) comment(// Using JavaCurses:) keyword(import) include(jcurses.system.Toolkit) ident(print) string<delimiter(')content(Press a key: )delimiter(')> -ident(println) string<delimiter(")char(\\n)content(You pressed the ')inline<inline_delimiter(${)ident(Toolkit.readCharacter(\).character)inline_delimiter(})>content(' key)delimiter(")> +ident(println) string<delimiter(")char(\\n)content(You pressed the ')inline<inline_delimiter(${)pre_type(Toolkit)operator(.)ident(readCharacter)operator(()(\))operator(.)ident(character)inline_delimiter(})>content(' key)delimiter(")> comment(// Also works for special keys:) keyword(import) include(jcurses.system.InputChar) @@ -8250,10 +8250,10 @@ comment(//---------------------------------------------------------------------- comment(// @@PLEAC@@_15.7) comment(//----------------------------------------------------------------------------------) -ident(print) string<delimiter(")inline<inline_delimiter(${)ident((char\)7)inline_delimiter(})>delimiter(")> +ident(print) string<delimiter(")inline<inline_delimiter(${)operator(()type(char)(\))integer(7)inline_delimiter(})>delimiter(")> comment(// Using jline constant) -ident(print) string<delimiter(")inline<inline_delimiter(${)ident(jline.ConsoleOperations.KEYBOARD_BELL)inline_delimiter(})>delimiter(")> +ident(print) string<delimiter(")inline<inline_delimiter(${)ident(jline)operator(.)ident(ConsoleOperations)operator(.)ident(KEYBOARD_BELL)inline_delimiter(})>delimiter(")> comment(// Also available through ConsoleReader.beep(\)) comment(// Using JavaCurses (Works only with terminals that support 'beeps'\)) @@ -8285,7 +8285,7 @@ comment(// @@PLEAC@@_15.10) comment(//----------------------------------------------------------------------------------) comment(// If using Java 6, use Console.readPassword(\)) comment(// Otherwise use jline (use 0 instead of mask character '*' for no echo\):) -ident(password) operator(=) keyword(new) ident(jline)operator(.)ident(ConsoleReader)operator(()(\))operator(.)ident(readLine)operator(()keyword(new) pre_type(Character)operator(()string<delimiter(')content(*)delimiter(')>(\)\)) +ident(password) operator(=) keyword(new) ident(jline)operator(.)ident(ConsoleReader)operator(()(\))operator(.)ident(readLine)operator(()keyword(new) pre_type(Character)operator(()string<delimiter(')content(*)delimiter(')>(\))(\)) comment(//----------------------------------------------------------------------------------) @@ -8319,8 +8319,8 @@ ident(refresh) operator(=) keyword(false) ident(waittime) operator(=) integer(8000) ident(oldlines) operator(=) type([]) keyword(def) method(fade)operator(()ident(line)operator(,) ident(row)operator(,) ident(colorList)(\)) operator({) - keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(colorList)operator(.)ident(size)operator(()(\)\)) operator({) - pre_type(Toolkit)operator(.)ident(printString)operator(()ident(line)operator(,) integer(0)operator(,) ident(row)operator(,) keyword(new) ident(CharColor)operator(()ident(CharColor)operator(.)ident(BLACK)operator(,) ident(colorList)operator([)ident(i)(]\)\)) + keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(colorList)operator(.)ident(size)operator(()(\))(\)) operator({) + pre_type(Toolkit)operator(.)ident(printString)operator(()ident(line)operator(,) integer(0)operator(,) ident(row)operator(,) keyword(new) ident(CharColor)operator(()ident(CharColor)operator(.)ident(BLACK)operator(,) ident(colorList)operator([)ident(i)(])(\))(\)) ident(sleep) integer(10) (}) (}) @@ -8329,10 +8329,10 @@ keyword(while)operator(()operator(!)ident(done)(\)) operator({) ident(proc) operator(=) ident(args)operator([)integer(0)(])operator(.)ident(execute)operator(()(\)) ident(lines) operator(=) ident(proc)operator(.)ident(text)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\)) keyword(for) operator(()ident(r) keyword(in) integer(0)operator(..<)ident(maxrow)(\)) operator({) - keyword(if) operator(()ident(r) operator(>=) ident(lines)operator(.)ident(size)operator(()(\)) operator(||) ident(r) operator(>) ident(oldlines)operator(.)ident(size)operator(()(\)) operator(||) ident(lines)operator([)ident(r)(]) operator(!=) ident(oldlines)operator([)ident(r)(]\)) operator({) + keyword(if) operator(()ident(r) operator(>=) ident(lines)operator(.)ident(size)operator(()(\)) operator(||) ident(r) operator(>) ident(oldlines)operator(.)ident(size)operator(()(\)) operator(||) ident(lines)operator([)ident(r)(]) operator(!=) ident(oldlines)operator([)ident(r)(])(\)) operator({) keyword(if) operator(()ident(oldlines) operator(!=) type([])(\)) ident(fade)operator(()ident(r) operator(<) ident(oldlines)operator(.)ident(size)operator(()(\)) operator(?) ident(oldlines)operator([)ident(r)(]) operator(:) string<delimiter(')content( )delimiter(')> operator(*) ident(maxcol)operator(,) ident(r)operator(,) ident(colors)(\)) - ident(fade)operator(()ident(r) operator(<) ident(lines)operator(.)ident(size)operator(()(\)) operator(?) ident(lines)operator([)ident(r)(]) operator(:) string<delimiter(')content( )delimiter(')> operator(*) ident(maxcol)operator(,) ident(r)operator(,) ident(colors)operator(.)ident(reverse)operator(()(\)\)) + ident(fade)operator(()ident(r) operator(<) ident(lines)operator(.)ident(size)operator(()(\)) operator(?) ident(lines)operator([)ident(r)(]) operator(:) string<delimiter(')content( )delimiter(')> operator(*) ident(maxcol)operator(,) ident(r)operator(,) ident(colors)operator(.)ident(reverse)operator(()(\))(\)) (}) (}) ident(oldlines) operator(=) ident(lines) @@ -8366,7 +8366,7 @@ ident(command)operator(.)ident(expect)operator(()string<delimiter(')content(Pass comment(// expectj doesn't support regular expressions, but see readUntil) comment(// in recipe 18.6 for how to manually code this) ident(command)operator(.)ident(expect)operator(()string<delimiter(')content(invalid)delimiter(')>(\)) -ident(command)operator(.)ident(send)operator(()string<delimiter(')content(Hello, world)content(\\r)delimiter(')>(\)) +ident(command)operator(.)ident(send)operator(()string<delimiter(')content(Hello, world\\r)delimiter(')>(\)) comment(// kill spawned process) ident(command)operator(.)ident(stop)operator(()(\)) @@ -8389,7 +8389,7 @@ ident(frame) operator(=) keyword(new) ident(SwingBuilder)operator(()(\))operator ident(menuItem) operator(()key(actionPerformed)operator(:)local_variable(this)operator(.)operator(&)ident(print)operator(,) string<delimiter(')content(Print)delimiter(')>(\)) ident(separator)operator(()(\)) ident(menuItem) operator(()key(actionPerformed)operator(:)local_variable(this)operator(.)operator(&)ident(save)operator(,) string<delimiter(')content(Save)delimiter(')>(\)) - ident(menuItem) operator(()key(actionPerformed)operator(:)operator({)pre_type(System)operator(.)ident(exit)operator(()integer(0)(\)})operator(,) string<delimiter(')content(Quit immediately)delimiter(')>(\)) + ident(menuItem) operator(()key(actionPerformed)operator(:)operator({)pre_type(System)operator(.)ident(exit)operator(()integer(0)(\))(})operator(,) string<delimiter(')content(Quit immediately)delimiter(')>(\)) (}) ident(menu)operator(()key(mnemonic)operator(:)string<delimiter(')content(O)delimiter(')>operator(,) string<delimiter(')content(Options)delimiter(')>(\)) operator({) ident(checkBoxMenuItem) operator(()string<delimiter(')content(Create Debugging Info)delimiter(')>operator(,) key(state)operator(:)keyword(true)(\)) @@ -8463,7 +8463,7 @@ ident(frame) operator(=) ident(swing)operator(.)ident(frame)operator(()key(title ident(panel) operator({) ident(button)operator(()key(actionPerformed)operator(:)local_variable(this)operator(.)operator(&)ident(dialog)operator(,) string<delimiter(')content(Click Here For Registration Form)delimiter(')>(\)) ident(glue)operator(()(\)) - ident(button)operator(()key(actionPerformed)operator(:)operator({)pre_type(System)operator(.)ident(exit)operator(()integer(0)(\)})operator(,) string<delimiter(')content(Quit)delimiter(')>(\)) + ident(button)operator(()key(actionPerformed)operator(:)operator({)pre_type(System)operator(.)ident(exit)operator(()integer(0)(\))(})operator(,) string<delimiter(')content(Quit)delimiter(')>(\)) (}) (}) ident(frame)operator(.)ident(pack)operator(()(\)) @@ -8498,7 +8498,7 @@ ident(frame) operator(=) ident(swing)operator(.)ident(frame)operator(()key(title (}) ident(hbox) operator({) ident(button)operator(()string<delimiter(')content(Calculate)delimiter(')>operator(,) key(actionPerformed)operator(:)local_variable(this)operator(.)operator(&)ident(calculate)(\)) - ident(button)operator(()string<delimiter(')content(Quit)delimiter(')>operator(,) key(actionPerformed)operator(:)operator({)pre_type(System)operator(.)ident(exit)operator(()integer(0)(\)}\)) + ident(button)operator(()string<delimiter(')content(Quit)delimiter(')>operator(,) key(actionPerformed)operator(:)operator({)pre_type(System)operator(.)ident(exit)operator(()integer(0)(\))(})(\)) (}) (}) (}) @@ -8551,7 +8551,7 @@ ident(ch) operator(=) keyword(null) keyword(def) method(nextChar)operator(()(\))operator({) ident(ch) operator(=) ident(chars)operator([)integer(0)(]) ident(chars) operator(=) ident(chars)operator([)integer(1)operator(..)operator(-)integer(1)(]) operator(+) ident(chars)operator([)integer(0)(]) - ident(color) operator(=) keyword(new) ident(CharColor)operator(()ident(CharColor)operator(.)ident(BLACK)operator(,) ident(colors)operator([)integer(0)(]\)) + ident(color) operator(=) keyword(new) ident(CharColor)operator(()ident(CharColor)operator(.)ident(BLACK)operator(,) ident(colors)operator([)integer(0)(])(\)) ident(colors) operator(=) ident(colors)operator([)integer(1)operator(..)operator(-)integer(1)(]) operator(+) ident(colors)operator([)integer(0)(]) (}) ident(nextChar)operator(()(\)) @@ -8560,8 +8560,8 @@ keyword(while)operator(()keyword(true)(\)) operator({) ident(sleep) ident(delay) ident(row) operator(=) ident(row) operator(+) ident(rowinc) ident(col) operator(=) ident(col) operator(+) ident(colinc) - keyword(if) operator(()ident(row) keyword(in) operator([)integer(0)operator(,) ident(maxrow)(]\)) operator({) ident(nextChar)operator(()(\))operator(;) ident(rowinc) operator(=) operator(-)ident(rowinc) (}) - keyword(if) operator(()ident(col) keyword(in) operator([)integer(0)operator(,) ident(maxcol)(]\)) operator({) ident(nextChar)operator(()(\))operator(;) ident(colinc) operator(=) operator(-)ident(colinc) (}) + keyword(if) operator(()ident(row) keyword(in) operator([)integer(0)operator(,) ident(maxrow)(])(\)) operator({) ident(nextChar)operator(()(\))operator(;) ident(rowinc) operator(=) operator(-)ident(rowinc) (}) + keyword(if) operator(()ident(col) keyword(in) operator([)integer(0)operator(,) ident(maxcol)(])(\)) operator({) ident(nextChar)operator(()(\))operator(;) ident(colinc) operator(=) operator(-)ident(colinc) (}) (}) comment(//----------------------------------------------------------------------------------) @@ -8588,7 +8588,7 @@ type(class) class(DragDropList) directive(extends) pre_type(JList) directive(imp directive(public) ident(DragDropList)operator(()ident(model)(\)) operator({) local_variable(super)operator(()(\)) ident(setModel)operator(()ident(model)(\)) - ident(setCellRenderer)operator(()keyword(new) ident(DragDropCellRenderer)operator(()local_variable(this)(\)\)) + ident(setCellRenderer)operator(()keyword(new) ident(DragDropCellRenderer)operator(()local_variable(this)(\))(\)) ident(dragSource) operator(=) keyword(new) pre_type(DragSource)operator(()(\)) ident(dragSource)operator(.)ident(createDefaultDragGestureRecognizer)operator(()local_variable(this)operator(,) pre_type(DnDConstants)operator(.)ident(ACTION_MOVE)operator(,) local_variable(this)(\)) ident(dropTarget) operator(=) keyword(new) pre_type(DropTarget)operator(()local_variable(this)operator(,) local_variable(this)(\)) @@ -8662,7 +8662,7 @@ type(class) class(CustomTransferable) directive(implements) pre_type(Transferabl (}) directive(public) pre_type(Object) ident(getTransferData)operator(()pre_type(DataFlavor) ident(df)(\)) operator({) - keyword(if) operator(()ident(isDataFlavorSupported)operator(()ident(df)(\)\)) keyword(return) ident(object) + keyword(if) operator(()ident(isDataFlavorSupported)operator(()ident(df)(\))(\)) keyword(return) ident(object) (}) directive(public) type(boolean) ident(isDataFlavorSupported)operator(()pre_type(DataFlavor) ident(df)(\)) operator({) @@ -8748,7 +8748,7 @@ comment(//---------------------------------------------------------------------- comment(// sending text to the input of another process) ident(proc) operator(=) string<delimiter(')content(groovy -e "print System.in.text.toUpperCase(\)")delimiter(')>operator(.)ident(execute)operator(()(\)) pre_type(Thread)operator(.)ident(start)operator({) - keyword(def) ident(writer) operator(=) keyword(new) pre_type(PrintWriter)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()ident(proc)operator(.)ident(out)(\)\)) + keyword(def) ident(writer) operator(=) keyword(new) pre_type(PrintWriter)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()ident(proc)operator(.)ident(out)(\))(\)) ident(writer)operator(.)ident(println)operator(()string<delimiter(')content(Hello)delimiter(')>(\)) ident(writer)operator(.)ident(close)operator(()(\)) (}) @@ -8765,11 +8765,11 @@ comment(//---------------------------------------------------------------------- comment(// filter your own output) ident(keep) operator(=) pre_type(System)operator(.)ident(out) ident(pipe) operator(=) keyword(new) pre_type(PipedInputStream)operator(()(\)) -ident(reader) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()ident(pipe)(\)\)) -pre_type(System)operator(.)ident(setOut)operator(()keyword(new) pre_type(PrintStream)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()keyword(new) pre_type(PipedOutputStream)operator(()ident(pipe)(\)\)\)\)) +ident(reader) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()ident(pipe)(\))(\)) +pre_type(System)operator(.)ident(setOut)operator(()keyword(new) pre_type(PrintStream)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()keyword(new) pre_type(PipedOutputStream)operator(()ident(pipe)(\))(\))(\))(\)) type(int) ident(numlines) operator(=) integer(2) pre_type(Thread)operator(.)ident(start)operator({) - keyword(while)operator(()operator(()ident(next) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\)\)) operator(!=) keyword(null)(\)) operator({) + keyword(while)operator(()operator(()ident(next) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\))(\)) operator(!=) keyword(null)(\)) operator({) keyword(if) operator(()ident(numlines)operator(--) operator(>) integer(0)(\)) ident(keep)operator(.)ident(println)operator(()ident(next)(\)) (}) (}) @@ -8793,12 +8793,12 @@ type(class) class(FilterOutput) directive(extends) pre_type(Thread) operator({) local_variable(this)operator(.)ident(c) operator(=) ident(c) ident(orig) operator(=) pre_type(System)operator(.)ident(out) keyword(def) ident(pipe) operator(=) keyword(new) pre_type(PipedInputStream)operator(()(\)) - ident(reader) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()ident(pipe)(\)\)) - pre_type(System)operator(.)ident(setOut)operator(()keyword(new) pre_type(PrintStream)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()keyword(new) pre_type(PipedOutputStream)operator(()ident(pipe)(\)\)\)\)) + ident(reader) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()ident(pipe)(\))(\)) + pre_type(System)operator(.)ident(setOut)operator(()keyword(new) pre_type(PrintStream)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()keyword(new) pre_type(PipedOutputStream)operator(()ident(pipe)(\))(\))(\))(\)) (}) type(void) ident(run)operator(()(\)) operator({) keyword(def) ident(next) - keyword(while)operator(()operator(()ident(next) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\)\)) operator(!=) keyword(null)(\)) operator({) + keyword(while)operator(()operator(()ident(next) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\))(\)) operator(!=) keyword(null)(\)) operator({) ident(c)operator(()ident(orig)operator(,) ident(next)(\)) (}) (}) @@ -8829,7 +8829,7 @@ ident(input) operator(=) keyword(new) pre_type(URL)operator(()ident(address)(\)) comment(// ... process 'input' stream) comment(// process compressed file) -ident(input) operator(=) keyword(new) pre_type(GZIPInputStream)operator(()keyword(new) pre_type(FileInputStream)operator(()string<delimiter(')content(source.gzip)delimiter(')>(\)\)) +ident(input) operator(=) keyword(new) pre_type(GZIPInputStream)operator(()keyword(new) pre_type(FileInputStream)operator(()string<delimiter(')content(source.gzip)delimiter(')>(\))(\)) comment(// ... process 'input' stream) comment(//----------------------------------------------------------------------------------) @@ -8843,7 +8843,7 @@ ident(println) ident(proc)operator(.)ident(err)operator(.)ident(text) comment(// => Caught: java.lang.ArrayIndexOutOfBoundsException: 0 ...) comment(// To redirect your STDERR to a file) -pre_type(System)operator(.)ident(setErr)operator(()keyword(new) pre_type(PrintStream)operator(()keyword(new) pre_type(FileOutputStream)operator(()string<delimiter(")content(error.txt)delimiter(")>(\)\)\)) +pre_type(System)operator(.)ident(setErr)operator(()keyword(new) pre_type(PrintStream)operator(()keyword(new) pre_type(FileOutputStream)operator(()string<delimiter(")content(error.txt)delimiter(")>(\))(\))(\)) comment(//----------------------------------------------------------------------------------) @@ -8876,9 +8876,9 @@ comment(// Simplist approach is to just link streams:) ident(proc1) operator(=) string<delimiter(')content(groovy -e "println args[0]" Hello)delimiter(')>operator(.)ident(execute)operator(()(\)) ident(proc2) operator(=) string<delimiter(')content(groovy -e "print System.in.text.toUpperCase(\)")delimiter(')>operator(.)ident(execute)operator(()(\)) pre_type(Thread)operator(.)ident(start)operator({) - keyword(def) ident(reader) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()ident(proc1)operator(.)ident(in)(\)\)) - keyword(def) ident(writer) operator(=) keyword(new) pre_type(PrintWriter)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()ident(proc2)operator(.)ident(out)(\)\)) - keyword(while) operator(()operator(()ident(next) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\)\)) operator(!=) keyword(null)(\)) operator({) + keyword(def) ident(reader) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()ident(proc1)operator(.)ident(in)(\))(\)) + keyword(def) ident(writer) operator(=) keyword(new) pre_type(PrintWriter)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()ident(proc2)operator(.)ident(out)(\))(\)) + keyword(while) operator(()operator(()ident(next) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\))(\)) operator(!=) keyword(null)(\)) operator({) ident(writer)operator(.)ident(println)operator(()ident(next)(\)) (}) ident(writer)operator(.)ident(close)operator(()(\)) @@ -8962,7 +8962,7 @@ ident(name) operator(=) ident(args)operator([)integer(0)(]) ident(rand) operator(=) keyword(new) pre_type(Random)operator(()(\)) operator(()integer(0)operator(..)integer(99)(\))operator(.)ident(each) operator({) ident(mutex)operator(.)ident(lock)operator(()(\)) - ident(buffer)operator(.)ident(set)operator(()string<delimiter(")inline<inline_delimiter($)ident(name)>content( )inline<inline_delimiter($)local_variable(it)>delimiter(")>operator(.)ident(toString)operator(()(\)\)) + ident(buffer)operator(.)ident(set)operator(()string<delimiter(")inline<inline_delimiter($)ident(name)>content( )inline<inline_delimiter($)local_variable(it)>delimiter(")>operator(.)ident(toString)operator(()(\))(\)) ident(mutex)operator(.)ident(unlock)operator(()(\)) ident(sleep) integer(200) operator(+) ident(rand)operator(.)ident(nextInt)operator(()integer(500)(\)) (}) @@ -9023,7 +9023,7 @@ USR1 USR2 CHLD PWR WINCH URG POLL STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ WAITING LWP AIO IO INFO THR BREAK FREEZE THAW CANCEL EMT )delimiter(''')> -ident(sigs)operator(.)ident(tokenize)operator(()string<delimiter(')content( )content(\\n)delimiter(')>(\))operator(.)ident(each)operator({) +ident(sigs)operator(.)ident(tokenize)operator(()string<delimiter(')content( \\n)delimiter(')>(\))operator(.)ident(each)operator({) keyword(try) operator({) ident(print) string<delimiter(')content( )delimiter(')> operator(+) keyword(new) ident(sun)operator(.)ident(misc)operator(.)ident(Signal)operator(()local_variable(it)(\)) (}) keyword(catch)operator(()pre_type(IllegalArgumentException) ident(iae)(\)) operator({)(}) @@ -9036,7 +9036,7 @@ comment(//---------------------------------------------------------------------- comment(// @@PLEAC@@_16.14) comment(//----------------------------------------------------------------------------------) comment(// To send a signal to your process:) -ident(Signal)operator(.)ident(raise)operator(()keyword(new) ident(Signal)operator(()string<delimiter(")content(INT)delimiter(")>(\)\)) +ident(Signal)operator(.)ident(raise)operator(()keyword(new) ident(Signal)operator(()string<delimiter(")content(INT)delimiter(")>(\))(\)) comment(//----------------------------------------------------------------------------------) @@ -9082,7 +9082,7 @@ type(class) class(DiagSignalHandler) directive(implements) ident(SignalHandler) type(int) ident(numThreads) operator(=) pre_type(Thread)operator(.)ident(enumerate)operator(()ident(threadArray)(\)) ident(println)operator(()string<delimiter(")content(Current threads:)delimiter(")>(\)) keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(numThreads)(\)) operator({) - ident(println)operator(()string<delimiter(")content( )delimiter(")>operator(+)ident(threadArray)operator([)ident(i)(]\)) + ident(println)operator(()string<delimiter(")content( )delimiter(")>operator(+)ident(threadArray)operator([)ident(i)(])(\)) (}) comment(// Chain back to previous handler, if one exists) @@ -9092,7 +9092,7 @@ type(class) class(DiagSignalHandler) directive(implements) ident(SignalHandler) (}) (}) comment(// install using:) -ident(DiagSignalHandler)operator(.)ident(install)operator(()keyword(new) ident(Signal)operator(()string<delimiter(")content(INT)delimiter(")>(\)\)) +ident(DiagSignalHandler)operator(.)ident(install)operator(()keyword(new) ident(Signal)operator(()string<delimiter(")content(INT)delimiter(")>(\))(\)) comment(//----------------------------------------------------------------------------------) @@ -9178,12 +9178,12 @@ Comments on data are usually much more helpful than on algorithms. Programs that write programs are the happiest programs in the world. --Andrew Hume )delimiter(''')>operator(.)ident(trim)operator(()(\))operator(.)ident(split)operator(()regexp<delimiter(/)char(\\n)content(%%)char(\\n)delimiter(/)>(\)) -ident(name) operator(=) string<delimiter(')content(me@somewhere.org)content(\\n)delimiter(')> +ident(name) operator(=) string<delimiter(')content(me@somewhere.org\\n)delimiter(')> ident(file) operator(=) keyword(new) pre_type(File)operator(()pre_type(System)operator(.)ident(getProperty)operator(()string<delimiter(')content(user.home)delimiter(')>(\)) operator(+) pre_type(File)operator(.)ident(separator) operator(+) string<delimiter(')content(.signature)delimiter(')>(\)) ident(rand) operator(=) keyword(new) pre_type(Random)operator(()(\)) keyword(while)operator(()integer(1)(\)) operator({) ident(file)operator(.)ident(delete)operator(()(\)) - ident(file) operator(<)operator(<) ident(name) operator(+) ident(sigs)operator([)ident(rand)operator(.)ident(nextInt)operator(()ident(sigs)operator(.)ident(size)operator(()(\)\)]) + ident(file) operator(<)operator(<) ident(name) operator(+) ident(sigs)operator([)ident(rand)operator(.)ident(nextInt)operator(()ident(sigs)operator(.)ident(size)operator(()(\))(\))(]) ident(sleep) integer(10000) (}) @@ -9234,7 +9234,7 @@ comment(// a web server as a script (extension to cookbook\)) ident(output)operator(.)ident(withWriter) operator({) ident(writer) operator(->) ident(writer) operator(<)operator(<) string<delimiter(")content(HTTP/1.1 200 OK)char(\\n)delimiter(")> ident(writer) operator(<)operator(<) string<delimiter(")content(Content-Type: text/html)char(\\n)char(\\n)delimiter(")> - ident(writer) operator(<)operator(<) string<delimiter(")content(<html><body>Hello World! It's )inline<inline_delimiter(${)ident(new Date(\))inline_delimiter(})>content(</body></html>)char(\\n)delimiter(")> + ident(writer) operator(<)operator(<) string<delimiter(")content(<html><body>Hello World! It's )inline<inline_delimiter(${)keyword(new) pre_type(Date)operator(()(\))inline_delimiter(})>content(</body></html>)char(\\n)delimiter(")> (}) (}) (}) @@ -9429,7 +9429,7 @@ keyword(import) include(org.xbill.DNS.*) pre_type(System)operator(.)ident(setProperty)operator(()string<delimiter(")content(sun.net.spi.nameservice.provider.1)delimiter(")>operator(,)string<delimiter(")content(dns,dnsjava)delimiter(")>(\)) ident(Lookup) ident(lookup) operator(=) keyword(new) ident(Lookup)operator(()string<delimiter(')content(cnn.com)delimiter(')>operator(,) pre_type(Type)operator(.)ident(ANY)(\)) ident(records) operator(=) ident(lookup)operator(.)ident(run)operator(()(\)) -ident(println) string<delimiter(")inline<inline_delimiter(${)ident(records?.size(\))inline_delimiter(})>content( record(s\) found)delimiter(")> +ident(println) string<delimiter(")inline<inline_delimiter(${)ident(records)operator(?)operator(.)ident(size)operator(()(\))inline_delimiter(})>content( record(s\) found)delimiter(")> ident(records)operator(.)ident(each)operator({) ident(println) local_variable(it) (}) comment(// =>) comment(// 17 record(s\) found) @@ -9505,7 +9505,7 @@ ident(files) operator(=) ident(ftp)operator(.)ident(listFiles)operator(()(\)) ident(println) string<delimiter(")content(Number of files in dir: )inline<inline_delimiter($)ident(files)>content(.length)delimiter(")> ident(df) operator(=) pre_type(DateFormat)operator(.)ident(getDateInstance)operator(() pre_type(DateFormat)operator(.)ident(SHORT) (\)) ident(files)operator(.)ident(each)operator({) ident(file) operator(->) - ident(println) string<delimiter(")inline<inline_delimiter(${)ident(df.format(file.timestamp.time\))inline_delimiter(})>char(\\t)content( )inline<inline_delimiter($)ident(file)>content(.name)delimiter(")> + ident(println) string<delimiter(")inline<inline_delimiter(${)ident(df)operator(.)ident(format)operator(()ident(file)operator(.)ident(timestamp)operator(.)ident(time)(\))inline_delimiter(})>char(\\t)content( )inline<inline_delimiter($)ident(file)>content(.name)delimiter(")> (}) comment(// Logout from the FTP Server and disconnect) @@ -9604,10 +9604,10 @@ ident(postingPerm) operator(=) operator([)string<delimiter(')content(Unknown)del ident(client) operator(=) keyword(new) ident(NNTPClient)operator(()(\)) ident(client)operator(.)ident(connect)operator(()string<delimiter(")content(news.example.com)delimiter(")>(\)) ident(list) operator(=) ident(client)operator(.)ident(listNewsgroups)operator(()(\)) -ident(println) string<delimiter(")content(Found )inline<inline_delimiter(${)ident(list.size(\))inline_delimiter(})>content( newsgroups)delimiter(")> -ident(aList) operator(=) ident(list)operator([)keyword(new) pre_type(Random)operator(()(\))operator(.)ident(nextInt)operator(()ident(list)operator(.)ident(size)operator(()(\)\)]) +ident(println) string<delimiter(")content(Found )inline<inline_delimiter(${)ident(list)operator(.)ident(size)operator(()(\))inline_delimiter(})>content( newsgroups)delimiter(")> +ident(aList) operator(=) ident(list)operator([)keyword(new) pre_type(Random)operator(()(\))operator(.)ident(nextInt)operator(()ident(list)operator(.)ident(size)operator(()(\))(\))(]) ident(println) string<delimiter(")inline<inline_delimiter($)ident(aList)>content(.newsgroup has )inline<inline_delimiter($)ident(aList)>content(.articleCount articles)delimiter(")> -ident(println) string<delimiter(")content(PostingPermission = )inline<inline_delimiter(${)ident(postingPerm[aList.postingPermission])inline_delimiter(})>delimiter(")> +ident(println) string<delimiter(")content(PostingPermission = )inline<inline_delimiter(${)ident(postingPerm)operator([)ident(aList)operator(.)ident(postingPermission)(])inline_delimiter(})>delimiter(")> ident(first) operator(=) ident(aList)operator(.)ident(firstArticle) ident(println) string<delimiter(")content(First=)inline<inline_delimiter($)ident(first)>content(, Last=)inline<inline_delimiter($)ident(aList)>content(.lastArticle)delimiter(")> ident(client)operator(.)ident(retrieveArticle)operator(()ident(first)(\))operator(?)operator(.)ident(eachLine)operator({) ident(println) local_variable(it) (}) @@ -9618,7 +9618,7 @@ ident(writer) operator(=) ident(client)operator(.)ident(postArticle)operator(()( comment(// ... use writer ...) ident(writer)operator(.)ident(close)operator(()(\)) ident(client)operator(.)ident(logout)operator(()(\)) -keyword(if) operator(()ident(client)operator(.)ident(isConnected)operator(()(\)\)) ident(client)operator(.)ident(disconnect)operator(()(\)) +keyword(if) operator(()ident(client)operator(.)ident(isConnected)operator(()(\))(\)) ident(client)operator(.)ident(disconnect)operator(()(\)) comment(// =>) comment(// Found 37025 newsgroups) comment(// alt.comp.sys.palmtops.pilot has 730 articles) @@ -9642,8 +9642,8 @@ keyword(def) method(printMessageInfo)operator(()ident(reader)operator(,) ident(i keyword(def) ident(from)operator(,) ident(subject) ident(reader)operator(.)ident(eachLine)operator({) ident(line) operator(->) ident(lower) operator(=) ident(line)operator(.)ident(toLowerCase)operator(()(\)) - keyword(if) operator(()ident(lower)operator(.)ident(startsWith)operator(()string<delimiter(")content(from: )delimiter(")>(\)\)) ident(from) operator(=) ident(line)operator([)integer(6)operator(..)operator(-)integer(1)(])operator(.)ident(trim)operator(()(\)) - keyword(else) keyword(if) operator(()ident(lower)operator(.)ident(startsWith)operator(()string<delimiter(")content(subject: )delimiter(")>(\)\)) ident(subject) operator(=) ident(line)operator([)integer(9)operator(..)operator(-)integer(1)(])operator(.)ident(trim)operator(()(\)) + keyword(if) operator(()ident(lower)operator(.)ident(startsWith)operator(()string<delimiter(")content(from: )delimiter(")>(\))(\)) ident(from) operator(=) ident(line)operator([)integer(6)operator(..)operator(-)integer(1)(])operator(.)ident(trim)operator(()(\)) + keyword(else) keyword(if) operator(()ident(lower)operator(.)ident(startsWith)operator(()string<delimiter(")content(subject: )delimiter(")>(\))(\)) ident(subject) operator(=) ident(line)operator([)integer(9)operator(..)operator(-)integer(1)(])operator(.)ident(trim)operator(()(\)) (}) ident(println) string<delimiter(")inline<inline_delimiter($)ident(id)>content( From: )inline<inline_delimiter($)ident(from)>content(, Subject: )inline<inline_delimiter($)ident(subject)>delimiter(")> (}) @@ -9652,7 +9652,7 @@ ident(pop3) operator(=) keyword(new) ident(POP3Client)operator(()(\)) ident(pop3)operator(.)ident(setDefaultTimeout)operator(()ident(timeoutMillis)(\)) ident(pop3)operator(.)ident(connect)operator(()ident(server)(\)) -keyword(if) operator(()operator(!)ident(pop3)operator(.)ident(login)operator(()ident(username)operator(,) ident(password)(\)\)) operator({) +keyword(if) operator(()operator(!)ident(pop3)operator(.)ident(login)operator(()ident(username)operator(,) ident(password)(\))(\)) operator({) pre_type(System)operator(.)ident(err)operator(.)ident(println)operator(()string<delimiter(")content(Could not login to server. Check password.)delimiter(")>(\)) ident(pop3)operator(.)ident(disconnect)operator(()(\)) pre_type(System)operator(.)ident(exit)operator(()integer(1)(\)) @@ -9687,9 +9687,9 @@ keyword(import) include(org.apache.commons.net.telnet.TelnetClient) keyword(def) method(readUntil)operator(() ident(pattern) (\)) operator({) ident(sb) operator(=) keyword(new) pre_type(StringBuffer)operator(()(\)) - keyword(while) operator(()operator(()ident(ch) operator(=) ident(reader)operator(.)ident(read)operator(()(\)\)) operator(!=) operator(-)integer(1)(\)) operator({) + keyword(while) operator(()operator(()ident(ch) operator(=) ident(reader)operator(.)ident(read)operator(()(\))(\)) operator(!=) operator(-)integer(1)(\)) operator({) ident(sb) operator(<)operator(<) operator(()type(char)(\)) ident(ch) - keyword(if) operator(()ident(sb)operator(.)ident(toString)operator(()(\))operator(.)ident(endsWith)operator(()ident(pattern)(\)\)) operator({) + keyword(if) operator(()ident(sb)operator(.)ident(toString)operator(()(\))operator(.)ident(endsWith)operator(()ident(pattern)(\))(\)) operator({) keyword(def) ident(found) operator(=) ident(sb)operator(.)ident(toString)operator(()(\)) ident(sb) operator(=) keyword(new) pre_type(StringBuffer)operator(()(\)) keyword(return) ident(found) @@ -9713,7 +9713,7 @@ ident(writer)operator(.)ident(println)operator(()string<delimiter(")content(10)d ident(readUntil)operator(() string<delimiter(")content(Selection:)delimiter(")> (\)) ident(writer)operator(.)ident(println)operator(()string<delimiter(")content(3)delimiter(")>(\)) ident(x) operator(=) ident(readUntil)operator(() string<delimiter(")content(Return)delimiter(")> (\)) -keyword(while) operator(()operator(!)ident(x)operator(.)ident(contains)operator(()string<delimiter(')content(SYDNEY)delimiter(')>(\)\)) operator({) +keyword(while) operator(()operator(!)ident(x)operator(.)ident(contains)operator(()string<delimiter(')content(SYDNEY)delimiter(')>(\))(\)) operator({) ident(writer)operator(.)ident(println)operator(()(\)) ident(x) operator(=) ident(readUntil)operator(() string<delimiter(")content(Return)delimiter(")> (\)) (}) @@ -9811,22 +9811,22 @@ ident(builder)operator(.)ident(html) operator({) ident(title) string<delimiter(')content(Howdy there!)delimiter(')> (}) ident(body) operator({) - ident(p)operator(()string<delimiter(')content(You typed: )delimiter(')> operator(+) ident(request)operator(.)ident(getParameter)operator(()string<delimiter(')content(PARAM_NAME)delimiter(')>(\)\)) + ident(p)operator(()string<delimiter(')content(You typed: )delimiter(')> operator(+) ident(request)operator(.)ident(getParameter)operator(()string<delimiter(')content(PARAM_NAME)delimiter(')>(\))(\)) (}) (}) ident(println) ident(writer)operator(.)ident(toString)operator(()(\)) comment(// as a GSP page:) operator(<)ident(html)operator(>)operator(<)ident(head)operator(>) -operator(<)ident(title)operator(>)ident(Howdy) ident(there)operator(!)operator(<)regexp<delimiter(/)content(title>)>error() -operator(<)regexp<delimiter(/)content(head>)>error() -operator(<)ident(body)operator(>) +operator(<)ident(title)operator(>)ident(Howdy) ident(there)operator(!)operator(<)regexp<delimiter(/)content(title>)>error( +)operator(<)regexp<delimiter(/)content(head>)>error( +)operator(<)ident(body)operator(>) operator(<)ident(p)operator(>) -ident(You) key(typed)operator(:) error($)operator({)ident(request)operator(.)ident(getParameter)operator(()string<delimiter(')content(PARAM_NAME)delimiter(')>(\)}) -operator(<)regexp<delimiter(/)content(p>)>error() -operator(<)regexp<delimiter(/)content(body>)>error() -operator(<)regexp<delimiter(/)content(html>)>error() - +ident(You) key(typed)operator(:) error($)operator({)ident(request)operator(.)ident(getParameter)operator(()string<delimiter(')content(PARAM_NAME)delimiter(')>(\))(}) +operator(<)regexp<delimiter(/)content(p>)>error( +)operator(<)regexp<delimiter(/)content(body>)>error( +)operator(<)regexp<delimiter(/)content(html>)>error( +) comment(// Request parameters are often encoded by the browser before) comment(// sending to the server and usually can be printed out as is.) comment(// If you need to convert, use commons lang StringEscapeUtils#escapeHtml(\)) @@ -9854,14 +9854,14 @@ comment(// web server log.) comment(// To send errors to custom HTML pages, update the web.xml deployment) comment(// descriptor to include one or more <error-page> elements, e.g.:) operator(<)ident(error)operator(-)ident(page)operator(>) - operator(<)ident(error)operator(-)ident(code)operator(>)integer(404)operator(<)regexp<delimiter(/)content(error-code>)>error() - operator(<)ident(location)operator(>)regexp<delimiter(/)content(404.html<)delimiter(/)>ident(location)operator(>) -operator(<)regexp<delimiter(/)content(error-page>)>error() -operator(<)ident(error)operator(-)ident(page)operator(>) - operator(<)ident(exception)operator(-)ident(type)operator(>)ident(java)operator(.)ident(lang)operator(.)ident(NullPointerException)operator(<)regexp<delimiter(/)content(exception-type>)>error() - operator(<)ident(location)operator(>)regexp<delimiter(/)content(NpeError.gsp<)delimiter(/)>ident(location)operator(>) -operator(<)regexp<delimiter(/)content(error-page>)>error() - + operator(<)ident(error)operator(-)ident(code)operator(>)integer(404)operator(<)regexp<delimiter(/)content(error-code>)>error( +) operator(<)ident(location)operator(>)regexp<delimiter(/)content(404.html<)delimiter(/)>ident(location)operator(>) +operator(<)regexp<delimiter(/)content(error-page>)>error( +)operator(<)ident(error)operator(-)ident(page)operator(>) + operator(<)ident(exception)operator(-)ident(type)operator(>)ident(java)operator(.)ident(lang)operator(.)ident(NullPointerException)operator(<)regexp<delimiter(/)content(exception-type>)>error( +) operator(<)ident(location)operator(>)regexp<delimiter(/)content(NpeError.gsp<)delimiter(/)>ident(location)operator(>) +operator(<)regexp<delimiter(/)content(error-page>)>error( +) comment(// Another trick is to catch an exception within the servlet/gsp code) comment(// and print it out into the HTML as a comment.) comment(//----------------------------------------------------------------------------------) @@ -10077,7 +10077,7 @@ ident(menu) operator(=) operator([) (]) ident(page) operator(=) string<delimiter(')content(a/aportraitofj.randomhacker.html)delimiter(')> ident(menu)operator(.)ident(each)operator({) - keyword(if) operator(()ident(agent) operator(=~) local_variable(it)operator([)integer(0)(]\)) ident(page) operator(=) local_variable(it)operator([)integer(1)(]) + keyword(if) operator(()ident(agent) operator(=~) local_variable(it)operator([)integer(0)(])(\)) ident(page) operator(=) local_variable(it)operator([)integer(1)(]) (}) ident(response)operator(.)ident(sendRedirect)operator(()string<delimiter(")inline<inline_delimiter($)ident(dir)>content(/)inline<inline_delimiter($)ident(page)>delimiter(")>(\)) @@ -10235,7 +10235,7 @@ comment(// kicking off processing) ident(html)operator({) ident(head)operator({) ident(title)operator(()string<delimiter(')content(chemiserie store)delimiter(')>(\)) (}) ident(body) operator({) - keyword(if) operator(()ident(states)operator([)ident(page)(]\)) ident(process)operator(()ident(page)(\)) + keyword(if) operator(()ident(states)operator([)ident(page)(])(\)) ident(process)operator(()ident(page)(\)) keyword(else) ident(noSuchPage)operator(()(\)) (}) (}) @@ -10285,7 +10285,7 @@ ident(b) operator(=) keyword(new) ident(MarkupBuilder)operator(()ident(writer)(\ ident(b)operator(.)ident(html)operator({) ident(head)operator({) ident(title)operator(()string<delimiter(')content(chemiserie store)delimiter(')>(\)) (}) ident(body) operator({) - keyword(if) operator(()ident(states)operator([)ident(page)(]\)) ident(process)operator(()ident(page)(\)) + keyword(if) operator(()ident(states)operator([)ident(page)(])(\)) ident(process)operator(()ident(page)(\)) keyword(else) ident(noSuchPage)operator(()(\)) (}) (}) @@ -10327,8 +10327,8 @@ keyword(def) method(shirt)operator(()ident(active)(\)) operator({) keyword(def) ident(size) operator(=) ident(param)operator(()string<delimiter(')content(shirt_size)delimiter(')>(\)) comment(// sanity check) keyword(if) operator(()ident(count)(\)) operator({) - keyword(if) operator(()operator(!)operator(()ident(color) keyword(in) ident(colors)(\)\)) ident(color) operator(=) ident(colors)operator([)integer(0)(]) - keyword(if) operator(()operator(!)operator(()ident(size) keyword(in) ident(sizes)(\)\)) ident(size) operator(=) ident(sizes)operator([)integer(0)(]) + keyword(if) operator(()operator(!)operator(()ident(color) keyword(in) ident(colors)(\))(\)) ident(color) operator(=) ident(colors)operator([)integer(0)(]) + keyword(if) operator(()operator(!)operator(()ident(size) keyword(in) ident(sizes)(\))(\)) ident(size) operator(=) ident(sizes)operator([)integer(0)(]) (}) keyword(if) operator(()operator(!)ident(active)(\)) operator({) keyword(if) operator(()ident(size)(\)) ident(hidden)operator(()string<delimiter(")content(shirt_size)delimiter(")>operator(,) ident(size)(\)) @@ -10339,7 +10339,7 @@ keyword(def) method(shirt)operator(()ident(active)(\)) operator({) ident(b)operator(.)ident(h1) string<delimiter(')content(T-Shirt)delimiter(')> ident(b)operator(.)ident(p) string<delimiter(''')content(What a shirt! This baby is decked out with all the options. It comes with full luxury interior, cotton trim, and a collar - to make your eyes water! Unit price: )content($)content(33.00)delimiter(''')> + to make your eyes water! Unit price: $33.00)delimiter(''')> ident(b)operator(.)ident(h2) string<delimiter(')content(Options)delimiter(')> ident(label)operator(()string<delimiter(")content(How Many?)delimiter(")>(\))operator(;) ident(textfield)operator(()string<delimiter(")content(shirt_count)delimiter(")>(\)) ident(label)operator(()string<delimiter(")content(Size?)delimiter(")>(\))operator(;) ident(dropDown)operator(()string<delimiter(")content(shirt_size)delimiter(")>operator(,) ident(sizes)(\)) @@ -10355,8 +10355,8 @@ keyword(def) method(sweater)operator(()ident(active)(\)) operator({) keyword(def) ident(size) operator(=) ident(param)operator(()string<delimiter(')content(sweater_size)delimiter(')>(\)) comment(// sanity check) keyword(if) operator(()ident(count)(\)) operator({) - keyword(if) operator(()operator(!)operator(()ident(color) keyword(in) ident(colors)(\)\)) ident(color) operator(=) ident(colors)operator([)integer(0)(]) - keyword(if) operator(()operator(!)operator(()ident(size) keyword(in) ident(sizes)(\)\)) ident(size) operator(=) ident(sizes)operator([)integer(0)(]) + keyword(if) operator(()operator(!)operator(()ident(color) keyword(in) ident(colors)(\))(\)) ident(color) operator(=) ident(colors)operator([)integer(0)(]) + keyword(if) operator(()operator(!)operator(()ident(size) keyword(in) ident(sizes)(\))(\)) ident(size) operator(=) ident(sizes)operator([)integer(0)(]) (}) keyword(if) operator(()operator(!)ident(active)(\)) operator({) keyword(if) operator(()ident(size)(\)) ident(hidden)operator(()string<delimiter(")content(sweater_size)delimiter(")>operator(,) ident(size)(\)) @@ -10422,17 +10422,17 @@ keyword(def) method(orderText)operator(()(\)) operator({) keyword(def) ident(shirts) operator(=) ident(param)operator(()string<delimiter(')content(shirt_count)delimiter(')>(\)) keyword(def) ident(sweaters) operator(=) ident(param)operator(()string<delimiter(')content(sweater_count)delimiter(')>(\)) keyword(if) operator(()ident(shirts)(\)) operator({) - ident(b)operator(.)ident(p)operator(()string<delimiter(""")content(You have ordered )inline<inline_delimiter(${)ident(param('shirt_count'\))inline_delimiter(})>content( - shirts of size )inline<inline_delimiter(${)ident(param('shirt_size'\))inline_delimiter(})>content( - and color )inline<inline_delimiter(${)ident(param("shirt_color"\))inline_delimiter(})>content(.)delimiter(""")>(\)) + ident(b)operator(.)ident(p)operator(()string<delimiter(""")content(You have ordered )inline<inline_delimiter(${)ident(param)operator(()string<delimiter(')content(shirt_count)delimiter(')>(\))inline_delimiter(})>content( + shirts of size )inline<inline_delimiter(${)ident(param)operator(()string<delimiter(')content(shirt_size)delimiter(')>(\))inline_delimiter(})>content( + and color )inline<inline_delimiter(${)ident(param)operator(()string<delimiter(")content(shirt_color)delimiter(")>(\))inline_delimiter(})>content(.)delimiter(""")>(\)) (}) keyword(if) operator(()ident(sweaters)(\)) operator({) - ident(b)operator(.)ident(p)operator(()string<delimiter(""")content(You have ordered )inline<inline_delimiter(${)ident(param('sweater_count'\))inline_delimiter(})>content( - sweaters of size )inline<inline_delimiter(${)ident(param('sweater_size'\))inline_delimiter(})>content( - and color )inline<inline_delimiter(${)ident(param('sweater_color'\))inline_delimiter(})>content(.)delimiter(""")>(\)) + ident(b)operator(.)ident(p)operator(()string<delimiter(""")content(You have ordered )inline<inline_delimiter(${)ident(param)operator(()string<delimiter(')content(sweater_count)delimiter(')>(\))inline_delimiter(})>content( + sweaters of size )inline<inline_delimiter(${)ident(param)operator(()string<delimiter(')content(sweater_size)delimiter(')>(\))inline_delimiter(})>content( + and color )inline<inline_delimiter(${)ident(param)operator(()string<delimiter(')content(sweater_color)delimiter(')>(\))inline_delimiter(})>content(.)delimiter(""")>(\)) (}) keyword(if) operator(()operator(!)ident(sweaters) operator(&&) operator(!)ident(shirts)(\)) ident(b)operator(.)ident(p)operator(()string<delimiter(")content(Nothing!)delimiter(")>(\)) - ident(b)operator(.)ident(p)operator(()string<delimiter(")content(For a total cost of )inline<inline_delimiter(${)ident(calcPrice(\))inline_delimiter(})>delimiter(")>(\)) + ident(b)operator(.)ident(p)operator(()string<delimiter(")content(For a total cost of )inline<inline_delimiter(${)ident(calcPrice)operator(()(\))inline_delimiter(})>delimiter(")>(\)) (}) keyword(def) method(label)operator(()ident(text)(\)) operator({) ident(b)operator(.)ident(span)operator(()ident(text)(\)) (}) @@ -10448,12 +10448,12 @@ keyword(def) method(dropDown)operator(()ident(name)operator(,) ident(values)(\)) ident(b)operator(.)ident(br)operator(()(\)) (}) keyword(def) method(hidden)operator(()ident(name)(\)) operator({) - keyword(if) operator(()ident(binding)operator(.)ident(variables)operator(.)ident(containsKey)operator(()ident(name)(\)\)) ident(v) operator(=) ident(binding)operator([)ident(name)(]) + keyword(if) operator(()ident(binding)operator(.)ident(variables)operator(.)ident(containsKey)operator(()ident(name)(\))(\)) ident(v) operator(=) ident(binding)operator([)ident(name)(]) keyword(else) ident(v) operator(=) string<delimiter(')delimiter(')> ident(hidden)operator(()ident(name)operator(,) ident(v)(\)) (}) keyword(def) method(hidden)operator(()ident(name)operator(,) ident(value)(\)) operator({) ident(b)operator(.)ident(input)operator(()key(type)operator(:)string<delimiter(')content(hidden)delimiter(')>operator(,) key(name)operator(:)ident(name)operator(,) key(value)operator(:)ident(value)(\)) (}) -keyword(def) method(textfield)operator(()ident(name)(\)) operator({) ident(b)operator(.)ident(input)operator(()key(type)operator(:)string<delimiter(')content(text)delimiter(')>operator(,) key(name)operator(:)ident(name)operator(,) key(value)operator(:)ident(param)operator(()ident(name)operator(,)string<delimiter(')delimiter(')>(\)\))operator(;) ident(b)operator(.)ident(br)operator(()(\)) (}) +keyword(def) method(textfield)operator(()ident(name)(\)) operator({) ident(b)operator(.)ident(input)operator(()key(type)operator(:)string<delimiter(')content(text)delimiter(')>operator(,) key(name)operator(:)ident(name)operator(,) key(value)operator(:)ident(param)operator(()ident(name)operator(,)string<delimiter(')delimiter(')>(\))(\))operator(;) ident(b)operator(.)ident(br)operator(()(\)) (}) keyword(def) method(param)operator(()ident(name)(\)) operator({) ident(request)operator(.)ident(getParameter)operator(()ident(name)(\)) (}) keyword(def) method(param)operator(()ident(name)operator(,) ident(defValue)(\)) operator({) keyword(def) ident(val) operator(=) ident(request)operator(.)ident(getParameter)operator(()ident(name)(\)) @@ -10568,14 +10568,14 @@ comment(// @@PLEAC@@_20.4) comment(//----------------------------------------------------------------------------------) comment(// split paragraphs) ident(LS) operator(=) pre_type(System)operator(.)ident(properties)operator(.)string<delimiter(')content(line.separator)delimiter(')> -keyword(new) pre_type(File)operator(()ident(args)operator([)integer(0)(]\))operator(.)ident(text)operator(.)ident(split)operator(()string<delimiter(")inline<inline_delimiter($)ident(LS)>inline<inline_delimiter($)ident(LS)>delimiter(")>(\))operator(.)ident(each)operator({) ident(para) operator(->) - keyword(if) operator(()ident(para)operator(.)ident(startsWith)operator(()string<delimiter(")content( )delimiter(")>(\)\)) ident(println) string<delimiter(")content(<pre>)char(\\n)inline<inline_delimiter($)ident(para)>char(\\n)content(</pre>)delimiter(")> +keyword(new) pre_type(File)operator(()ident(args)operator([)integer(0)(])(\))operator(.)ident(text)operator(.)ident(split)operator(()string<delimiter(")inline<inline_delimiter($)ident(LS)>inline<inline_delimiter($)ident(LS)>delimiter(")>(\))operator(.)ident(each)operator({) ident(para) operator(->) + keyword(if) operator(()ident(para)operator(.)ident(startsWith)operator(()string<delimiter(")content( )delimiter(")>(\))(\)) ident(println) string<delimiter(")content(<pre>)char(\\n)inline<inline_delimiter($)ident(para)>char(\\n)content(</pre>)delimiter(")> keyword(else) operator({) - ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?m\)^(>.*?\))content($)delimiter(/)>operator(,) regexp<delimiter(/)content($)content(1<br )content(\\/)content(>)delimiter(/)>(\)) comment(// quoted text) - ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(<URL:(.*\)>)delimiter(/)>operator(,) regexp<delimiter(/)content(<a href=")content($)content(1">)content($)content(1<)content(\\/)content(a>)delimiter(/)>(\)) comment(// embedded URL) - ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((http:)char(\\S)content(+\))delimiter(/)>operator(,) regexp<delimiter(/)content(<a href=")content($)content(1">)content($)content(1<)content(\\/)content(a>)delimiter(/)>(\)) comment(// guessed URL) - ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()string<delimiter(')char(\\\\)content(*()char(\\\\)content(S+\))char(\\\\)content(*)delimiter(')>operator(,) regexp<delimiter(/)content(<strong>)content($)content(1<)content(\\/)content(strong>)delimiter(/)>(\)) comment(// this is *bold* here) - ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\b)content(_()char(\\S)content(+\)_)char(\\b)delimiter(/)>operator(,) regexp<delimiter(/)content(<em>)content($)content(1<)content(\\/)content(em>)delimiter(/)>(\)) comment(// this is _italic_ here) + ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?m\)^(>.*?\))content($)delimiter(/)>operator(,) regexp<delimiter(/)content($)content(1<br )char(\\/)content(>)delimiter(/)>(\)) comment(// quoted text) + ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(<URL:(.*\)>)delimiter(/)>operator(,) regexp<delimiter(/)content(<a href=")content($)content(1">)content($)content(1<)char(\\/)content(a>)delimiter(/)>(\)) comment(// embedded URL) + ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((http:)char(\\S)content(+\))delimiter(/)>operator(,) regexp<delimiter(/)content(<a href=")content($)content(1">)content($)content(1<)char(\\/)content(a>)delimiter(/)>(\)) comment(// guessed URL) + ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()string<delimiter(')char(\\\\)content(*()char(\\\\)content(S+\))char(\\\\)content(*)delimiter(')>operator(,) regexp<delimiter(/)content(<strong>)content($)content(1<)char(\\/)content(strong>)delimiter(/)>(\)) comment(// this is *bold* here) + ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\b)content(_()char(\\S)content(+\)_)char(\\b)delimiter(/)>operator(,) regexp<delimiter(/)content(<em>)content($)content(1<)char(\\/)content(em>)delimiter(/)>(\)) comment(// this is _italic_ here) ident(println) string<delimiter(")content(<p>)char(\\n)inline<inline_delimiter($)ident(para)>char(\\n)content(</p>)delimiter(")> comment(// add paragraph tags) (}) (}) @@ -10583,9 +10583,9 @@ keyword(new) pre_type(File)operator(()ident(args)operator([)integer(0)(]\))opera keyword(def) method(encodeEmail)operator(()ident(email)(\)) operator({) ident(println) string<delimiter(")content(<table>)delimiter(")> ident(email) operator(=) pre_type(URLEncoder)operator(.)ident(encode)operator(()ident(email)(\)) - ident(email) operator(=) ident(text)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(()char(\\n)content([ )char(\\t)content(]+\))delimiter(/)>operator(,) operator(/) operator(.) regexp<delimiter(/)content(\) )delimiter(/)>operator(/) ident(continuation) ident(lines) + ident(email) operator(=) ident(text)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(()char(\\n)content([ )char(\\t)content(]+\))delimiter(/)>operator(,) regexp<delimiter(/)content( . )delimiter(/)>(\)) comment(// continuation lines) ident(email) operator(=) ident(text)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?m\)^()char(\\S)content(+?:\))char(\\s)content(*(.*?\))content($)delimiter(/)>operator(,) - regexp<delimiter(/)content(<tr><th align="left">)content($)content(1<)content(\\/)content(th><td>)content($)content(2<)content(\\/)content(td><)content(\\/)content(tr>)delimiter(/)>(\))operator(;) + regexp<delimiter(/)content(<tr><th align="left">)content($)content(1<)char(\\/)content(th><td>)content($)content(2<)char(\\/)content(td><)char(\\/)content(tr>)delimiter(/)>(\))operator(;) ident(println) ident(email) ident(println) string<delimiter(")content(</table>)delimiter(")> (}) @@ -10673,11 +10673,11 @@ ident(urls)operator(.)ident(each)operator({) ident(url) operator(->) ident(head) operator(=) keyword(new) ident(HeadMethod)operator(()ident(url)(\)) ident(client)operator(.)ident(executeMethod)operator(()ident(head)(\)) ident(lastModified) operator(=) ident(head)operator(.)ident(getResponseHeader)operator(()string<delimiter(")content(last-modified)delimiter(")>(\))operator(?)operator(.)ident(value) - ident(urlInfo)operator([)ident(df)operator(.)ident(parse)operator(()ident(lastModified)(\)])operator(=)ident(url) + ident(urlInfo)operator([)ident(df)operator(.)ident(parse)operator(()ident(lastModified)(\))(])operator(=)ident(url) (}) ident(urlInfo)operator(.)ident(keySet)operator(()(\))operator(.)ident(sort)operator(()(\))operator(.)ident(each)operator({) ident(key) operator(->) - ident(println) string<delimiter(")inline<inline_delimiter($)ident(key)>content( )inline<inline_delimiter(${)ident(urlInfo[key])inline_delimiter(})>delimiter(")> + ident(println) string<delimiter(")inline<inline_delimiter($)ident(key)>content( )inline<inline_delimiter(${)ident(urlInfo)operator([)ident(key)(])inline_delimiter(})>delimiter(")> (}) comment(// =>) comment(// Sun Jan 07 21:48:15 EST 2007 http://www.apache.org/) @@ -10706,9 +10706,9 @@ ident(println) ident(htmlStr) comment(// SimpleTemplateEngine version:) keyword(def) ident(html) operator(=) string<delimiter(''')content( <!-- simple.template for internal template(\) function --> -<HTML><HEAD><TITLE>Report for )inline<inline_delimiter($)ident(username)>content(</TITLE></HEAD> -<BODY><H1>Report for )inline<inline_delimiter($)ident(username)>content(</H1> -)inline<inline_delimiter($)ident(username)>content( logged in )inline<inline_delimiter($)ident(count)>content( times, for a total of )inline<inline_delimiter($)ident(total)>content( minutes. +<HTML><HEAD><TITLE>Report for $username</TITLE></HEAD> +<BODY><H1>Report for $username</H1> +$username logged in $count times, for a total of $total minutes. )delimiter(''')> keyword(def) ident(engine) operator(=) keyword(new) ident(groovy)operator(.)ident(text)operator(.)ident(SimpleTemplateEngine)operator(()(\)) @@ -10722,7 +10722,7 @@ ident(user) operator(=) string<delimiter(')content(Peter)delimiter(')> keyword(def) ident(sql) operator(=) ident(Sql)operator(.)ident(newInstance)operator(()string<delimiter(')content(jdbc:mysql://localhost:3306/mydb)delimiter(')>operator(,) string<delimiter(')content(dbuser)delimiter(')>operator(,) string<delimiter(')content(dbpass)delimiter(')>operator(,) string<delimiter(')content(com.mysql.jdbc.Driver)delimiter(')>(\)) ident(sql)operator(.)ident(query)operator(()string<delimiter(")content(SELECT COUNT(duration\),SUM(duration\) FROM logins WHERE username=')inline<inline_delimiter($)ident(user)>content(')delimiter(")>(\)) operator({) ident(answer) operator(->) - ident(println) operator(()ident(template)operator(.)ident(make)operator(()key(username)operator(:)ident(user)operator(,) key(count)operator(:)ident(answer)operator([)integer(0)(])operator(,) key(total)operator(:)ident(answer)operator([)integer(1)(]\)\)) + ident(println) operator(()ident(template)operator(.)ident(make)operator(()key(username)operator(:)ident(user)operator(,) key(count)operator(:)ident(answer)operator([)integer(0)(])operator(,) key(total)operator(:)ident(answer)operator([)integer(1)(])(\))(\)) (}) comment(//----------------------------------------------------------------------------------) @@ -10740,8 +10740,8 @@ ident(println) ident(connection)operator(.)ident(responseCode) comment(// manually setting header field) ident(connection) operator(=) ident(url)operator(.)ident(openConnection)operator(()(\)) ident(df) operator(=) keyword(new) ident(java)operator(.)ident(text)operator(.)ident(SimpleDateFormat) operator(()string<delimiter(")content(EEE, dd MMM yyyy HH:mm:ss 'GMT')delimiter(")>(\)) -ident(df)operator(.)ident(setTimeZone)operator(()pre_type(TimeZone)operator(.)ident(getTimeZone)operator(()string<delimiter(')content(GMT)delimiter(')>(\)\)) -ident(connection)operator(.)ident(setRequestProperty)operator(()string<delimiter(")content(If-Modified-Since)delimiter(")>operator(,)ident(df)operator(.)ident(format)operator(()keyword(new) pre_type(Date)operator(()integer(2007)operator(,)integer(1)operator(,)integer(18)(\)\)\))operator(;) +ident(df)operator(.)ident(setTimeZone)operator(()pre_type(TimeZone)operator(.)ident(getTimeZone)operator(()string<delimiter(')content(GMT)delimiter(')>(\))(\)) +ident(connection)operator(.)ident(setRequestProperty)operator(()string<delimiter(")content(If-Modified-Since)delimiter(")>operator(,)ident(df)operator(.)ident(format)operator(()keyword(new) pre_type(Date)operator(()integer(2007)operator(,)integer(1)operator(,)integer(18)(\))(\))(\))operator(;) ident(connection)operator(.)ident(connect)operator(()(\)) ident(println) ident(connection)operator(.)ident(responseCode) comment(//----------------------------------------------------------------------------------) @@ -10778,8 +10778,8 @@ ident(regex) operator(=) regexp<delimiter(/)content(^()char(\\S)content(+\) ()ch ident(LOGFILE)operator(.)ident(trim)operator(()(\))operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(each)operator({) ident(line) operator(->) ident(m) operator(=) ident(line) operator(=~) ident(regex) - keyword(if) operator(()ident(m)operator(.)ident(matches)operator(()(\)\)) operator({) - keyword(for) operator(()ident(idx) keyword(in) integer(0)operator(..<)ident(fields)operator(.)ident(size)operator(()(\)\)) operator({) ident(println) string<delimiter(")inline<inline_delimiter(${)ident(fields[idx])inline_delimiter(})>content(=)inline<inline_delimiter(${)ident(m[0][idx+1])inline_delimiter(})>delimiter(")> (}) + keyword(if) operator(()ident(m)operator(.)ident(matches)operator(()(\))(\)) operator({) + keyword(for) operator(()ident(idx) keyword(in) integer(0)operator(..<)ident(fields)operator(.)ident(size)operator(()(\))(\)) operator({) ident(println) string<delimiter(")inline<inline_delimiter(${)ident(fields)operator([)ident(idx)(])inline_delimiter(})>content(=)inline<inline_delimiter(${)ident(m)operator([)integer(0)(])operator([)ident(idx)operator(+)integer(1)(])inline_delimiter(})>delimiter(")> (}) ident(println)operator(()(\)) (}) (}) @@ -10821,12 +10821,12 @@ type(class) class(Summary) operator({) ident(totals) operator(=) operator([)operator(:)(]) ident(LOGFILE)operator(.)ident(trim)operator(()(\))operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(each)operator({) ident(line) operator(->) ident(m) operator(=) ident(line) operator(=~) ident(regex) - keyword(if) operator(()ident(m)operator(.)ident(matches)operator(()(\)\)) operator({) + keyword(if) operator(()ident(m)operator(.)ident(matches)operator(()(\))(\)) operator({) ident(date) operator(=) ident(m)operator([)integer(0)(])operator([)ident(fields)operator(.)ident(indexOf)operator(()string<delimiter(')content(date)delimiter(')>(\))operator(+)integer(1)(]) - ident(s) operator(=) ident(totals)operator(.)ident(get)operator(()ident(date)operator(,) keyword(new) ident(Summary)operator(()(\)\)) + ident(s) operator(=) ident(totals)operator(.)ident(get)operator(()ident(date)operator(,) keyword(new) ident(Summary)operator(()(\))(\)) ident(s)operator(.)ident(accessCount)operator(++) keyword(if) operator(()ident(m)operator([)integer(0)(])operator([)ident(fields)operator(.)ident(indexOf)operator(()string<delimiter(')content(method)delimiter(')>(\))operator(+)integer(1)(]) operator(==) string<delimiter(')content(POST)delimiter(')>(\)) ident(s)operator(.)ident(postCount)operator(++) - ident(s)operator(.)ident(totalBytes) operator(+=) operator(()ident(m)operator([)integer(0)(])operator([)ident(fields)operator(.)ident(indexOf)operator(()string<delimiter(')content(bytes)delimiter(')>(\))operator(+)integer(1)(]\))operator(.)ident(toInteger)operator(()(\)) + ident(s)operator(.)ident(totalBytes) operator(+=) operator(()ident(m)operator([)integer(0)(])operator([)ident(fields)operator(.)ident(indexOf)operator(()string<delimiter(')content(bytes)delimiter(')>(\))operator(+)integer(1)(])(\))operator(.)ident(toInteger)operator(()(\)) keyword(def) ident(url) operator(=) ident(m)operator([)integer(0)(])operator([)ident(fields)operator(.)ident(indexOf)operator(()string<delimiter(')content(url)delimiter(')>(\))operator(+)integer(1)(]) keyword(if) operator(()ident(url) operator(==) string<delimiter(')content(/)delimiter(')>(\)) ident(s)operator(.)ident(homeCount)operator(++) ident(s)operator(.)ident(what)operator([)ident(url)(]) operator(=) ident(s)operator(.)ident(what)operator(.)ident(get)operator(()ident(url)operator(,) integer(0)(\)) operator(+) integer(1) @@ -10839,11 +10839,11 @@ ident(totals)operator(.)ident(each)operator({) ident(key)operator(,) ident(s) op ident(report)operator(()ident(key)operator(,) ident(s)operator(.)ident(hosts)operator(.)ident(size)operator(()(\))operator(,) ident(s)operator(.)ident(accessCount)operator(,) ident(s)operator(.)ident(what)operator(.)ident(size)operator(()(\))operator(,) ident(s)operator(.)ident(postCount)operator(,) ident(s)operator(.)ident(homeCount)operator(,) ident(s)operator(.)ident(totalBytes)(\)) (}) ident(v) operator(=) ident(totals)operator(.)ident(values)operator(()(\)) -ident(report)operator(()string<delimiter(')content(Grand Total)delimiter(')>operator(,) ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(hosts)operator(.)ident(size)operator(()(\)})operator(,) ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(accessCount)(})operator(,) ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(what)operator(.)ident(size)operator(()(\)})operator(,) +ident(report)operator(()string<delimiter(')content(Grand Total)delimiter(')>operator(,) ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(hosts)operator(.)ident(size)operator(()(\))(})operator(,) ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(accessCount)(})operator(,) ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(what)operator(.)ident(size)operator(()(\))(})operator(,) ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(postCount)(})operator(,) ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(homeCount)(})operator(,) ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(totalBytes)(}) (\)) keyword(def) method(report)operator(()ident(a)operator(,) ident(b)operator(,) ident(c)operator(,) ident(d)operator(,) ident(e)operator(,) ident(f)operator(,) ident(g)(\)) operator({) - ident(printf) operator(()string<delimiter(")content(%12s %6s %8s %8s %8s %8s %10s)char(\\n)delimiter(")>operator(,) operator([)ident(a)operator(,)ident(b)operator(,)ident(c)operator(,)ident(d)operator(,)ident(e)operator(,)ident(f)operator(,)ident(g)(]\)) + ident(printf) operator(()string<delimiter(")content(%12s %6s %8s %8s %8s %8s %10s)char(\\n)delimiter(")>operator(,) operator([)ident(a)operator(,)ident(b)operator(,)ident(c)operator(,)ident(d)operator(,)ident(e)operator(,)ident(f)operator(,)ident(g)(])(\)) (}) comment(// =>) comment(// Date Hosts Accesses Unidocs POST Home Bytes) @@ -10893,7 +10893,7 @@ comment(//---------------------------------------------------------------------- ident(WordReplaceFilter)operator(()ident(b)operator(,) ident(a)(\)) operator({) ident(before) operator(=) ident(b)operator(;) ident(after) operator(=) ident(a) (}) type(void) ident(characters)operator(()ident(XMLString) ident(text)operator(,) ident(Augmentations) ident(augs)(\)) operator({) type(char)type([]) ident(c) operator(=) ident(text)operator(.)ident(toString)operator(()(\))operator(.)ident(replaceAll)operator(()ident(before)operator(,) ident(after)(\)) - local_variable(super)operator(.)ident(characters)operator(()keyword(new) ident(XMLString)operator(()ident(c)operator(,) integer(0)operator(,) ident(c)operator(.)ident(size)operator(()(\)\))operator(,) ident(augs)(\)) + local_variable(super)operator(.)ident(characters)operator(()keyword(new) ident(XMLString)operator(()ident(c)operator(,) integer(0)operator(,) ident(c)operator(.)ident(size)operator(()(\))(\))operator(,) ident(augs)(\)) (}) type(void) ident(setProperty)operator(()pre_type(String) ident(s)operator(,) pre_type(Object) ident(o)(\))operator({)(}) (}) @@ -10903,7 +10903,7 @@ comment(//---------------------------------------------------------------------- (]) ident(parser) operator(=) keyword(new) ident(DOMParser)operator(()(\)) ident(parser)operator(.)ident(setProperty)operator(()string<delimiter(")content(http://cyberneko.org/html/properties/filters)delimiter(")>operator(,) ident(filters)(\)) - ident(parser)operator(.)ident(parse)operator(()keyword(new) ident(InputSource)operator(()keyword(new) pre_type(StringReader)operator(()ident(input)(\)\)\)) + ident(parser)operator(.)ident(parse)operator(()keyword(new) ident(InputSource)operator(()keyword(new) pre_type(StringReader)operator(()ident(input)(\))(\))(\)) comment(//----------------------------------------------------------------------------------) @@ -10936,7 +10936,7 @@ type(class) class(HrefReplaceFilter) directive(extends) ident(DefaultFilter) ope keyword(def) ident(idx) operator(=) ident(attributes)operator(.)ident(getIndex)operator(()string<delimiter(')content(href)delimiter(')>(\)) keyword(if) operator(()ident(idx) operator(!=) operator(-)integer(1)(\)) operator({) keyword(def) ident(newtext) operator(=) ident(attributes)operator(.)ident(getValue)operator(()ident(idx)(\))operator(.)ident(replaceAll)operator(()ident(before)operator(,) ident(after)(\)) - ident(attributes)operator(.)ident(setValue)operator(()ident(idx)operator(,) pre_type(URLEncoder)operator(.)ident(encode)operator(()ident(newtext)(\)\)) + ident(attributes)operator(.)ident(setValue)operator(()ident(idx)operator(,) pre_type(URLEncoder)operator(.)ident(encode)operator(()ident(newtext)(\))(\)) (}) local_variable(super)operator(.)ident(startElement)operator(()ident(element)operator(,) ident(attributes)operator(,) ident(augs)(\)) (}) @@ -10948,6 +10948,6 @@ ident(XMLDocumentFilter)type([]) ident(myfilters) operator(=) operator([) (]) ident(parser) operator(=) keyword(new) ident(DOMParser)operator(()(\)) ident(parser)operator(.)ident(setProperty)operator(()string<delimiter(")content(http://cyberneko.org/html/properties/filters)delimiter(")>operator(,) ident(myfilters)(\)) -ident(parser)operator(.)ident(parse)operator(()keyword(new) ident(InputSource)operator(()keyword(new) pre_type(StringReader)operator(()ident(input)(\)\)\)) +ident(parser)operator(.)ident(parse)operator(()keyword(new) ident(InputSource)operator(()keyword(new) pre_type(StringReader)operator(()ident(input)(\))(\))(\)) comment(//----------------------------------------------------------------------------------) diff --git a/test/scanners/groovy/strange.expected.raydebug b/test/scanners/groovy/strange.expected.raydebug new file mode 100644 index 0000000..d7882fe --- /dev/null +++ b/test/scanners/groovy/strange.expected.raydebug @@ -0,0 +1 @@ +ident(foo)operator(?)ident(bar)operator(:)string<delimiter(')content(unknown)delimiter(')> comment(// bar is not a key!)
\ No newline at end of file diff --git a/test/scanners/groovy/strange.in.groovy b/test/scanners/groovy/strange.in.groovy new file mode 100644 index 0000000..a844c9a --- /dev/null +++ b/test/scanners/groovy/strange.in.groovy @@ -0,0 +1 @@ +foo?bar:'unknown' // bar is not a key!
\ No newline at end of file diff --git a/test/scanners/groovy/strings.expected.raydebug b/test/scanners/groovy/strings.expected.raydebug new file mode 100644 index 0000000..df244cc --- /dev/null +++ b/test/scanners/groovy/strings.expected.raydebug @@ -0,0 +1,34 @@ +comment(/* This is valid Groovy code. */) + +ident(var) operator(=) integer(1) +keyword(def) method(another)operator(()ident(a)operator(,)ident(b)operator(,)ident(c)operator(,)ident(d)(\)) operator({) (}) + +comment(// "\\/" Error?) +string<delimiter(")content(text )inline<inline_delimiter($)ident(var)>content( )inline<inline_delimiter($)ident(var)>content(.meth text )inline<inline_delimiter(${)keyword(if) operator(()integer(1)(\)) operator({)ident(another)operator(()string<delimiter(")content(st)delimiter(")>operator(,) string<delimiter(')content(ri)delimiter(')>operator(,) regexp<delimiter(/)content(ng)delimiter(/)>operator(,) string<delimiter(")content(})delimiter(")>(\))(})inline_delimiter(})>content( )char(\\t)content( text )char(\\n)content( text )char(\\uafaf)content( text )char(\\$)content(novar text )char(\\')char(\\")char(\\\\)content( )delimiter(")> comment(//';) + +string<delimiter(')content(text $novar text ${not_interpreted} \\t text \\n text \\uafaf text \\$novar text )char(\\')content(\\")char(\\\\)content( )delimiter(')>operator(;) + +regexp<delimiter(/)content(text )inline<inline_delimiter($)ident(var)>content( )inline<inline_delimiter($)ident(var)>content(.meth text )inline<inline_delimiter(${)keyword(if) operator(()integer(1)(\)) operator({)ident(another)operator(()string<delimiter(")content(st)delimiter(")>operator(,) string<delimiter(')content(ri)delimiter(')>operator(,) regexp<delimiter(/)content(ng)delimiter(/)>operator(,) string<delimiter(")content(})delimiter(")>(\))(})inline_delimiter(})>content( )char(\\t)content( text )char(\\n)content( text )char(\\uafaf)content( text )content(\\$)content(var )char(\\\\)inline<inline_delimiter($)ident(var)>content( text )char(\\')char(\\")char(\\\\)char(\\/)content( )delimiter(/)>operator(;) + +ident(youcannotescape) operator(=) integer(0)operator(;) +ident(println)operator(()regexp<delimiter(/)content(\\$)content(youcannotescape)inline<inline_delimiter($)ident(var)>delimiter(/)>(\)) + +comment(// "\\/" Error?) +operator(~)string<delimiter(")content(text )inline<inline_delimiter($)ident(var)>content( )inline<inline_delimiter($)ident(var)>content(.meth text )inline<inline_delimiter(${)keyword(if) operator(()integer(1)(\)) operator({)ident(another)operator(()string<delimiter(")content(st)delimiter(")>operator(,) string<delimiter(')content(ri)delimiter(')>operator(,) regexp<delimiter(/)content(ng)delimiter(/)>operator(,) string<delimiter(")content(})delimiter(")>(\))(})inline_delimiter(})>content( )char(\\t)content( text )char(\\n)content( text )char(\\uafaf)content( text )char(\\$)content(novar text )char(\\')char(\\")char(\\\\)content( )delimiter(")> comment(//';) + +operator(~)string<delimiter(')content(text $novar text ${0} \\t text \\n text \\uafaf text \\$novar text )char(\\')content(\\")char(\\\\)content( )delimiter(')>operator(;) + +operator(~)regexp<delimiter(/)content(text )inline<inline_delimiter($)ident(var)>content( )inline<inline_delimiter($)ident(var)>content(.meth text )inline<inline_delimiter(${)keyword(if) operator(()integer(1)(\)) operator({)ident(another)operator(()string<delimiter(")content(st)delimiter(")>operator(,) string<delimiter(')content(ri)delimiter(')>operator(,) regexp<delimiter(/)content(ng)delimiter(/)>operator(,) string<delimiter(")content(})delimiter(")>(\))(})inline_delimiter(})>content( )char(\\t)content( (text\) )char(\\n)content( text )char(\\uafaf)content( text )content(\\$)content(var )char(\\\\)inline<inline_delimiter($)ident(var)>content( text )char(\\')char(\\")char(\\\\)char(\\/)content( )delimiter(/)>operator(;) + +ident(println)operator(()operator(~)regexp<delimiter(/)content(\\$)content(youcannotescape)inline<inline_delimiter($)ident(var)>delimiter(/)>(\)) + +ident(println) string<delimiter(")content(Age )inline<inline_delimiter($)ident(age)>content(: )inline<inline_delimiter(${)ident(list)operator(.)ident(collect)operator({)local_variable(it)operator(.)string<delimiter(')content(name)delimiter(')>(})operator(.)ident(join)operator(()string<delimiter(')content(, )delimiter(')>(\))inline_delimiter(})>delimiter(")> + +string<delimiter(""")content( +text )inline<inline_delimiter($)ident(var)>content( )inline<inline_delimiter($)ident(var)>content(.meth text )inline<inline_delimiter(${)keyword(if) operator(()integer(1)(\)) operator({)ident(another)operator(()string<delimiter(")content(st)delimiter(")>operator(,) string<delimiter(')content(ri)delimiter(')>operator(,) regexp<delimiter(/)content(ng)delimiter(/)>operator(,) string<delimiter(")content(})delimiter(")>(\))(})inline_delimiter(})>content( )char(\\t)content( text )char(\\n)content( text )char(\\uafaf)content( text )char(\\$)content(novar text )char(\\')char(\\")char(\\\\)content( )char(\\")content("" +)delimiter(""")> + +string<delimiter(''')content( +text $novar text ${not_interpreted} )content(\\t)content( text )content(\\n)content( text )content(\\uafaf)content( text )content(\\$)content(novar text )char(\\')content(\\")char(\\\\)content( )char(\\')content('' +)delimiter(''')> + diff --git a/test/scanners/groovy/strings.in.groovy b/test/scanners/groovy/strings.in.groovy new file mode 100644 index 0000000..1f6310d --- /dev/null +++ b/test/scanners/groovy/strings.in.groovy @@ -0,0 +1,34 @@ +/* This is valid Groovy code. */ + +var = 1 +def another(a,b,c,d) { } + +// "\/" Error? +"text $var $var.meth text ${if (1) {another("st", 'ri', /ng/, "}")}} \t text \n text \uafaf text \$novar text \'\"\\ " //'; + +'text $novar text ${not_interpreted} \t text \n text \uafaf text \$novar text \'\"\\ '; + +/text $var $var.meth text ${if (1) {another("st", 'ri', /ng/, "}")}} \t text \n text \uafaf text \$var \\$var text \'\"\\\/ /; + +youcannotescape = 0; +println(/\$youcannotescape$var/) + +// "\/" Error? +~"text $var $var.meth text ${if (1) {another("st", 'ri', /ng/, "}")}} \t text \n text \uafaf text \$novar text \'\"\\ " //'; + +~'text $novar text ${0} \t text \n text \uafaf text \$novar text \'\"\\ '; + +~/text $var $var.meth text ${if (1) {another("st", 'ri', /ng/, "}")}} \t (text) \n text \uafaf text \$var \\$var text \'\"\\\/ /; + +println(~/\$youcannotescape$var/) + +println "Age $age: ${list.collect{it.'name'}.join(', ')}" + +""" +text $var $var.meth text ${if (1) {another("st", 'ri', /ng/, "}")}} \t text \n text \uafaf text \$novar text \'\"\\ \""" +""" + +''' +text $novar text ${not_interpreted} \t text \n text \uafaf text \$novar text \'\"\\ \''' +''' + |