From c0e1923167357a6c210bcf0857f70a8a8fa4495f Mon Sep 17 00:00:00 2001 From: murphy Date: Thu, 22 Jan 2009 13:56:35 +0000 Subject: Updated Groovy Scanner (feature #60). * Code inside ${...} is highlighted; works nested. * various minor bugfixes * Some string related problems remain. Groovy is strange! --- lib/coderay/scanners/groovy.rb | 90 +- test/scanners/groovy/pleac.expected.raydebug | 1036 ++++++++++++------------ test/scanners/groovy/strange.expected.raydebug | 1 + test/scanners/groovy/strange.in.groovy | 1 + test/scanners/groovy/strings.expected.raydebug | 34 + test/scanners/groovy/strings.in.groovy | 34 + 6 files changed, 645 insertions(+), 551 deletions(-) create mode 100644 test/scanners/groovy/strange.expected.raydebug create mode 100644 test/scanners/groovy/strange.in.groovy create mode 100644 test/scanners/groovy/strings.expected.raydebug create mode 100644 test/scanners/groovy/strings.in.groovy 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(/ \.\.] | \+\+ | - && | \|\| | \*\*=? | ==?~ | [-+*%^~&|<>=!]=? | <<>>?=? /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(/ \.\.] | \+\+ | + && | \|\| | \*\*=? | ==?~ | <=?>? | [-+*%^~&|>=!]=? | <<>>?=? /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(\)) 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([)stringoperator(,) stringoperator(,) stringoperator(,) string(]) comment(// another scanner example similar to the javadoc example) @@ -122,7 +122,7 @@ keyword(assert) ident(unpack)operator(()stringoperator(,) ident(string)(\)) operator(==) operator([)stringoperator(,) string(]) -keyword(assert) ident(cut2fmt)operator(()operator([)integer(8)operator(,) integer(14)operator(,) integer(20)operator(,) integer(26)operator(,) integer(30)(]\)) operator(==) string +keyword(assert) ident(cut2fmt)operator(()operator([)integer(8)operator(,) integer(14)operator(,) integer(20)operator(,) integer(26)operator(,) integer(30)(])(\)) operator(==) string 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) stringoperator(:) 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 comment(// convert 'HAL' to 'IBM' (in increasing order of Grooviness\)) -keyword(assert) stringoperator(.)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 -keyword(assert) operator(()string keyword(as) pre_type(String)type([])(\))operator(.)ident(collect)operator({)local_variable(it)operator(.)ident(next)operator(()(\)})operator(.)ident(join)operator(()(\)) operator(==) string -keyword(assert) stringoperator(.)ident(replaceAll)operator(()stringoperator(,) operator({)local_variable(it)operator(.)ident(next)operator(()(\)}\)) operator(==) string +keyword(assert) stringoperator(.)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 +keyword(assert) operator(()string keyword(as) pre_type(String)type([])(\))operator(.)ident(collect)operator({)local_variable(it)operator(.)ident(next)operator(()(\))(})operator(.)ident(join)operator(()(\)) operator(==) string +keyword(assert) stringoperator(.)ident(replaceAll)operator(()stringoperator(,) operator({)local_variable(it)operator(.)ident(next)operator(()(\))(})(\)) operator(==) string comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_1.5) @@ -266,7 +266,7 @@ comment(// CheckSum.groovy: Compute 16-bit checksum of input file) comment(// Usage: groovy CheckSum ) 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 ) 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 -ident(s2) operator(=) string +ident(s1) operator(=) string +ident(s2) operator(=) string keyword(def) method(expand)operator(()ident(s)(\)) operator({) ident(s)operator(.)ident(split)operator(()string(\))operator(.)ident(toList)operator(()(\))operator(.)ident(collect)operator({) ident(line) operator(=) local_variable(it) - keyword(while) operator(()ident(line)operator(.)ident(contains)operator(()string(\)\)) operator({) + keyword(while) operator(()ident(line)operator(.)ident(contains)operator(()string(\))(\)) operator({) ident(line) operator(=) ident(line)operator(.)ident(replaceAll)operator(()regexp(\))operator({) ident(all)operator(,)ident(pre)operator(,)ident(tab)operator(,)ident(suf) operator(->) ident(pre) operator(+) string 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 operator(+) ident(line)operator([)ident(i)operator(..)operator(-)integer(1)(]) (}) (}) @@ -335,17 +335,17 @@ keyword(assert) stringcontent( high and )inlinecontent( wide)delimiter(")> operator(==) string -keyword(assert) stringoperator(.)ident(replaceAll)operator(()regexpoperator(,) operator({)integer(2)operator(*)local_variable(it)operator(.)ident(toInteger)operator(()(\)}\)) operator(==) string +keyword(assert) stringoperator(.)ident(replaceAll)operator(()regexpoperator(,) operator({)integer(2)operator(*)local_variable(it)operator(.)ident(toInteger)operator(()(\))(})(\)) operator(==) string comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_1.9) comment(//----------------------------------------------------------------------------------) keyword(assert) stringoperator(.)ident(toUpperCase)operator(()(\)) operator(==) string keyword(assert) stringoperator(.)ident(toLowerCase)operator(()(\)) operator(==) string -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 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 operator(:) ident(s)operator([)integer(1)operator(..)operator(-)integer(1)(])operator(?)operator(.)ident(toLowerCase)operator(()(\))(\))(}) keyword(assert) ident(capitalize)operator(()string(\)) operator(==) string -ident(s) operator(=) stringoperator(.)ident(replaceAll)operator(()regexp(\))operator({)ident(capitalize)operator(()local_variable(it)(\)}) +ident(s) operator(=) stringoperator(.)ident(replaceAll)operator(()regexp(\))operator({)ident(capitalize)operator(()local_variable(it)(\))(}) keyword(assert) ident(s) operator(==) string ident(s1) operator(=) stringoperator(;) ident(s2) operator(=) string @@ -360,7 +360,7 @@ comment(//---------------------------------------------------------------------- comment(// @@PLEAC@@_1.10) comment(//----------------------------------------------------------------------------------) ident(n) operator(=) integer(10) -keyword(assert) stringcontent( guanacos.)delimiter(")> operator(==) string +keyword(assert) stringcontent( guanacos.)delimiter(")> operator(==) string keyword(assert) string operator(+) operator(()ident(n)operator(+)integer(1)(\)) operator(+) string operator(==) string 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(=) stringcontent( From: Your Bank -Cc: )inlinecontent( -Date: )inlinecontent( +Cc: )inlinecontent( +Date: )inlinecontent( Dear )inlinecontent(, -Today, you bounced check number )inlinecontent( to us. +Today, you bounced check number )inlinecontent( 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(()stringoperator(,)string(\)) +ident(sanitized) operator(=) ident(msg)operator(.)ident(replaceAll)operator(()stringoperator(,)string(\)) ident(sanitized) operator(=) ident(sanitized)operator(.)ident(replaceAll)operator(()regexpoperator(,)string(\)) 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 comment(// backslash special chars) -keyword(assert) ident(string)operator(.)ident(replaceAll)operator(()regexp(\))operator({)regexpoperator(+)local_variable(it)operator([)integer(0)(]}) operator(==) regexp comment(//') +keyword(assert) ident(string)operator(.)ident(replaceAll)operator(()regexp(\))operator({)regexpoperator(+)local_variable(it)operator([)integer(0)(])(}) operator(==) regexp comment(//') comment(// double special chars) -keyword(assert) ident(string)operator(.)ident(replaceAll)operator(()regexp(\))operator({)local_variable(it)operator([)integer(0)(])operator(+)local_variable(it)operator([)integer(0)(]}) operator(==) regexp comment(//') +keyword(assert) ident(string)operator(.)ident(replaceAll)operator(()regexp(\))operator({)local_variable(it)operator([)integer(0)(])operator(+)local_variable(it)operator([)integer(0)(])(}) operator(==) regexp comment(//') comment(//backslash quote all non-capital letters) -keyword(assert) stringoperator(.)ident(replaceAll)operator(()regexp(\))operator({)regexpoperator(+)local_variable(it)operator([)integer(0)(]}) operator(==) regexp +keyword(assert) stringoperator(.)ident(replaceAll)operator(()regexp(\))operator({)regexpoperator(+)local_variable(it)operator([)integer(0)(])(}) operator(==) regexp comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_1.14) @@ -477,7 +477,7 @@ comment(//---------------------------------------------------------------------- keyword(assert) stringoperator(.)ident(trim)operator(()(\)) operator(==) string 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(")> operator(+) local_variable(it)operator(.)ident(trim)operator(()(\)) operator(+) string(\))operator(;) (}) comment(//----------------------------------------------------------------------------------) @@ -489,8 +489,8 @@ ident(line) operator(=) regexpoperator(,) stringoperator(,) regexpoperator(,) regexpoperator(,) comment(//') regexpoperator(,) regexpoperator(,) regexp(]) -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 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(\))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 operator(+) ident(out)operator(.)ident(join)operator(()string(\)) operator(+) string (}) keyword(assert) ident(psgrep)operator(()string(\)) operator(==) ident(select1) -keyword(assert) ident(psgrep)operator(()string(\)) operator(==) ident(select2) +keyword(assert) ident(psgrep)operator(()string(\)) operator(==) ident(select2) comment(// Part 2: obtaining text stream from process) comment(// unixScript:) ident(input) operator(=) stringoperator(.)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([)stringoperator(..)stringoperator(,)stringoperator(..)stringoperator(,)stringoperator(..)stringoperator(,)operator(()string 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([)stringoperator(..)stringoperator(,)stringoperator(..)stringoperator(,)stringoperator(..)stringoperator(,)operator(()string 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) stringoperator(,) ident(salary) +ident(printf) stringoperator(,) 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 -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(~)stringoperator(:) @@ -844,7 +844,7 @@ ident(println) string operator comment(// permissionScript:) ident(print) string -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 operator(+) ident(permission) @@ -863,7 +863,7 @@ keyword(assert) string 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([)stringoperator(,) string(]) 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 -keyword(assert) ident(pretty)operator(()ident(factorize)operator(()integer(39887)(\)\)) operator(==) string -keyword(assert) ident(pretty)operator(()ident(factorize)operator(()integer(239322000000000000000000)(\)\)) operator(==) string +keyword(assert) ident(pretty)operator(()ident(factorize)operator(()integer(2178)(\))(\)) operator(==) string +keyword(assert) ident(pretty)operator(()ident(factorize)operator(()integer(39887)(\))(\)) operator(==) string +keyword(assert) ident(pretty)operator(()ident(factorize)operator(()integer(239322000000000000000000)(\))(\)) operator(==) string comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_3.0) @@ -970,7 +970,7 @@ ident(println)operator(()string operator(+) ident(cal)operator(.)ident(get)operator(()pre_type(Calendar)operator(.)ident(SECOND)(\)) operator(+) string operator(+) ident(cal)operator(.)ident(get)operator(()pre_type(Calendar)operator(.)ident(YEAR)(\)) operator(+) string operator(+) operator(()ident(cal)operator(.)ident(get)operator(()pre_type(Calendar)operator(.)ident(MONTH)(\)) operator(+) integer(1)(\)) operator(+) string - 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 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) stringcontent( weeks, )inlinecontent( days, )inlinecontent(:)inlinecontent(:)inlinecontent(\))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(\)\)) +ident(cal) operator(=) pre_type(Calendar)operator(.)ident(getInstance)operator(()pre_type(TimeZone)operator(.)ident(getTimeZone)operator(()string(\))(\)) 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(\)) ident(df2) operator(=) keyword(new) pre_type(SimpleDateFormat)operator(()string(\)) -ident(print)operator(()ident(df1)operator(.)ident(format)operator(()ident(cal)operator(.)ident(time)(\)) operator(+) string 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 operator(+) ident(df2)operator(.)ident(format)operator(()ident(cal)operator(.)ident(time)(\))(\)) ident(println) stringcontent( and week number )inlinecontent( of )inlinedelimiter(")> 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 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) stringcontent( 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) stringcontent( random numbers takes )inlinecontent( milliseconds)delimiter(")> +ident(println) stringcontent( random numbers takes )inlinecontent( 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(\)) - 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(/)>(\))operator([)integer(0)(])operator([)integer(1)(]) - ident(out)operator(()stringoperator(.)ident(split)operator(()string(\)\)) + ident(out)operator(()stringoperator(.)ident(split)operator(()string(\))(\)) (}) 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 ident(out) operator(<)operator(<) ident(line)operator([)integer(3)(]) operator(+) string (}) @@ -1224,13 +1224,13 @@ type(class) class(MailHopDelta) operator({) (}) keyword(def) method(process)operator(()(\)) operator({) - ident(out)operator(()operator([)string)delimiter(')>operator(,) ident(firstSender)operator(,) ident(prettyDate)operator(()ident(firstDate)(\))operator(,) string(]\)) + ident(out)operator(()operator([)string)delimiter(')>operator(,) ident(firstSender)operator(,) ident(prettyDate)operator(()ident(firstDate)(\))operator(,) string(])(\)) keyword(def) ident(prevDate) operator(=) ident(firstDate) ident(headers)operator(.)ident(grep)operator(()operator(~)regexp(\))operator(.)ident(reverseEach)operator({) ident(hop) operator(->) keyword(def) ident(from) operator(=) operator(()ident(hop) operator(=~) regexp(\))operator([)integer(0)(])operator([)integer(1)(]) keyword(def) ident(by) operator(=) operator(()ident(hop) operator(=~) regexp(\))operator([)integer(0)(])operator([)integer(1)(]) - keyword(def) ident(hopDate) operator(=) ident(parseDate)operator(()ident(hop)operator([)ident(hop)operator(.)ident(lastIndexOf)operator(()string(\))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(\))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 (}) operator(?) string operator(:) string - 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(\)) (}) @@ -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 operator(+) ident(lists)operator(.)ident(collect)operator({)ident(commify)operator(()local_variable(it)(\)})operator(.)ident(join)operator(()string(\)) operator(+) string +keyword(assert) ident(expected) operator(==) string operator(+) ident(lists)operator(.)ident(collect)operator({)ident(commify)operator(()local_variable(it)(\))(})operator(.)ident(join)operator(()string(\)) operator(+) string 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([)stringoperator(,) stringoperator(,) stringoperator(,) string(]) -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([)stringoperator(,) stringoperator(,) stringoperator(,) string(]) 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(=) stringoperator(.)ident(split)operator(()string(\))operator(.)ident(toList)operator(()(\)) ident(shift2)operator(()(\)) keyword(assert) ident(one) operator(==) string @@ -1469,7 +1469,7 @@ type(class) class(Employee) operator({) (}) ident(staff) operator(=) operator([)keyword(new) ident(Employee)operator(()key(name)operator(:)stringoperator(,)key(position)operator(:)stringoperator(,)key(salary)operator(:)integer(26000)(\))operator(,) keyword(new) ident(Employee)operator(()key(name)operator(:)stringoperator(,)key(position)operator(:)stringoperator(,)key(salary)operator(:)integer(24000)(\))operator(,) - keyword(new) ident(Employee)operator(()key(name)operator(:)stringoperator(,)key(position)operator(:)stringoperator(,)key(salary)operator(:)integer(22000)(\)]) + keyword(new) ident(Employee)operator(()key(name)operator(:)stringoperator(,)key(position)operator(:)stringoperator(,)key(salary)operator(:)integer(22000)(\))(]) ident(highestEngineer) operator(=) ident(staff)operator(.)ident(find) operator({) ident(emp) operator(->) ident(emp)operator(.)ident(position) operator(==) string (}) 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([)stringoperator(,) stringoperator(,) string(])operator(.)ident(sort)operator(()(\)) operator(==) operator([)stringoperator(,) stringoperator(,) string(]) comment(// closure style sorting allows arbitrary expressions for the comparison) -keyword(assert) operator([)stringoperator(,) stringoperator(,) string(])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([)stringoperator(,) stringoperator(,) string(]) +keyword(assert) operator([)stringoperator(,) stringoperator(,) string(])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([)stringoperator(,) stringoperator(,) string(]) comment(// obtain the following on unix systems using: 'ps ux'.execute(\).text) ident(processInput) operator(=) string -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(\))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 +keyword(assert) ident(col)operator(()ident(commandIdx)operator(,) ident(linesByPid)operator([)integer(0)(])(\)) operator(==) string 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 +keyword(assert) ident(col)operator(()ident(commandIdx)operator(,) ident(linesByPpid)operator([)integer(0)(])(\)) operator(==) string 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([)stringoperator(,) stringoperator(,) string(]) +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([)stringoperator(,) stringoperator(,) string(]) 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([)stringoperator(,) stringoperator(,) string(]) 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 operator(+) -string operator(+) -string +string operator(+) +string operator(+) +string 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([)stringoperator(,) stringoperator(,) string(]) 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(\)) operator(+) string (}) keyword(assert) string operator(+) ident(sb)operator(.)ident(toString)operator(()(\)) operator(==) ident(expected) @@ -1716,9 +1716,9 @@ keyword(assert) operator([)stringoperat ident(age) operator(=) operator([)key(Toddler)operator(:)integer(3)operator(,) key(Unborn)operator(:)integer(0)operator(,) key(Phantasm)operator(:)keyword(null)(]) operator([)stringoperator(,) stringoperator(,) stringoperator(,) string(])operator(.)ident(each)operator({) ident(key) operator(->) ident(print) stringcontent(: )delimiter(")> - keyword(if) operator(()ident(age)operator(.)ident(containsKey)operator(()ident(key)(\)\)) ident(print) string + keyword(if) operator(()ident(age)operator(.)ident(containsKey)operator(()ident(key)(\))(\)) ident(print) string keyword(if) operator(()ident(age)operator(.)ident(containsKey)operator(()ident(key)(\)) operator(&&) ident(age)operator([)ident(key)(])operator(!=)keyword(null)(\)) ident(print) string - keyword(if) operator(()ident(age)operator(.)ident(containsKey)operator(()ident(key)(\)) operator(&&) ident(age)operator([)ident(key)(]\)) ident(print) string + keyword(if) operator(()ident(age)operator(.)ident(containsKey)operator(()ident(key)(\)) operator(&&) ident(age)operator([)ident(key)(])(\)) ident(print) string ident(println) string (}) comment(// =>) @@ -1778,16 +1778,16 @@ From: someone@somewhere.com ident(from) operator(=) operator([)operator(:)(]) ident(fakedInput)operator(.)ident(split)operator(()string(\))operator(.)ident(each)operator({) ident(matcher) operator(=) operator(()local_variable(it) operator(=~) regexp]*\))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) stringcontent(: )inlinedelimiter(")> +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) stringcontent(: )inlinedelimiter(")> (}) comment(// =>) comment(// someone@somewhere.com: 2) @@ -1830,7 +1830,7 @@ comment(// @@PLEAC@@_5.7) comment(//----------------------------------------------------------------------------------) ident(foodsOfColor) operator(=) operator([) key(Yellow)operator(:)operator([)stringoperator(,) string(])operator(,) key(Green)operator(:)operator([)string(]) (]) ident(foodsOfColor)operator([)string(]) operator(+=) string -keyword(assert) ident(foodsOfColor) operator(==) operator([)stringoperator(:)operator([)stringoperator(,) string(])operator(,) stringoperator(:)operator([)stringoperator(,) string(]]) +keyword(assert) ident(foodsOfColor) operator(==) operator([)stringoperator(:)operator([)stringoperator(,) string(])operator(,) stringoperator(:)operator([)stringoperator(,) string(])(]) 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(:)stringoperator(,) key(Banana)operator(:)stringoperator(,) key(Lemon)operator(:)stringoperator(,) key(Carrot)operator(:)string(]) ident(given) operator(=) ident(args)operator([)integer(0)(]) -keyword(if) operator(()ident(color)operator(.)ident(containsKey)operator(()ident(given)(\)\)) - ident(println) stringcontent( is a food with color )inlinecontent(.)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) stringcontent( is a food with color )inlinecontent(.)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 operator(:) string - ident(println) stringcontent( )inlinecontent( with color )inlinecontent(.)delimiter(")> + ident(println) string(\))inline_delimiter(})>content( )inlinecontent( with color )inlinecontent(.)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([)stringoperator(,) stringoperator(,) stringoperator(,) string(]) 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([)stringoperator(,) stringoperator(,) stringoperator(,) string(]) -keyword(assert) ident(foodColor)operator(.)ident(values)operator(()(\))operator(.)ident(sort)operator({)local_variable(it)operator(.)ident(size)operator(()(\)}) operator(==) operator([)stringoperator(,) stringoperator(,) stringoperator(,) string(]) +keyword(assert) ident(foodColor)operator(.)ident(values)operator(()(\))operator(.)ident(sort)operator({)local_variable(it)operator(.)ident(size)operator(()(\))(}) operator(==) operator([)stringoperator(,) stringoperator(,) stringoperator(,) string(]) comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_5.10) @@ -1894,7 +1894,7 @@ ident(foodColor)operator([)string(])oper ident(citrusColor) operator(=) operator([)key(Lemon)operator(:)stringoperator(,) key(Orange)operator(:)stringoperator(,) key(Lime)operator(:)string(]) 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(]) 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([)stringoperator(:)integer(3)operator(,) stringoperator(:)integer(1)operator(,) stringoperator(:)integer(1)operator(,) stringoperator(:)integer(2)operator(,) stringoperator(:)integer(2)operator(,) stringoperator(:)integer(1)operator(,) stringoperator(:)integer(5)operator(,) stringoperator(:)integer(1)operator(,) stringoperator(:)integer(1)operator(,) stringoperator(:)integer(2)operator(,) stringoperator(:)integer(2)operator(,) stringoperator(:)integer(1)operator(,) stringoperator(:)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 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) stringcontent( begat )inlinecontent(.)char(\\n)delimiter(")> + ident(println) stringcontent( begat )inline(\))operator(:)stringinline_delimiter(})>content(.)char(\\n)delimiter(")> (}) ident(downline)operator(()string(\)) 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(')>(\)) - 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(()regexpoperator(,) string(\)) + ident(name)operator(.)ident(replaceAll)operator(()regexpoperator(,) string(\)) (}) comment(// returns substring before last "/", otherwise null) keyword(def) method(getParent)operator(()(\)) operator({) - keyword(def) ident(p) operator(=) ident(name)operator(.)ident(replaceAll)operator(()regexpoperator(,)string(\)) + keyword(def) ident(p) operator(=) ident(name)operator(.)ident(replaceAll)operator(()regexpoperator(,)string(\)) 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 - ident(input)operator(.)ident(split)operator(()string(\))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(\))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 comment(// Greedy version) ident(parts) operator(=) ident(string) operator(=~) regexp -operator(()integer(1)operator(..)ident(parts)operator(.)ident(groupCount)operator(()(\)\))operator(.)ident(each)operator({) ident(print) stringcontent(\) )delimiter(")> (})operator(;) ident(print) string +operator(()integer(1)operator(..)ident(parts)operator(.)ident(groupCount)operator(()(\))(\))operator(.)ident(each)operator({) ident(print) stringcontent(\) )delimiter(")> (})operator(;) ident(print) string comment(// (And little \) (lambs\) ( eat ivy\)) comment(// Reluctant version) ident(parts) operator(=) ident(string) operator(=~) regexp -operator(()integer(1)operator(..)ident(parts)operator(.)ident(groupCount)operator(()(\)\))operator(.)ident(each)operator({) ident(print) stringcontent(\) )delimiter(")> (})operator(;) ident(print) string +operator(()integer(1)operator(..)ident(parts)operator(.)ident(groupCount)operator(()(\))(\))operator(.)ident(each)operator({) ident(print) stringcontent(\) )delimiter(")> (})operator(;) ident(print) string 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 ident(dst) operator(=) ident(src) -operator(()stringoperator(..)string(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexpoperator(+)local_variable(it)operator(+)regexpoperator(+)local_variable(it)operator(,) regexpoperator(+)local_variable(it)operator(.)ident(toUpperCase)operator(()(\)\)) (}) +operator(()stringoperator(..)string(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexpoperator(+)local_variable(it)operator(+)regexpoperator(+)local_variable(it)operator(,) regexpoperator(+)local_variable(it)operator(.)ident(toUpperCase)operator(()(\))(\)) (}) keyword(assert) ident(dst) operator(==) string 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 ident(greekAlpha) operator(=) string ident(special) operator(=) string operator(+) ident(greekAlpha) comment(// flag as either Y (alphabetic\) or N (not\)) -ident(words)operator(.)ident(split)operator(()string(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\)})operator(.)ident(each)operator({) ident(results) operator(+=) local_variable(it) operator(==~) regexpoperator(+)ident(special)operator(+)regexp operator(?)stringoperator(:)string (}) +ident(words)operator(.)ident(split)operator(()string(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\))(})operator(.)ident(each)operator({) ident(results) operator(+=) local_variable(it) operator(==~) regexpoperator(+)ident(special)operator(+)regexp operator(?)stringoperator(:)string (}) keyword(assert) ident(results) operator(==) string ident(results) operator(=) string -ident(words)operator(.)ident(split)operator(()string(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\)})operator(.)ident(each)operator({) ident(results) operator(+=) local_variable(it) operator(==~) regexp operator(?)stringoperator(:)string (}) +ident(words)operator(.)ident(split)operator(()string(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\))(})operator(.)ident(each)operator({) ident(results) operator(+=) local_variable(it) operator(==~) regexp operator(?)stringoperator(:)string (}) keyword(assert) ident(results) operator(==) string comment(//----------------------------------------------------------------------------------) @@ -2273,22 +2273,22 @@ comment(// @@PLEAC@@_6.4) comment(//----------------------------------------------------------------------------------) ident(str) operator(=) string ident(re) operator(=) string 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(,) stringcontent( [)inlinecontent(])delimiter(")>(\)) + ident(out) operator(=) ident(out)operator(.)ident(replaceAll)operator(()ident(adr)operator(,) stringcontent( [)inlinecontent(])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 ident(re) operator(=) string 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 comment(//----------------------------------------------------------------------------------) @@ -2312,41 +2312,41 @@ comment(//---------------------------------------------------------------------- ident(fish) operator(=) string ident(expected) operator(=) string ident(thirdFish) operator(=) regexp -keyword(assert) ident(expected) operator(==) operator(()ident(fish)operator(.)ident(replaceAll)operator(()ident(thirdFish)operator(,) string(\)\)) +keyword(assert) ident(expected) operator(==) operator(()ident(fish)operator(.)ident(replaceAll)operator(()ident(thirdFish)operator(,) string(\))(\)) ident(anyFish) operator(=) regexp 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(=) stringcontent( one.)delimiter(")> +ident(out) operator(=) stringcontent( 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) stringcontent(.)delimiter(")> +ident(println) string(\))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 ident(fishInPond) operator(=) operator(()regexp(\)) operator(*) integer(4) operator(+) regexp 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 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 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 ident(pond) operator(=) string ident(finder) operator(=) operator(()ident(pond) operator(=~) ident(anyFish)(\)) -keyword(assert) ident(expected) operator(==) stringdelimiter(")> +keyword(assert) ident(expected) operator(==) stringdelimiter(")> comment(// => Last fish is blue) comment(// greedy match version of above) ident(finder) operator(=) operator(()ident(pond) operator(=~) regexp operator(+) ident(anyFish)(\)) -keyword(assert) ident(expected) operator(==) stringdelimiter(")> +keyword(assert) ident(expected) operator(==) stringdelimiter(")> comment(// last fish match version of above) ident(finder) operator(=) operator(()ident(pond) operator(=~) regexp(\)) -keyword(assert) ident(expected) operator(==) stringdelimiter(")> +keyword(assert) ident(expected) operator(==) stringdelimiter(")> 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(=) stringoperator(.)ident(trim)operator(()(\)) -ident(headerfied) operator(=) ident(stripped)operator(.)ident(replaceAll)operator(()ident(pattern)operator(,) string)content($)content(1)delimiter(')>(\)) +ident(headerfied) operator(=) ident(stripped)operator(.)ident(replaceAll)operator(()ident(pattern)operator(,) string$1)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 ident(finder) operator(=) ident(fakeFileInput) operator(=~) ident(chunkyPattern) operator(()integer(0)operator(..<)ident(finder)operator(.)ident(count)(\))operator(.)ident(each) operator({) - ident(println) stringcontent( contains )inlinecontent( lines.)delimiter(")> + ident(println) stringcontent( contains )inline(\))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(\)) -ident(println) stringcontent( chunks.)delimiter(")> +ident(println) stringcontent( chunks.)delimiter(")> comment(// => I read 10 chunks.) comment(//----------------------------------------------------------------------------------) @@ -2476,10 +2476,10 @@ line CCC Done. )delimiter(''')>operator(.)ident(trim)operator(()(\)) -ident(examplePattern) operator(=) regexp(.*?\)<)content(\\/)content(XMP>)delimiter(/)> +ident(examplePattern) operator(=) regexp(.*?\)<)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) stringcontent(:)delimiter(")> + ident(println) stringcontent(:)delimiter(")> ident(println) ident(finder)operator([)local_variable(it)(])operator([)integer(1)(]) (}) comment(// =>) @@ -2519,10 +2519,10 @@ ident(fakedMailInput)operator(.)ident(split)operator(()string(\),;)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) stringcontent( seen )inlinecontent( time)inlinecontent(.)delimiter(")> (}) +ident(seen)operator(.)ident(each)operator({) ident(k)operator(,)ident(v) operator(->) ident(println) stringcontent( seen )inlinecontent( time)inlineoperator(:)stringinline_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([) stringoperator(:)stringoperator(,) stringoperator(:)stringoperator(,) stringoperator(:)stringoperator(,) stringoperator(:)string (]) keyword(def) ident(result) operator(=) string string operator(+) ident(globstr)operator(.)ident(replaceAll)operator(()regexp(\)) 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 (}) 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(()stringoperator(,) integer(3)(\)) @@ -2565,14 +2565,14 @@ ident(states) operator(=) string) - keyword(if) operator(()ident(states)operator(.)ident(any)operator({) ident(line) operator(=~) regexpchar(\\b)delimiter(/)> (}\)) ident(println) ident(line) + keyword(if) operator(()ident(states)operator(.)ident(any)operator({) ident(line) operator(=~) regexpchar(\\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 + keyword(def) ident(code) operator(=) string ident(states)operator(.)ident(each)operator({) ident(code) operator(+=) stringchar(\\\\)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 + keyword(def) ident(code) operator(=) string ident(states)operator(.)ident(each)operator({) ident(code) operator(+=) stringchar(\\\\)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({) stringchar(\\\\)content(b/)delimiter(")> (})operator(.)ident(join)operator(()string(\)) - 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(~)regexpchar(\\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({) regexpchar(\\b)delimiter(/)> (})operator(.)ident(join)operator(()string(\)) 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(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\)}) +)delimiter(''')>operator(.)ident(split)operator(()string(\))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([)stringoperator(,)string(]\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(3) -keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAny)operator(()local_variable(it)operator(,) operator([)stringoperator(,)string(]\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(2) -keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAll)operator(()local_variable(it)operator(,) operator([)stringoperator(,)string(]\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(1) -keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAll)operator(()local_variable(it)operator(,) operator([)stringoperator(,)string(]\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(0) +keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAny)operator(()local_variable(it)operator(,) operator([)stringoperator(,)string(])(\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(3) +keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAny)operator(()local_variable(it)operator(,) operator([)stringoperator(,)string(])(\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(2) +keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAll)operator(()local_variable(it)operator(,) operator([)stringoperator(,)string(])(\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(1) +keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAll)operator(()local_variable(it)operator(,) operator([)stringoperator(,)string(])(\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(0) comment(//----------------------------------------------------------------------------------) comment(// @@PLEAC@@_6.11) comment(//----------------------------------------------------------------------------------) comment(// patternCheckingScript:) -ident(prompt) operator(=) string )delimiter(')> +ident(prompt) operator(=) string )delimiter(')> ident(print) string 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 operator(+) ident(prompt) @@ -2685,12 +2685,12 @@ comment(//---------------------------------------------------------------------- ident(src) operator(=) string comment(// simplistic with locale issue) ident(dst) operator(=) ident(src) -operator(()stringoperator(..)string(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexpoperator(+)local_variable(it)operator(+)regexpoperator(+)local_variable(it)operator(,) local_variable(it)operator(.)ident(toUpperCase)operator(()(\)\)) (}) +operator(()stringoperator(..)string(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexpoperator(+)local_variable(it)operator(+)regexpoperator(+)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(()stringoperator(..)string(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexpoperator(+)local_variable(it)operator(,) local_variable(it)operator(.)ident(toUpperCase)operator(()(\)\)) (}) +operator(()stringoperator(..)string(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexpoperator(+)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(\))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(\))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(+) stringoperator(;) 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(+) stringoperator(;) 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({)stringoperator(+)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({)stringoperator(+)operator(()operator(()type(int)(\))operator(()local_variable(it)operator(*)integer(100)(\))(\))operator(/)integer(100)(})(\))(}) ident(out) operator(()stringoperator(,) 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 ident(p) operator(=) operator(~)regexp 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 operator(+) ident(m)operator(.)ident(group)operator(()(\)) operator(+) string operator(+) ident(m)operator(.)ident(start)operator(()(\)) operator(+) string 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 operator(+) ident(m)operator(.)ident(group)operator(()(\)) (}) +keyword(if) operator(()ident(m)operator(.)ident(find)operator(()integer(16)(\))(\)) operator({) ident(println) string 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 ident(p2) operator(=) operator(~)regexp 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 operator(+) ident(f) (}) -keyword(if) operator(()operator(()ident(f) operator(=) ident(s)operator(.)ident(findInLine)operator(()ident(p2)(\)\)\)) operator({) ident(println) stringcontent( after the last number.)delimiter(")> (}) +keyword(while) operator(()operator(()ident(f) operator(=) ident(s)operator(.)ident(findInLine)operator(()ident(p1)(\))(\))(\)) operator({) ident(println) string operator(+) ident(f) (}) +keyword(if) operator(()operator(()ident(f) operator(=) ident(s)operator(.)ident(findInLine)operator(()ident(p2)(\))(\))(\)) operator({) ident(println) stringcontent( after the last number.)delimiter(")> (}) comment(// =>) comment(// Found: 1752) comment(// Found: 10) @@ -2804,11 +2804,11 @@ ident(html) operator(=) stringthis and that)delimiter(/)> comment(// not good) ident(nonGreedyHtmlStripPattern) operator(=) operator(~)regexp)delimiter(/)> comment(// not great) -ident(simpleNested) operator(=) operator(~)regexp(.*?\)<)content(\\/)content(i><)content(\\/)content(b>)delimiter(/)> +ident(simpleNested) operator(=) operator(~)regexp(.*?\)<)char(\\/)content(i><)char(\\/)content(b>)delimiter(/)> comment(// match BEGIN, then not BEGIN, then END) ident(generalPattern) operator(=) operator(~)regexp -ident(betterButInefficient1) operator(=) operator(~)regexp( (?: (?!<)content(\\/)content(b>|<)content(\\/)content(i>\). \)* \) <)content(\\/)content(i><)content(\\/)content(b>)delimiter(/)> -ident(betterButInefficient2) operator(=) operator(~)regexp( (?: (?!<)content(\\/)content([ib]>\). \)* \) <)content(\\/)content(i><)content(\\/)content(b>)delimiter(/)> +ident(betterButInefficient1) operator(=) operator(~)regexp( (?: (?!<)char(\\/)content(b>|<)char(\\/)content(i>\). \)* \) <)char(\\/)content(i><)char(\\/)content(b>)delimiter(/)> +ident(betterButInefficient2) operator(=) operator(~)regexp( (?: (?!<)char(\\/)content([ib]>\). \)* \) <)char(\\/)content(i><)char(\\/)content(b>)delimiter(/)> ident(efficientPattern) operator(=) string @@ -2825,15 +2825,15 @@ comment(//---------------------------------------------------------------------- comment(// @@PLEAC@@_6.16) comment(//----------------------------------------------------------------------------------) -ident(input) operator(=) string +ident(input) operator(=) string ident(dupWordPattern) operator(=) string ident(finder) operator(=) ident(input) operator(=~) ident(dupWordPattern) @@ -2843,11 +2843,11 @@ comment(// => Found duplicate word: test) ident(astr) operator(=) string ident(bstr) operator(=) string ident(m) operator(=) stringcontent( )inlinedelimiter(")> operator(=~) regexp -ident(actual) operator(=) stringcontent( overlaps in )inlinecontent(-)inlinecontent(-)inlinedelimiter(")> +ident(actual) operator(=) stringcontent( overlaps in )inlinecontent(-)inlinecontent(-)inlinedelimiter(")> keyword(assert) ident(actual) operator(==) string ident(cap) operator(=) string operator(*) integer(180) -keyword(while) operator(()ident(m) operator(=) operator(()ident(cap) operator(=~) regexp(\)\)) operator({) +keyword(while) operator(()ident(m) operator(=) operator(()ident(cap) operator(=~) regexp(\))(\)) operator({) ident(p1) operator(=) ident(m)operator([)integer(0)(])operator([)integer(1)(]) ident(print) ident(p1)operator(.)ident(size)operator(()(\)) operator(+) string ident(cap) operator(=) ident(cap)operator(.)ident(replaceAll)operator(()ident(p1)operator(,)string(\)) @@ -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 operator(*) integer(281)(\)) operator(=~) regexp(\)\)) operator({) +keyword(if) operator(()operator(()ident(m) operator(=) operator(()string operator(*) integer(281)(\)) operator(=~) regexp(\))(\)) 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) stringcontent(; y=)inlinecontent(; z=)inlinedelimiter(")> (}) keyword(else) ident(println) string @@ -2955,7 +2955,7 @@ ident(noWaldoRegex) operator(=) string keyword(assert) ident(map) operator(=~) ident(noWaldoRegex) @@ -3008,7 +3008,7 @@ keyword(def) method(checkUnicode)operator(()ident(s)(\)) operator({) ident(println) string operator(+) operator(()ident(s) operator(==~) regexp(\)) (}) ident(checkUnicode)operator(()string(\)) -ident(checkUnicode)operator(()string(\)) +ident(checkUnicode)operator(()string(\)) ident(checkUnicode)operator(()string(\)) 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(()stringoperator(.)ident(split)operator(()string(\))operator(.)ident(toList)operator(()(\)\)) +ident(println) ident(buildAbbrev)operator(()stringoperator(.)ident(split)operator(()string(\))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(}) (]) -ident(table) operator(=) ident(buildAbbrev)operator(()ident(actions)operator(.)ident(keySet)operator(()(\))operator(.)ident(toList)operator(()(\)\)) -ident(prompt) operator(=) string )delimiter(')> +ident(table) operator(=) ident(buildAbbrev)operator(()ident(actions)operator(.)ident(keySet)operator(()(\))operator(.)ident(toList)operator(()(\))(\)) +ident(prompt) operator(=) string )delimiter(')> ident(print) string 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 +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 ident(actions)operator([)ident(idx)(])operator(()(\)) ident(print) ident(prompt) (}) @@ -3135,13 +3135,13 @@ comment(//% urlify ~/mail/*.inbox > ~/allmail.urlified) ident(urls) operator(=) string ident(ltrs) operator(=) regexp -ident(gunk) operator(=) regexp +ident(gunk) operator(=) regexp ident(punc) operator(=) regexp ident(doll) operator(=) regexp ident(all) operator(=) regexpinlineinlinedelimiter(/)> ident(findUrls) operator(=) stringcontent( : # need resource and a colon [)inlinecontent(] +? # 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)content($)content(1)delimiter(')>(\)) +ident(println) ident(input)operator(.)ident(replaceAll)operator(()ident(findUrls)operator(,)string$1)delimiter(')>(\)) comment(// =>) comment(// If you find a typo on http://groovy.codehaus.org please) comment(// send an email to mail:spelling.pedant@codehaus.org) @@ -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)content($)content(1)delimiter(')>(\)) + ident(println) ident(line)operator(.)ident(replaceAll)operator(()ident(findUrls)operator(,)string$1)delimiter(')>(\)) (}) (}) @@ -3193,7 +3193,7 @@ comment(// can't have tens before 1000s (M\) or 100s (C\) after 5s (V\)) keyword(assert) operator(!)operator(()string operator(=~) ident(romans)(\)) comment(// swap first two words) -keyword(assert) stringoperator(.)ident(replaceAll)operator(()regexpoperator(,) string(\)) operator(==) string +keyword(assert) stringoperator(.)ident(replaceAll)operator(()regexpoperator(,) string(\)) operator(==) string comment(// extract keyword and value) ident(m) operator(=) string operator(=~) regexp @@ -3214,13 +3214,13 @@ ident(expected) operator(=) stringoperator(,)string(\)) operator(==) ident(expected) ident(escapeSequenceRegex) operator(=) regexp -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) stringoperator(.)ident(replaceAll)operator(()ident(escapeSequenceRegex)operator(,) ident(convertEscapeToChar)(\)) operator(==) string ident(commentStripper) operator(=) string ident(input) operator(=) stringoperator(.)ident(replaceAll)operator(()regexpoperator(,) string(\))operator(.)ident(replaceAll)operator(()regexpoperator(,) string(\)) operator(==) string comment(// convert \\\\n into \\n) -keyword(assert) operator(()regexpoperator(.)ident(replaceAll)operator(()regexpoperator(,)string(\)) operator(==) string(\)) +keyword(assert) operator(()regexpoperator(.)ident(replaceAll)operator(()regexpoperator(,)string(\)) operator(==) string(\)) comment(// remove package symbol (Groovy/Java doesn't use this as package symbol\)) keyword(assert) stringoperator(.)ident(replaceAll)operator(()regexpoperator(,) string(\)) operator(==) string @@ -3254,14 +3254,14 @@ keyword(assert) operator(!)operator(()string operator(=~) ident(ipregex) comment(// extract basename) -keyword(assert) stringoperator(.)ident(replaceAll)operator(()regexpoperator(,) string(\)) operator(==) string +keyword(assert) stringoperator(.)ident(replaceAll)operator(()regexpoperator(,) string(\)) operator(==) string ident(termcap) operator(=) string ident(m) operator(=) operator(()ident(termcap) operator(=~) regexp(\)) keyword(assert) ident(m)operator(.)ident(count) operator(==) integer(1) keyword(assert) ident(m)operator([)integer(0)(])operator([)integer(1)(]) operator(==) string -keyword(assert) stringoperator(.)ident(replaceAll)operator(()operator(/) error(\\)ident(S)operator(+)error(\\)regexpoperator(,) string(\)) operator(==) string +keyword(assert) stringoperator(.)ident(replaceAll)operator(()regexpoperator(,) string(\)) operator(==) string ident(os) operator(=) pre_type(System)operator(.)ident(getProperty)operator(()string(\)) ident(println) string operator(+) operator(()ident(os) operator(==~) regexp(\)) @@ -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(()regexpoperator(,) string(\))operator(.)ident(replaceAll)operator(()regexpoperator(,) string(\))operator(.)ident(replaceAll)operator(()operator(/) operator({)integer(3)operator(,)(})operator(/)operator(,)string(\)) +ident(strip) operator(=) ident(input)operator(.)ident(replaceAll)operator(()regexpoperator(,) string(\))operator(.)ident(replaceAll)operator(()regexpoperator(,) string(\))operator(.)ident(replaceAll)operator(()regexpoperator(,)string(\)) ident(m) operator(=) ident(strip) operator(=~) regexp 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([)stringoperator(,) stringoperator(,) stringoperator(,) string(]) @@ -3327,7 +3327,7 @@ keyword(assert) ident(sentences) operator(==) operator([)string operator(=~) regexp keyword(assert) ident(m)operator(.)ident(matches)operator(()(\)) -keyword(assert) operator([)stringoperator(,) stringoperator(,) string(]) 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([)stringoperator(,) stringoperator(,) string(]) 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 ident(numbers) operator(=) string operator(=~) ident(exclaimRegex) keyword(assert) operator(!)operator(()string operator(=~) ident(exclaimRegex)(\)) -ident(input) operator(=) string +ident(input) operator(=) string ident(m) operator(=) ident(input) operator(=~) regexp keyword(assert) ident(m)operator(.)ident(count) operator(==) integer(4) @@ -3380,7 +3380,7 @@ ident(HELP) operator(=) stringoperator(;) 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) stringcontent(' 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(]) - keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(EXACT) (\)\)) ident(pattern) operator(=) string operator(+) ident(pattern) operator(+) string - keyword(else) keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(WORD) (\)\)) ident(pattern) operator(=) regexpchar(\\b)delimiter(/)> - keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(NOCASE) (\)\)) ident(modifiers) operator(+=) string - 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 + keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(EXACT) (\))(\)) ident(pattern) operator(=) string operator(+) ident(pattern) operator(+) string + keyword(else) keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(WORD) (\))(\)) ident(pattern) operator(=) regexpchar(\\b)delimiter(/)> + keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(NOCASE) (\))(\)) ident(modifiers) operator(+=) string + 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 ident(paraPattern) operator(=) string operator(+) ident(paraPattern) ident(modifiers) operator(+=) string (}) - keyword(if) operator(()ident(modifiers)(\)) ident(pattern) operator(=) stringcontent(\))delimiter(")> operator(+) ident(pattern) + keyword(if) operator(()ident(modifiers)(\)) ident(pattern) operator(=) stringcontent(\))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(')>(\)) 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(')> +ident(prompt) operator(=) string )delimiter(')> ident(print) string 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(\)) ident(println) stringdelimiter(")> comment(// normal output to System.out) keyword(else) pre_type(System)operator(.)ident(err)operator(.)ident(println) string 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 ident(name) operator(=) pre_type(System)operator(.)ident(getProperty)operator(()string(\)) ident(home) operator(=) pre_type(System)operator(.)ident(getProperty)operator(()string(\)) -ident(println) ident(home) operator(+) ident(path)operator(.)ident(replaceAll)operator(()stringcontent((.*\))delimiter(")>operator(,) string(\)) +ident(println) ident(home) operator(+) ident(path)operator(.)ident(replaceAll)operator(()stringcontent((.*\))delimiter(")>operator(,) string(\)) comment(// => C:\\Documents and Settings\\Paul/.cvspass) comment(//----------------------------------------------------------------------------------) @@ -3623,12 +3623,12 @@ ident(file) operator(=) keyword(new) pre_type(File)operator(()string keyword(def) method(readEmbeddedInfo)operator(()(\)) operator({) ident(m) operator(=) ident(file)operator(.)ident(text) operator(=~) ident(regex) - ident(println) string operator(+) ident(m)operator([)integer(0)(])operator([)integer(1)(]) + ident(println) string 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(=) stringcontent(Script size is )inlineinlinecontent(Last script update: )inlineinlinedelimiter(")> - 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(=) stringcontent(Script size is )inlineinlinecontent(Last script update: )inlineinlinedelimiter(")> + 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(\)}\)) operator({) +keyword(if) operator(()ident(files)operator(.)ident(any)operator({) local_variable(it)operator(.)ident(startsWith)operator(()string(\))(})(\)) operator({) pre_type(System)operator(.)ident(err)operator(.)ident(println)operator(()string(\)) (}) 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(\)) 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(\))operator(.)ident(toList)operator(()(\)) keyword(for) operator(()ident(word) keyword(in) ident(words)(\)) operator({) keyword(if) operator(()ident(word) operator(=~) regexp(\)) keyword(break) - keyword(if) operator(()ident(word) keyword(in) operator([)stringoperator(,) string(]\)) operator({) ident(done) operator(=) keyword(true)operator(;) keyword(break) (}) + keyword(if) operator(()ident(word) keyword(in) operator([)stringoperator(,) string(])(\)) 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 (}) 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(\)) comment(// replace on your system) ident(processFileInplace)operator(()ident(testfile)(\)) operator({) ident(text) operator(->) - ident(text)operator(.)ident(replaceAll)operator(()regexpoperator(,) keyword(new) pre_type(Date)operator(()(\))operator(.)ident(toString)operator(()(\)\)) + ident(text)operator(.)ident(replaceAll)operator(()regexpoperator(,) 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) stringdelimiter(")> comment(// -1 = EOF) +ident(println) stringdelimiter(")> comment(// -1 = EOF) -ident(channel) operator(=) keyword(new) pre_type(FileOutputStream)operator(()pre_type(File)operator(.)ident(createTempFile)operator(()stringoperator(,) string(\)\))operator(.)ident(channel) +ident(channel) operator(=) keyword(new) pre_type(FileOutputStream)operator(()pre_type(File)operator(.)ident(createTempFile)operator(()stringoperator(,) string(\))(\))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) 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(()stringoperator(,) 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) stringcontent(: Reopening )inlinedelimiter(")> + pre_type(System)operator(.)ident(err)operator(.)ident(println) stringcontent(: Reopening )inlinedelimiter(")> ident(file) operator(=) keyword(new) pre_type(RandomAccessFile)operator(() ident(logfile)operator(,) string (\)) 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 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) stringcontent(: )inlinedelimiter(")> +ident(println) stringcontent(: )inlinedelimiter(")> 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) stringcontent(: )inlinedelimiter(")> @@ -4276,7 +4276,7 @@ comment(// @@PLEAC@@_8.10) comment(//----------------------------------------------------------------------------------) ident(file) operator(=) keyword(new) pre_type(RandomAccessFile)operator(() ident(logfile)operator(,) string (\)) 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 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(\)) -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 (})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(:)stringoperator(,)key(age)operator(:)integer(16)(\)\)) - ident(oos)operator(.)ident(writeObject)operator(()operator([)integer(1)operator(:)stringoperator(,) integer(2)operator(:)string(]\)) - 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(:)stringoperator(,)key(age)operator(:)integer(16)(\))(\)) + ident(oos)operator(.)ident(writeObject)operator(()operator([)integer(1)operator(:)stringoperator(,) integer(2)operator(:)string(])(\)) + 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(\)) -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 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 comment(// user) ident(print) ident(getString)operator(()ident(buf)operator(,)integer(256)(\)) operator(+) string comment(// hostname) ident(buf)operator(.)ident(position)operator(()ident(buf)operator(.)ident(position)operator(()(\)) operator(+) integer(8)(\)) comment(// skip) - ident(println) stringcontent( )delimiter(")> comment(// time) + ident(println) stringcontent( )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(')>(\)\)) operator({) + keyword(if) operator(()ident(name)operator(.)ident(startsWith)operator(()string>)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(\)\)) 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(\))(\)) 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(\)\)) operator({) + keyword(if) operator(()ident(arg)operator(.)ident(startsWith)operator(()string(\))(\)) operator({) keyword(switch) operator(()ident(arg)(\)) operator({) keyword(case) stringoperator(:) ident(append) operator(=) keyword(true)operator(;) keyword(break) keyword(case) stringoperator(:) 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) stringcontent( last logged on )inlinecontent( from )inlinecontent( on )inlinedelimiter(")> +ident(println) stringcontent( last logged on )inlinecontent( from )inlineinline_delimiter(})>content( on )inlinedelimiter(")> 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) stringcontent( of )inlinecontent( file(s\))delimiter(")> + ident(println) stringcontent( of )inlinecontent( file(s\))delimiter(")> keyword(if) operator(()ident(problemFileNames)(\)) ident(println) string operator(+) ident(problemFileNames)operator(.)ident(join)operator(()string(\)) (}) @@ -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) 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 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(\))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(\)\)) +ident(namelist) operator(=) ident(dir)operator(.)ident(list)operator(()keyword(new) ident(GlobFilenameFilter)operator(()string(\))(\)) ident(filelist) operator(=) ident(dir)operator(.)ident(listFiles)operator(()keyword(new) ident(GlobFilenameFilter)operator(()string(\)) 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(\))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) stringcontent(.name with )inlinecontent( bytes)delimiter(")> +ident(println) stringcontent(.name with )inlinecontent( 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) stringcontent(.name, changed )inlinedelimiter(")> +ident(println) stringcontent(.name, changed )inlinedelimiter(")> 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 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 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 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([)stringoperator(,) string(]) -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(\)\)) (}) +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(\))(\)) (}) 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(()stringcontent((')inlinecontent('\))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 operator(+) local_variable(it)operator(.)ident(tokenize)operator(()string(\))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 (\)) 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 operator(:) string (\)) 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 - 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 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(]\)) +ident(saveArray)operator(()operator([)string(])(\)) keyword(assert) ident(globalArray) operator(==) operator([)stringoperator(,) string(]) 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(\))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(\)\)) 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(()stringoperator(,) 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(\))(\)) 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(()stringoperator(,) 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(\)]) + key(version)operator(:)pre_type(System)operator(.)ident(getProperty)operator(()string(\))(]) 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(?) stringdelimiter(")> operator(:) string(\)) (}) 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(\)) 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(\)\)) + ident(buildFont)operator(()ident(name)operator(,) ident(args)operator(.)ident(join)operator(()string(\))(\)) (}) keyword(def) method(buildFont)operator(()ident(name)operator(,) ident(info)(\)) operator({) string)delimiter(")> operator(+) ident(info) operator(+) string)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(\)\)) +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(\))(\)) 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(\)) +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(\)) 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) stringcontent(.sentDate: )inlinecontent(.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([)stringoperator(,) stringoperator(,) string(]) @@ -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([)stringoperator(,)string(])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([)stringoperator(,) string(]\)) operator({) +keyword(for) operator(()ident(key) keyword(in) operator([)stringoperator(,) string(])(\)) 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 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) stringdelimiter(")> @@ -5929,13 +5929,13 @@ keyword(def) method(counterMaker)operator(()(\))operator({) (}) ident(counter) operator(=) ident(counterMaker)operator(()(\)) -integer(5)operator(.)ident(times)operator({) ident(print) stringcontent( )delimiter(")> (})operator(;) ident(println)operator(()(\)) +integer(5)operator(.)ident(times)operator({) ident(print) stringcontent( )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) stringcontent( )delimiter(")> (}) -ident(println) stringcontent( )inlinedelimiter(")> +integer(5)operator(.)ident(times)operator({) ident(println) stringcontent( )delimiter(")> (}) +ident(println) stringcontent( )inlinedelimiter(")> 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) stringcontent( seconds since early.)delimiter(")> -ident(println) stringcontent( seconds since later.)delimiter(")> +ident(println) stringcontent( seconds since early.)delimiter(")> +ident(println) stringcontent( 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) stringdelimiter(")> (}) +keyword(def) method(print)operator(()ident(n)(\)) operator({) ident(println) stringdelimiter(")> (}) 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([)stringoperator(,) stringoperator(,) string(])operator(,) operator([)stringoperator(,) stringoperator(,) string(])operator(,) operator([)integer(5)operator(,) integer(3)operator(,) integer(1)(]]) +ident(list) operator(=) operator([)operator([)stringoperator(,) stringoperator(,) string(])operator(,) operator([)stringoperator(,) stringoperator(,) string(])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(,) stringoperator(,) operator([)integer(1)(]]) +ident(mylist) operator(=) operator([)integer(1)operator(,) stringoperator(,) 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) stringdelimiter(")> comment(// 21) -ident(println) stringdelimiter(")> comment(// 78) -ident(println) stringdelimiter(")> comment(// 22) -ident(println) stringdelimiter(")> comment(// 21) -ident(println) stringdelimiter(")> comment(// 20) -ident(println) stringdelimiter(")> comment(// 77) +ident(println) string(])operator(()(\))inline_delimiter(})>delimiter(")> comment(// 21) +ident(println) string(])operator(()(\))inline_delimiter(})>delimiter(")> comment(// 78) +ident(println) string(])operator(()(\))inline_delimiter(})>delimiter(")> comment(// 22) +ident(println) string(])operator(()(\))inline_delimiter(})>delimiter(")> comment(// 21) +ident(println) string(])operator(()(\))inline_delimiter(})>delimiter(")> comment(// 20) +ident(println) string(])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) stringcontent( )inlinedelimiter(")> + ident(println) stringcontent( )inlinedelimiter(")> (}) 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) stringcontent( )inlinedelimiter(")> (}) +ident(multiplyAndAdd) operator(=) operator({) ident(a)operator(,)ident(b) operator(->) ident(println) stringcontent( )inlinedelimiter(")> (}) 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([) stringoperator(:) integer(37000)operator(,) stringoperator(:) operator([)stringoperator(,) stringoperator(,) string(])operator(,) (]) -ident(println) stringcontent(, and my pals are )inlinecontent(.)delimiter(")> +ident(println) stringinline_delimiter(})>content(, and my pals are )inlineoperator(.)ident(join)operator(()string(\))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(]]) operator(=) ident(record) +ident(byname)operator([)ident(record)operator([)string(])(]) operator(=) ident(record) ident(rp) operator(=) ident(byname)operator(.)ident(get)operator(()string(\)) -keyword(if) operator(()ident(rp)(\)) ident(println) stringcontent(.)delimiter(")> +keyword(if) operator(()ident(rp)(\)) ident(println) string(])inline_delimiter(})>content(.)delimiter(")> ident(byname)operator([)string(])operator([)string(]) operator(+=) string -ident(println) stringcontent( pals.)delimiter(")> +ident(println) string(])operator([)string(])operator(.)ident(size)operator(()(\))inline_delimiter(})>content( pals.)delimiter(")> ident(byname)operator(.)ident(each)operator({) ident(name)operator(,) ident(record) operator(->) - ident(println) stringcontent( is employee number )inlinecontent(.)delimiter(")> + ident(println) stringcontent( is employee number )inline(])inline_delimiter(})>content(.)delimiter(")> (}) ident(employees) operator(=) operator([)operator(:)(]) -ident(employees)operator([)ident(record)operator([)string(]]) operator(=) ident(record) +ident(employees)operator([)ident(record)operator([)string(])(]) operator(=) ident(record) comment(// lookup by id) ident(rp) operator(=) ident(employees)operator([)integer(132)(]) -keyword(if) operator(()ident(rp)(\)) ident(println) stringcontent(.)delimiter(")> +keyword(if) operator(()ident(rp)(\)) ident(println) stringinline_delimiter(})>content(.)delimiter(")> ident(byname)operator([)string(])operator([)string(]) 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 operator(+) ident(employees)operator(.)ident(values)operator(()(\))operator(.)ident(collect)operator({)ident(r)operator(->)ident(r)operator(.)string(})operator(.)ident(join)operator(()string(\)) -ident(byAge) operator(=) operator({)ident(a)operator(,)ident(b)operator(->) ident(a)operator(.)ident(value)operator(()(\))operator(.)string operator(<=)operator(>) ident(b)operator(.)ident(value)operator(()(\))operator(.)string(}) +ident(byAge) operator(=) operator({)ident(a)operator(,)ident(b)operator(->) ident(a)operator(.)ident(value)operator(()(\))operator(.)string operator(<=>) ident(b)operator(.)ident(value)operator(()(\))operator(.)string(}) ident(employees)operator(.)ident(values)operator(()(\))operator(.)ident(sort)operator({)ident(byAge)(})operator(.)ident(each)operator({) ident(r)operator(->) - ident(println) stringcontent( is )inlinedelimiter(")> + ident(println) stringinline_delimiter(})>content( is )inlineinline_delimiter(})>delimiter(")> (}) comment(// byage, a hash: age => list of records) ident(byage) operator(=) operator([)operator(:)(]) -ident(byage)operator([)ident(record)operator([)string(]]) operator(=) ident(byage)operator(.)ident(get)operator(()ident(record)operator([)string(])operator(,) type([])(\)) operator(+) operator([)ident(record)(]) +ident(byage)operator([)ident(record)operator([)string(])(]) operator(=) ident(byage)operator(.)ident(get)operator(()ident(record)operator([)string(])operator(,) type([])(\)) operator(+) operator([)ident(record)(]) ident(byage)operator(.)ident(each)operator({) ident(age)operator(,) ident(list) operator(->) - ident(println) stringcontent(: )inlinecontent(.join(', '\)})delimiter(")> + ident(println) stringcontent(: )inline(})operator(.)ident(join)operator(()string(\))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([)stringoperator(:) stringoperator(,) stringoperator(:)operator([)integer(1)operator(,)integer(2)operator(,)integer(3)(]]) +ident(mydict) operator(=) operator([)stringoperator(:) stringoperator(,) stringoperator(:)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(:)stringoperator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)stringoperator(,)key(cat)operator(:)string(]\)) +ident(p) operator(=) keyword(new) ident(PetLover)operator(()key(name)operator(:)stringoperator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)stringoperator(,)key(cat)operator(:)string(])(\)) 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(:)stringoperator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)stringoperator(,)key(cat)operator(:)string(]\)) +ident(println) keyword(new) ident(PetLover2)operator(()key(name)operator(:)stringoperator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)stringoperator(,)key(cat)operator(:)string(])(\)) 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(:)stringoperator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)stringoperator(,)key(cat)operator(:)string(]\)) +ident(println) keyword(new) ident(PetLover3)operator(()key(name)operator(:)stringoperator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)stringoperator(,)key(cat)operator(:)string(])(\)) 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(()stringoperator(,) ident(name)(\))operator(.) @@ -6199,7 +6199,7 @@ type(class) class(PetLover4) operator({) ident(append)operator(()stringoperator(,) ident(age)(\)) (}) (}) -ident(println) keyword(new) ident(PetLover4)operator(()key(name)operator(:)stringoperator(,) 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(:)stringoperator(,)key(cat)operator(:)string(]\)) +ident(println) keyword(new) ident(PetLover4)operator(()key(name)operator(:)stringoperator(,) 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(:)stringoperator(,)key(cat)operator(:)string(])(\)) 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(\)) 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) stringoperator(;) id ident(print) stringoperator(;) ident(test)operator(.)ident(postOrder)operator(()(\))operator(;) ident(println) string ident(println) string -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 (}) 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(\)\)) + ident(evaluate)operator(()keyword(new) pre_type(File)operator(()string(\))(\)) (}) keyword(catch) operator(()pre_type(Exception) pre_type(FileNotFoundException)(\)) operator({) ident(println) string (}) @@ -6927,9 +6927,9 @@ ident(pazzi) operator(=) keyword(new) ident(Person)operator(()integer(40)operato comment(// Calling a class method) ident(println) stringcontent(.numberOfPeople Person objects.)delimiter(")> -ident(println) stringcontent(.name is )inlinecontent(.)delimiter(")> +ident(println) stringcontent(.name is )inline operator(:) stringinline_delimiter(})>content(.)delimiter(")> ident(lecter)operator(.)ident(kill)operator(()ident(pazzi)(\)) -ident(println) stringcontent(.name is )inlinecontent(.)delimiter(")> +ident(println) stringcontent(.name is )inline operator(:) stringinline_delimiter(})>content(.)delimiter(")> ident(println) stringcontent(.name was born in )inlinecontent(.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) stringcontent(] is dying at )inlinedelimiter(")> + ident(println) stringcontent(] is dying at )inlinedelimiter(")> (}) (}) @@ -7042,7 +7042,7 @@ ident(people) operator(=) type([]) integer(10)operator(.)ident(times) operator({) ident(people) operator(+=) keyword(new) ident(Person5)operator(()(\)) (}) -ident(println) stringcontent( people alive)delimiter(")> +ident(println) stringcontent( 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 ident(p)operator(.)ident(age) operator(=) integer(13) ident(p)operator(.)ident(peers) operator(=) operator([)stringoperator(,) stringoperator(,) string(]) -ident(p)operator(.)ident(setPeers)operator(()operator([)stringoperator(,) stringoperator(,) string(]\)) comment(// alternative using implicit setter) +ident(p)operator(.)ident(setPeers)operator(()operator([)stringoperator(,) stringoperator(,) string(])(\)) comment(// alternative using implicit setter) ident(p)operator([)string(]) operator(=) operator([)stringoperator(,) stringoperator(,) string(]) comment(// alternative access using name of field) -ident(println) stringcontent(.age, )inlinecontent(.name's first friend is )inlinedelimiter(")> +ident(println) stringcontent(.age, )inlinecontent(.name's first friend is )inlinedelimiter(")> 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(:)stringoperator(,) key(age)operator(:)integer(14)operator(,) key(peers)operator(:)operator([)stringoperator(,)stringoperator(,)string(]\)) -ident(println) stringcontent(.age, )inlinecontent(.name's first friend is )inlinedelimiter(")> +ident(p) operator(=) keyword(new) ident(StaticPerson)operator(()key(name)operator(:)stringoperator(,) key(age)operator(:)integer(14)operator(,) key(peers)operator(:)operator([)stringoperator(,)stringoperator(,)string(])(\)) +ident(println) stringcontent(.age, )inlinecontent(.name's first friend is )inlinedelimiter(")> 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(:)stringoperator(,)key(age)operator(:)integer(34)(\)\)) +ident(folks) operator(=) keyword(new) ident(Family)operator(()key(head)operator(:)keyword(new) ident(DynamicPerson)operator(()key(name)operator(:)stringoperator(,)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 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(()stringcontent(' isn't an Integer)delimiter(")>(\)) keyword(if) operator(()ident(value) operator(>) integer(150)(\)) keyword(throw) keyword(new) pre_type(IllegalArgumentException)operator(()stringcontent( is unreasonable)delimiter(")>(\)) @@ -7266,7 +7266,7 @@ type(class) class(Person8) operator({) ident(dad) operator(=) keyword(new) ident(Person8)operator(()key(name)operator(:)stringoperator(,) key(age)operator(:)integer(23)(\)) ident(kid) operator(=) ident(dad)operator(.)ident(newChild)operator(()key(name)operator(:)stringoperator(,) key(age)operator(:)integer(2)(\)) -ident(println) stringdelimiter(")> +ident(println) stringdelimiter(")> 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) stringcontent(] is dying at )inlinedelimiter(")> + ident(println) stringcontent(] is dying at )inlinedelimiter(")> (}) (}) @@ -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(()stringoperator(,) stringoperator(,) string(\)) ident(b) operator(=) keyword(new) ident(Person10)operator(()stringoperator(,) stringoperator(,) string(\)) -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(()stringoperator(,) stringoperator(,) string(\)) ident(b) operator(=) keyword(new) ident(Person11)operator(()stringoperator(,) stringoperator(,) string(\)) -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(=) stringoperator(;) ide ident(z) operator(=) ident(x)operator(+)ident(y) ident(r) operator(=) ident(z)operator(*)integer(3) comment(// r is "RedBlackRedBlackRedBlack") ident(println) stringcontent(, )inlinecontent(, )inlinecontent(, and )inlinedelimiter(")> -ident(println) stringcontent( is )inlinecontent( )inlinedelimiter(")> +ident(println) stringcontent( is )inline operator(:) stringinline_delimiter(})>content( )inlinedelimiter(")> 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) stringdelimiter(")> + ident(println) stringdelimiter(")> 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) stringcontent( and )inlinecontent( is )inlinedelimiter(")> -ident(println) stringcontent( and )inlinecontent( is )inlinedelimiter(")> +ident(println) stringcontent( and )inlinecontent( is )inlinedelimiter(")> +ident(println) stringcontent( and )inlinecontent( is )inlinedelimiter(")> ident(z) operator(=) ident(x)operator(/)ident(y) ident(println) stringcontent( has )inlinecontent(.places places)delimiter(")> @@ -7473,7 +7473,7 @@ ident(z)operator(.)ident(places) operator(=) integer(2) ident(println) stringcontent( now has )inlinecontent(.places places)delimiter(")> ident(println) stringcontent( by )inlinecontent( is )inlinedelimiter(")> -ident(println) stringdelimiter(")> +ident(println) stringdelimiter(")> 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([)stringoperator(,) string(]\)) +ident(ring) operator(=) keyword(new) ident(ValueRing)operator(()key(values)operator(:)operator([)stringoperator(,) string(])(\)) 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(\)) 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 @@ -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(\)) 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(,) stringoperator(,) ident(myDbConfig)(\)) -ident(theKey) operator(=) keyword(new) ident(DatabaseEntry)operator(()stringoperator(.)ident(getBytes)operator(()string(\)\)) -ident(theData) operator(=) keyword(new) ident(DatabaseEntry)operator(()stringoperator(.)ident(getBytes)operator(()string(\)\)) +ident(theKey) operator(=) keyword(new) ident(DatabaseEntry)operator(()stringoperator(.)ident(getBytes)operator(()string(\))(\)) +ident(theData) operator(=) keyword(new) ident(DatabaseEntry)operator(()stringoperator(.)ident(getBytes)operator(()string(\))(\)) 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(\)) @@ -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) stringcontent( )inlinedelimiter(")> + ident(println) stringcontent( )inlineoperator(,) 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 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(]\)) operator({) +(}) keyword(else) keyword(if) operator(()ident(args) operator(==) operator([)string(])(\)) 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(,) stringoperator(,) ident(myDbConfig)(\)) -ident(theKey) operator(=) keyword(new) ident(DatabaseEntry)operator(()stringoperator(.)ident(getBytes)operator(()string(\)\)) -ident(theData) operator(=) keyword(new) ident(DatabaseEntry)operator(()stringoperator(.)ident(getBytes)operator(()string(\)\)) +ident(theKey) operator(=) keyword(new) ident(DatabaseEntry)operator(()stringoperator(.)ident(getBytes)operator(()string(\))(\)) +ident(theData) operator(=) keyword(new) ident(DatabaseEntry)operator(()stringoperator(.)ident(getBytes)operator(()string(\))(\)) 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(:)stringoperator(,) key(does)operator(:)stringoperator(,) key(email)operator(:)string(\)\)) -ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)stringoperator(,) key(does)operator(:)stringoperator(,) key(email)operator(:)string(\)\)) +ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)stringoperator(,) key(does)operator(:)stringoperator(,) key(email)operator(:)string(\))(\)) +ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)stringoperator(,) key(does)operator(:)stringoperator(,) key(email)operator(:)string(\))(\)) 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 - keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(lines)operator(.)ident(size)operator(()(\)\)) - ident(println) stringcontent(: )inlinedelimiter(")> + keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(lines)operator(.)ident(size)operator(()(\))(\)) + ident(println) stringcontent(: )inlinedelimiter(")> ident(a) operator(=) ident(lines)operator([)operator(-)integer(1)(]) ident(lines)operator([)operator(-)integer(1)(]) operator(=) string @@ -7919,7 +7919,7 @@ comment(//---------------------------------------------------------------------- ident(println) string operator(()ident(lines)operator(.)ident(size)operator(()(\)) operator(-) integer(1)(\))operator(.)ident(downto)operator(()integer(0)(\))operator({) ident(i) operator(->) - ident(println) stringcontent(: )inlinedelimiter(")> + ident(println) stringcontent(: )inlinedelimiter(")> (}) ident(lines)operator(.)ident(save)operator(()(\)) (}) @@ -7961,8 +7961,8 @@ type(class) class(Person) directive(implements) ident(Persistent) operator({) ident(name1) operator(=) string ident(name2) operator(=) string -ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)ident(name1)operator(,) key(does)operator(:)stringoperator(,) key(email)operator(:)string(\)\)) -ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)ident(name2)operator(,) key(does)operator(:)stringoperator(,) key(email)operator(:)string(\)\)) +ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)ident(name1)operator(,) key(does)operator(:)stringoperator(,) key(email)operator(:)string(\))(\)) +ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)ident(name2)operator(,) key(does)operator(:)stringoperator(,) key(email)operator(:)string(\))(\)) ident(tom1) operator(=) ident(store)operator(.)ident(selectSingle)operator(()ident(Person)operator(.)ident(class)operator(,) stringoperator(,) ident(name1)(\)) ident(tom2) operator(=) ident(store)operator(.)ident(selectSingle)operator(()ident(Person)operator(.)ident(class)operator(,) stringoperator(,) 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(\))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(\)) operator(!=) string(\)) operator({) - ident(println) stringchar(\\n)content( Last Visited: )inlinedelimiter(")> + ident(println) stringchar(\\n)content( Last Visited: )inline(\))inline_delimiter(})>delimiter(")> keyword(if) operator(()ident(options)operator(.)ident(v)(\)) operator({) - ident(println) stringdelimiter(")> - ident(println) stringdelimiter(")> + ident(println) string(\))inline_delimiter(})>delimiter(")> + ident(println) string(\))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 keyword(if) operator(()ident(options)operator(.)ident(o)(\)) operator({) ident(println) string - ident(println) stringdelimiter(")> + ident(println) stringdelimiter(")> (}) 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(\)) ident(options) operator(=) ident(cli)operator(.)ident(parse)operator(()ident(args)(\)) -keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(()string(\)\)) operator({) +keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(()string(\))(\)) operator({) ident(println) string - ident(println) stringdelimiter(")> + ident(println) string(\))inline_delimiter(})>delimiter(")> (}) comment(// ...) @@ -8107,7 +8107,7 @@ ident(OUTPUT) operator(=) stringoperator(;) ident(describedAs)operator(() string (\))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 +keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(DEBUG) (\))(\)) ident(println) string 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(()stringoperator(,) operator([)ident(i) keyword(as) type(double)operator(,) string operator(*) ident(ratio) operator(*) ident(i)(]\)) + ident(printf)operator(()stringoperator(,) operator([)ident(i) keyword(as) type(double)operator(,) string 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(=) stringdelimiter(")> +ident(ESC) operator(=) stringdelimiter(")> ident(redOnBlack) operator(=) ident(ESC) operator(+) string ident(reset) operator(=) ident(ESC) operator(+) string ident(println) operator(()ident(redOnBlack) operator(+) string 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 -ident(println) stringcontent(' key)delimiter(")> +ident(println) stringcontent(' 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) stringdelimiter(")> +ident(print) stringdelimiter(")> comment(// Using jline constant) -ident(print) stringdelimiter(")> +ident(print) stringdelimiter(")> 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(\)\)) +ident(password) operator(=) keyword(new) ident(jline)operator(.)ident(ConsoleReader)operator(()(\))operator(.)ident(readLine)operator(()keyword(new) pre_type(Character)operator(()string(\))(\)) 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(\)) 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 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 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 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(\)) -ident(command)operator(.)ident(send)operator(()string(\)) +ident(command)operator(.)ident(send)operator(()string(\)) 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(\)) ident(separator)operator(()(\)) ident(menuItem) operator(()key(actionPerformed)operator(:)local_variable(this)operator(.)operator(&)ident(save)operator(,) string(\)) - ident(menuItem) operator(()key(actionPerformed)operator(:)operator({)pre_type(System)operator(.)ident(exit)operator(()integer(0)(\)})operator(,) string(\)) + ident(menuItem) operator(()key(actionPerformed)operator(:)operator({)pre_type(System)operator(.)ident(exit)operator(()integer(0)(\))(})operator(,) string(\)) (}) ident(menu)operator(()key(mnemonic)operator(:)stringoperator(,) string(\)) operator({) ident(checkBoxMenuItem) operator(()stringoperator(,) 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(\)) ident(glue)operator(()(\)) - ident(button)operator(()key(actionPerformed)operator(:)operator({)pre_type(System)operator(.)ident(exit)operator(()integer(0)(\)})operator(,) string(\)) + ident(button)operator(()key(actionPerformed)operator(:)operator({)pre_type(System)operator(.)ident(exit)operator(()integer(0)(\))(})operator(,) string(\)) (}) (}) 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(()stringoperator(,) key(actionPerformed)operator(:)local_variable(this)operator(.)operator(&)ident(calculate)(\)) - ident(button)operator(()stringoperator(,) key(actionPerformed)operator(:)operator({)pre_type(System)operator(.)ident(exit)operator(()integer(0)(\)}\)) + ident(button)operator(()stringoperator(,) 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(=) stringoperator(.)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(\)) 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(\)\)) +ident(input) operator(=) keyword(new) pre_type(GZIPInputStream)operator(()keyword(new) pre_type(FileInputStream)operator(()string(\))(\)) 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(\)\)\)) +pre_type(System)operator(.)ident(setErr)operator(()keyword(new) pre_type(PrintStream)operator(()keyword(new) pre_type(FileOutputStream)operator(()string(\))(\))(\)) comment(//----------------------------------------------------------------------------------) @@ -8876,9 +8876,9 @@ comment(// Simplist approach is to just link streams:) ident(proc1) operator(=) stringoperator(.)ident(execute)operator(()(\)) ident(proc2) operator(=) stringoperator(.)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(()stringcontent( )inlinedelimiter(")>operator(.)ident(toString)operator(()(\)\)) + ident(buffer)operator(.)ident(set)operator(()stringcontent( )inlinedelimiter(")>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(\))operator(.)ident(each)operator({) +ident(sigs)operator(.)ident(tokenize)operator(()string(\))operator(.)ident(each)operator({) keyword(try) operator({) ident(print) string 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(\)\)) +ident(Signal)operator(.)ident(raise)operator(()keyword(new) ident(Signal)operator(()string(\))(\)) 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(\)) keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(numThreads)(\)) operator({) - ident(println)operator(()stringoperator(+)ident(threadArray)operator([)ident(i)(]\)) + ident(println)operator(()stringoperator(+)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(\)\)) +ident(DiagSignalHandler)operator(.)ident(install)operator(()keyword(new) ident(Signal)operator(()string(\))(\)) 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(\)) -ident(name) operator(=) string +ident(name) operator(=) string ident(file) operator(=) keyword(new) pre_type(File)operator(()pre_type(System)operator(.)ident(getProperty)operator(()string(\)) operator(+) pre_type(File)operator(.)ident(separator) operator(+) string(\)) 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 ident(writer) operator(<)operator(<) string - ident(writer) operator(<)operator(<) stringHello World! It's )inlinecontent()char(\\n)delimiter(")> + ident(writer) operator(<)operator(<) stringHello World! It's )inlinecontent()char(\\n)delimiter(")> (}) (}) (}) @@ -9429,7 +9429,7 @@ keyword(import) include(org.xbill.DNS.*) pre_type(System)operator(.)ident(setProperty)operator(()stringoperator(,)string(\)) ident(Lookup) ident(lookup) operator(=) keyword(new) ident(Lookup)operator(()stringoperator(,) pre_type(Type)operator(.)ident(ANY)(\)) ident(records) operator(=) ident(lookup)operator(.)ident(run)operator(()(\)) -ident(println) stringcontent( record(s\) found)delimiter(")> +ident(println) stringcontent( 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) stringcontent(.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) stringchar(\\t)content( )inlinecontent(.name)delimiter(")> + ident(println) stringchar(\\t)content( )inlinecontent(.name)delimiter(")> (}) comment(// Logout from the FTP Server and disconnect) @@ -9604,10 +9604,10 @@ ident(postingPerm) operator(=) operator([)string(\)) ident(list) operator(=) ident(client)operator(.)ident(listNewsgroups)operator(()(\)) -ident(println) stringcontent( 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) stringcontent( 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) stringcontent(.newsgroup has )inlinecontent(.articleCount articles)delimiter(")> -ident(println) stringdelimiter(")> +ident(println) stringdelimiter(")> ident(first) operator(=) ident(aList)operator(.)ident(firstArticle) ident(println) stringcontent(, Last=)inlinecontent(.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(\)\)) 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(\)\)) 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(\))(\)) 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(\))(\)) ident(subject) operator(=) ident(line)operator([)integer(9)operator(..)operator(-)integer(1)(])operator(.)ident(trim)operator(()(\)) (}) ident(println) stringcontent( From: )inlinecontent(, Subject: )inlinedelimiter(")> (}) @@ -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(\)) 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 (\)) ident(writer)operator(.)ident(println)operator(()string(\)) ident(x) operator(=) ident(readUntil)operator(() string (\)) -keyword(while) operator(()operator(!)ident(x)operator(.)ident(contains)operator(()string(\)\)) operator({) +keyword(while) operator(()operator(!)ident(x)operator(.)ident(contains)operator(()string(\))(\)) operator({) ident(writer)operator(.)ident(println)operator(()(\)) ident(x) operator(=) ident(readUntil)operator(() string (\)) (}) @@ -9811,22 +9811,22 @@ ident(builder)operator(.)ident(html) operator({) ident(title) string (}) ident(body) operator({) - ident(p)operator(()string operator(+) ident(request)operator(.)ident(getParameter)operator(()string(\)\)) + ident(p)operator(()string operator(+) ident(request)operator(.)ident(getParameter)operator(()string(\))(\)) (}) (}) 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)>error() -operator(<)regexp)>error() -operator(<)ident(body)operator(>) +operator(<)ident(title)operator(>)ident(Howdy) ident(there)operator(!)operator(<)regexp)>error( +)operator(<)regexp)>error( +)operator(<)ident(body)operator(>) operator(<)ident(p)operator(>) -ident(You) key(typed)operator(:) error($)operator({)ident(request)operator(.)ident(getParameter)operator(()string(\)}) -operator(<)regexp)>error() -operator(<)regexp)>error() -operator(<)regexp)>error() - +ident(You) key(typed)operator(:) error($)operator({)ident(request)operator(.)ident(getParameter)operator(()string(\))(}) +operator(<)regexp)>error( +)operator(<)regexp)>error( +)operator(<)regexp)>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 elements, e.g.:) operator(<)ident(error)operator(-)ident(page)operator(>) - operator(<)ident(error)operator(-)ident(code)operator(>)integer(404)operator(<)regexp)>error() - operator(<)ident(location)operator(>)regexpident(location)operator(>) -operator(<)regexp)>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)>error() - operator(<)ident(location)operator(>)regexpident(location)operator(>) -operator(<)regexp)>error() - + operator(<)ident(error)operator(-)ident(code)operator(>)integer(404)operator(<)regexp)>error( +) operator(<)ident(location)operator(>)regexpident(location)operator(>) +operator(<)regexp)>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)>error( +) operator(<)ident(location)operator(>)regexpident(location)operator(>) +operator(<)regexp)>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 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(()stringcontent(/)inlinedelimiter(")>(\)) @@ -10235,7 +10235,7 @@ comment(// kicking off processing) ident(html)operator({) ident(head)operator({) ident(title)operator(()string(\)) (}) 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(\)) (}) 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(\)) 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(()stringoperator(,) ident(size)(\)) @@ -10339,7 +10339,7 @@ keyword(def) method(shirt)operator(()ident(active)(\)) operator({) ident(b)operator(.)ident(h1) string ident(b)operator(.)ident(p) string + to make your eyes water! Unit price: $33.00)delimiter(''')> ident(b)operator(.)ident(h2) string ident(label)operator(()string(\))operator(;) ident(textfield)operator(()string(\)) ident(label)operator(()string(\))operator(;) ident(dropDown)operator(()stringoperator(,) ident(sizes)(\)) @@ -10355,8 +10355,8 @@ keyword(def) method(sweater)operator(()ident(active)(\)) operator({) keyword(def) ident(size) operator(=) ident(param)operator(()string(\)) 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(()stringoperator(,) ident(size)(\)) @@ -10422,17 +10422,17 @@ keyword(def) method(orderText)operator(()(\)) operator({) keyword(def) ident(shirts) operator(=) ident(param)operator(()string(\)) keyword(def) ident(sweaters) operator(=) ident(param)operator(()string(\)) keyword(if) operator(()ident(shirts)(\)) operator({) - ident(b)operator(.)ident(p)operator(()stringcontent( - shirts of size )inlinecontent( - and color )inlinecontent(.)delimiter(""")>(\)) + ident(b)operator(.)ident(p)operator(()string(\))inline_delimiter(})>content( + shirts of size )inline(\))inline_delimiter(})>content( + and color )inline(\))inline_delimiter(})>content(.)delimiter(""")>(\)) (}) keyword(if) operator(()ident(sweaters)(\)) operator({) - ident(b)operator(.)ident(p)operator(()stringcontent( - sweaters of size )inlinecontent( - and color )inlinecontent(.)delimiter(""")>(\)) + ident(b)operator(.)ident(p)operator(()string(\))inline_delimiter(})>content( + sweaters of size )inline(\))inline_delimiter(})>content( + and color )inline(\))inline_delimiter(})>content(.)delimiter(""")>(\)) (}) keyword(if) operator(()operator(!)ident(sweaters) operator(&&) operator(!)ident(shirts)(\)) ident(b)operator(.)ident(p)operator(()string(\)) - ident(b)operator(.)ident(p)operator(()stringdelimiter(")>(\)) + ident(b)operator(.)ident(p)operator(()stringdelimiter(")>(\)) (}) 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 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(:)stringoperator(,) 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(:)stringoperator(,) key(name)operator(:)ident(name)operator(,) key(value)operator(:)ident(param)operator(()ident(name)operator(,)string(\)\))operator(;) ident(b)operator(.)ident(br)operator(()(\)) (}) +keyword(def) method(textfield)operator(()ident(name)(\)) operator({) ident(b)operator(.)ident(input)operator(()key(type)operator(:)stringoperator(,) key(name)operator(:)ident(name)operator(,) key(value)operator(:)ident(param)operator(()ident(name)operator(,)string(\))(\))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 -keyword(new) pre_type(File)operator(()ident(args)operator([)integer(0)(]\))operator(.)ident(text)operator(.)ident(split)operator(()stringinlinedelimiter(")>(\))operator(.)ident(each)operator({) ident(para) operator(->) - keyword(if) operator(()ident(para)operator(.)ident(startsWith)operator(()string(\)\)) ident(println) string)char(\\n)inlinechar(\\n)content()delimiter(")> +keyword(new) pre_type(File)operator(()ident(args)operator([)integer(0)(])(\))operator(.)ident(text)operator(.)ident(split)operator(()stringinlinedelimiter(")>(\))operator(.)ident(each)operator({) ident(para) operator(->) + keyword(if) operator(()ident(para)operator(.)ident(startsWith)operator(()string(\))(\)) ident(println) string)char(\\n)inlinechar(\\n)content()delimiter(")> keyword(else) operator({) - ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp.*?\))content($)delimiter(/)>operator(,) regexp)delimiter(/)>(\)) comment(// quoted text) - ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp)delimiter(/)>operator(,) regexp)content($)content(1<)content(\\/)content(a>)delimiter(/)>(\)) comment(// embedded URL) - ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexpoperator(,) regexp)content($)content(1<)content(\\/)content(a>)delimiter(/)>(\)) comment(// guessed URL) - ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()stringoperator(,) regexp)content($)content(1<)content(\\/)content(strong>)delimiter(/)>(\)) comment(// this is *bold* here) - ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexpoperator(,) regexp)content($)content(1<)content(\\/)content(em>)delimiter(/)>(\)) comment(// this is _italic_ here) + ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp.*?\))content($)delimiter(/)>operator(,) regexp)delimiter(/)>(\)) comment(// quoted text) + ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp)delimiter(/)>operator(,) regexp)content($)content(1<)char(\\/)content(a>)delimiter(/)>(\)) comment(// embedded URL) + ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexpoperator(,) regexp)content($)content(1<)char(\\/)content(a>)delimiter(/)>(\)) comment(// guessed URL) + ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()stringoperator(,) regexp)content($)content(1<)char(\\/)content(strong>)delimiter(/)>(\)) comment(// this is *bold* here) + ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexpoperator(,) regexp)content($)content(1<)char(\\/)content(em>)delimiter(/)>(\)) comment(// this is _italic_ here) ident(println) string)char(\\n)inlinechar(\\n)content(

)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(")> ident(email) operator(=) pre_type(URLEncoder)operator(.)ident(encode)operator(()ident(email)(\)) - ident(email) operator(=) ident(text)operator(.)ident(replaceAll)operator(()regexpoperator(,) operator(/) operator(.) regexpoperator(/) ident(continuation) ident(lines) + ident(email) operator(=) ident(text)operator(.)ident(replaceAll)operator(()regexpoperator(,) regexp(\)) comment(// continuation lines) ident(email) operator(=) ident(text)operator(.)ident(replaceAll)operator(()regexpoperator(,) - regexp)content($)content(1<)content(\\/)content(th>)content($)content(2<)content(\\/)content(td><)content(\\/)content(tr>)delimiter(/)>(\))operator(;) + regexp)content($)content(1<)char(\\/)content(th>)content($)content(2<)char(\\/)content(td><)char(\\/)content(tr>)delimiter(/)>(\))operator(;) ident(println) ident(email) ident(println) string)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(\))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) stringcontent( )inlinedelimiter(")> + ident(println) stringcontent( )inlinedelimiter(")> (}) 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 -Report for )inline<inline_delimiter($)ident(username)>content( -

Report for )inlinecontent(

-)inlinecontent( logged in )inlinecontent( times, for a total of )inlinecontent( minutes. +Report for $username +

Report for $username

+$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 keyword(def) ident(sql) operator(=) ident(Sql)operator(.)ident(newInstance)operator(()stringoperator(,) stringoperator(,) stringoperator(,) string(\)) ident(sql)operator(.)ident(query)operator(()string(\)) 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(\)) -ident(df)operator(.)ident(setTimeZone)operator(()pre_type(TimeZone)operator(.)ident(getTimeZone)operator(()string(\)\)) -ident(connection)operator(.)ident(setRequestProperty)operator(()stringoperator(,)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(\))(\)) +ident(connection)operator(.)ident(setRequestProperty)operator(()stringoperator(,)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(\))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) stringcontent(=)inlinedelimiter(")> (}) + 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) stringcontent(=)inlinedelimiter(")> (}) 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(\))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(\))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(\))operator(+)integer(1)(]) operator(==) string(\)) 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(\))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(\))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(\))operator(+)integer(1)(]) keyword(if) operator(()ident(url) operator(==) string(\)) 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(()stringoperator(,) 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(()stringoperator(,) 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(()stringoperator(,) operator([)ident(a)operator(,)ident(b)operator(,)ident(c)operator(,)ident(d)operator(,)ident(e)operator(,)ident(f)operator(,)ident(g)(]\)) + ident(printf) operator(()stringoperator(,) 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(()stringoperator(,) 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(\)) 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(()stringoperator(,) 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 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?) +stringcontent( )inlinecontent(.meth text )inlineoperator(,) stringoperator(,) regexpoperator(,) string(\))(})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(//';) + +stringoperator(;) + +regexpcontent( )inlinecontent(.meth text )inlineoperator(,) stringoperator(,) regexpoperator(,) string(\))(})inline_delimiter(})>content( )char(\\t)content( text )char(\\n)content( text )char(\\uafaf)content( text )content(\\$)content(var )char(\\\\)inlinecontent( text )char(\\')char(\\")char(\\\\)char(\\/)content( )delimiter(/)>operator(;) + +ident(youcannotescape) operator(=) integer(0)operator(;) +ident(println)operator(()regexpdelimiter(/)>(\)) + +comment(// "\\/" Error?) +operator(~)stringcontent( )inlinecontent(.meth text )inlineoperator(,) stringoperator(,) regexpoperator(,) string(\))(})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(~)stringoperator(;) + +operator(~)regexpcontent( )inlinecontent(.meth text )inlineoperator(,) stringoperator(,) regexpoperator(,) string(\))(})inline_delimiter(})>content( )char(\\t)content( (text\) )char(\\n)content( text )char(\\uafaf)content( text )content(\\$)content(var )char(\\\\)inlinecontent( text )char(\\')char(\\")char(\\\\)char(\\/)content( )delimiter(/)>operator(;) + +ident(println)operator(()operator(~)regexpdelimiter(/)>(\)) + +ident(println) stringcontent(: )inline(})operator(.)ident(join)operator(()string(\))inline_delimiter(})>delimiter(")> + +stringcontent( )inlinecontent(.meth text )inlineoperator(,) stringoperator(,) regexpoperator(,) string(\))(})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 + 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 \'\"\\ \''' +''' + -- cgit v1.2.1