summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormurphy <murphy@rubychan.de>2009-01-22 13:56:35 +0000
committermurphy <murphy@rubychan.de>2009-01-22 13:56:35 +0000
commitc0e1923167357a6c210bcf0857f70a8a8fa4495f (patch)
treeb79d31de59944db851f2dcbd0f0230fe7b9bab53
parent80950dea864f51e0d4ad0aa58048ef603ae85ff9 (diff)
downloadcoderay-c0e1923167357a6c210bcf0857f70a8a8fa4495f.tar.gz
Updated Groovy Scanner (feature #60).
* Code inside ${...} is highlighted; works nested. * various minor bugfixes * Some string related problems remain. Groovy is strange!
-rw-r--r--lib/coderay/scanners/groovy.rb90
-rw-r--r--test/scanners/groovy/pleac.expected.raydebug1036
-rw-r--r--test/scanners/groovy/strange.expected.raydebug1
-rw-r--r--test/scanners/groovy/strange.in.groovy1
-rw-r--r--test/scanners/groovy/strings.expected.raydebug34
-rw-r--r--test/scanners/groovy/strings.in.groovy34
6 files changed, 645 insertions, 551 deletions
diff --git a/lib/coderay/scanners/groovy.rb b/lib/coderay/scanners/groovy.rb
index 5e76357..fd1a34b 100644
--- a/lib/coderay/scanners/groovy.rb
+++ b/lib/coderay/scanners/groovy.rb
@@ -10,7 +10,7 @@ module Scanners
# TODO: Check this!
KEYWORDS = Java::KEYWORDS + %w[
- def assert as in
+ as assert def in
]
KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
case instanceof new return throw typeof while as assert in
@@ -31,11 +31,13 @@ module Scanners
ESCAPE = / [bfnrtv$\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x # no 4-byte unicode chars? U[a-fA-F0-9]{8}
- REGEXP_ESCAPE = / [bBdDsSwW] /x
+ REGEXP_ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | \d | [bBdDsSwW\/] /x
+
+ # TODO: interpretation inside ', ", /
STRING_CONTENT_PATTERN = {
- "'" => /[^\\$'\n]+/,
+ "'" => /(?>\\[^\\'\n]+|[^\\'\n]+)+/,
'"' => /[^\\$"\n]+/,
- "'''" => /(?>[^\\$']+|'(?!''))+/,
+ "'''" => /(?>[^\\']+|'(?!''))+/,
'"""' => /(?>[^\\$"]+|"(?!""))+/,
'/' => /[^\\$\/\n]+/,
}
@@ -43,8 +45,10 @@ module Scanners
def scan_tokens tokens, options
state = :initial
+ inline_block_stack = []
+ inline_block_paren_depth = nil
string_delimiter = nil
- import_clause = class_name_follows = last_token_dot = after_def = false
+ import_clause = class_name_follows = last_token = after_def = false
value_expected = true
until eos?
@@ -60,7 +64,7 @@ module Scanners
tokens << [match, :space]
if match.index ?\n
import_clause = after_def = false
- value_expected = true
+ value_expected = true unless value_expected
end
next
@@ -79,7 +83,7 @@ module Scanners
elsif match = scan(/ #{IDENT} | \[\] /ox)
kind = IDENT_KIND[match]
value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
- if last_token_dot
+ if last_token == '.'
kind = :ident
elsif class_name_follows
kind = :class
@@ -87,7 +91,7 @@ module Scanners
elsif after_def && check(/\s*[({]/)
kind = :method
after_def = false
- elsif kind == :ident && check(/:/)
+ elsif kind == :ident && last_token != '?' && check(/:/)
kind = :key
else
class_name_follows = true if match == 'class' || (import_clause && match == 'as')
@@ -95,16 +99,6 @@ module Scanners
after_def = true if match == 'def'
end
- # TODO: ~'...', ~"..." and ~/.../ style regexps
- elsif scan(/ \.\.<? | \*?\.(?!\d)@? | \.& | \?:? | [,?:(\[] | -[->] | \+\+ |
- && | \|\| | \*\*=? | ==?~ | [-+*%^~&|<>=!]=? | <<<?=? | >>>?=? /x)
- value_expected = true
- after_def = false
- kind = :operator
-
- elsif scan(/ [)\]}]+ /x)
- value_expected = after_def = false
-
elsif scan(/;/)
import_clause = after_def = false
value_expected = true
@@ -114,6 +108,29 @@ module Scanners
class_name_follows = after_def = false
value_expected = true
kind = :operator
+ if !inline_block_stack.empty?
+ inline_block_paren_depth += 1
+ end
+
+ # TODO: ~'...', ~"..." and ~/.../ style regexps
+ elsif match = scan(/ \.\.<? | \*?\.(?!\d)@? | \.& | \?:? | [,?:(\[] | -[->] | \+\+ |
+ && | \|\| | \*\*=? | ==?~ | <=?>? | [-+*%^~&|>=!]=? | <<<?=? | >>>?=? /x)
+ value_expected = true
+ value_expected = :regexp if match == '~'
+ after_def = false
+ kind = :operator
+
+ elsif match = scan(/ [)\]}] /x)
+ value_expected = after_def = false
+ if !inline_block_stack.empty? && match == '}'
+ inline_block_paren_depth -= 1
+ if inline_block_paren_depth == 0 # closing brace of inline block reached
+ tokens << [match, :inline_delimiter]
+ tokens << [:close, :inline]
+ state, string_delimiter, inline_block_paren_depth = inline_block_stack.pop
+ next
+ end
+ end
elsif check(/[\d.]/)
after_def = value_expected = false
@@ -133,7 +150,8 @@ module Scanners
tokens << [:open, :string]
string_delimiter = match
kind = :delimiter
-
+
+ # TODO: record.'name'
elsif match = scan(/["']/)
after_def = value_expected = false
state = match == '/' ? :regexp : :string
@@ -141,7 +159,7 @@ module Scanners
string_delimiter = match
kind = :delimiter
- elsif value_expected && (match = scan(/\/(?=\S)/))
+ elsif value_expected && (match = scan(/\//))
after_def = value_expected = false
tokens << [:open, :regexp]
state = :regexp
@@ -166,9 +184,11 @@ module Scanners
when :string, :regexp, :multiline_string
if scan(STRING_CONTENT_PATTERN[string_delimiter])
kind = :content
+
elsif match = scan(state == :multiline_string ? /'''|"""/ : /["'\/]/)
tokens << [match, :delimiter]
if state == :regexp
+ # TODO: regexp modifiers? s, m, x, i?
modifiers = scan(/[ix]+/)
tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
end
@@ -179,13 +199,14 @@ module Scanners
state = :initial
next
- elsif state == :string && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
- if string_delimiter == "'" && !(match == "\\\\" || match == "\\'")
+ elsif (state == :string || state == :multiline_string) &&
+ (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
+ if string_delimiter[0] == "'" && !(match == "\\\\" || match == "\\'")
kind = :content
else
kind = :char
end
- elsif state == :regexp && scan(/ \\ (?: #{ESCAPE} | #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ elsif state == :regexp && scan(/ \\ (?: #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
kind = :char
elsif match = scan(/ \$ #{IDENT} /mox)
@@ -195,23 +216,26 @@ module Scanners
tokens << [match, IDENT_KIND[match]]
tokens << [:close, :inline]
next
- elsif match = scan(/ \$ \{ [^}]* \} /mox)
- # TODO: recursive inline strings
+ elsif match = scan(/ \$ \{ /x)
tokens << [:open, :inline]
tokens << ['${', :inline_delimiter]
- tokens << [match[2..-2], :ident]
- tokens << ['}', :inline_delimiter]
- tokens << [:close, :inline]
+ inline_block_stack << [state, string_delimiter, inline_block_paren_depth]
+ inline_block_paren_depth = 1
+ state = :initial
next
- elsif scan(/ \\. | \$ /mx)
+ elsif scan(/ \$ /mx)
+ kind = :content
+
+ elsif scan(/ \\. /mx)
kind = :content
- elsif scan(/ \\ | $ /x)
- tokens << [:close, :delimiter]
+ elsif scan(/ \\ | \n /x)
+ tokens << [:close, state]
kind = :error
after_def = value_expected = false
state = :initial
+
else
raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
end
@@ -228,13 +252,13 @@ module Scanners
end
raise_inspect 'Empty token', tokens unless match
- last_token_dot = match == '.'
+ last_token = match unless [:space, :comment, :doctype].include? kind
tokens << [match, kind]
end
- if [:string, :regexp].include? state
+ if [:multiline_string, :string, :regexp].include? state
tokens << [:close, state]
end
diff --git a/test/scanners/groovy/pleac.expected.raydebug b/test/scanners/groovy/pleac.expected.raydebug
index d66e50d..574d08f 100644
--- a/test/scanners/groovy/pleac.expected.raydebug
+++ b/test/scanners/groovy/pleac.expected.raydebug
@@ -62,7 +62,7 @@ ident(s) operator(=) keyword(new) pre_type(Scanner)operator(()ident(data)(\))
ident(s)operator(.)ident(findInLine)operator(()regexp<delimiter(/)content((.{5}\).{8}(.{5}\) (.{5}\) (.*\))delimiter(/)>(\))
ident(m) operator(=) ident(s)operator(.)ident(match)operator(()(\))
ident(fields) operator(=) type([])
-operator(()integer(1)operator(..)ident(m)operator(.)ident(groupCount)operator(()(\)\))operator(.)ident(each)operator({) ident(fields) operator(<)operator(<) ident(m)operator(.)ident(group)operator(()local_variable(it)(\)) (})
+operator(()integer(1)operator(..)ident(m)operator(.)ident(groupCount)operator(()(\))(\))operator(.)ident(each)operator({) ident(fields) operator(<)operator(<) ident(m)operator(.)ident(group)operator(()local_variable(it)(\)) (})
keyword(assert) ident(fields) operator(==) operator([)string<delimiter(')content(hippo)delimiter(')>operator(,) string<delimiter(')content(means)delimiter(')>operator(,) string<delimiter(')content(river)delimiter(')>operator(,) string<delimiter(')content(horse)delimiter(')>(])
comment(// another scanner example similar to the javadoc example)
@@ -122,7 +122,7 @@ keyword(assert) ident(unpack)operator(()string<delimiter(")content(x6 A6)delimit
comment(// forward 6, grab 2, backward 5, grab 2)
keyword(assert) ident(unpack)operator(()string<delimiter(")content(x6 A2 X5 A2)delimiter(")>operator(,) ident(string)(\)) operator(==) operator([)string<delimiter(')content(or)delimiter(')>operator(,) string<delimiter(')content(be)delimiter(')>(])
-keyword(assert) ident(cut2fmt)operator(()operator([)integer(8)operator(,) integer(14)operator(,) integer(20)operator(,) integer(26)operator(,) integer(30)(]\)) operator(==) string<delimiter(')content(A7 A6 A6 A6 A4 A*)delimiter(')>
+keyword(assert) ident(cut2fmt)operator(()operator([)integer(8)operator(,) integer(14)operator(,) integer(20)operator(,) integer(26)operator(,) integer(30)(])(\)) operator(==) string<delimiter(')content(A7 A6 A6 A6 A4 A*)delimiter(')>
comment(// utility method (derived from Java PLEAC version\))
keyword(def) method(unpack)operator(()pre_type(String) ident(format)operator(,) pre_type(String) ident(data)(\)) operator({)
@@ -145,12 +145,12 @@ keyword(def) method(unpack)operator(()pre_type(String) ident(format)operator(,)
keyword(case) string<delimiter(')content(A)delimiter(')>operator(:)
keyword(if) operator(()ident(count) operator(==) operator(-)integer(1)(\)) operator({)
ident(start) operator(=) operator([)ident(dataOffset)operator(,) ident(maxDataOffset)(])operator(.)ident(min)operator(()(\))
- ident(result)operator(.)ident(add)operator(()ident(data)operator([)ident(start)operator(..)operator(-)integer(1)(]\))
+ ident(result)operator(.)ident(add)operator(()ident(data)operator([)ident(start)operator(..)operator(-)integer(1)(])(\))
ident(dataOffset) operator(=) ident(maxDataOffset)
(}) keyword(else) operator({)
ident(start) operator(=) operator([)ident(dataOffset)operator(,) ident(maxDataOffset)(])operator(.)ident(min)operator(()(\))
ident(end) operator(=) operator([)ident(dataOffset) operator(+) ident(count)operator(,) ident(maxDataOffset)(])operator(.)ident(min)operator(()(\))
- ident(result)operator(.)ident(add)operator(()ident(data)operator([)ident(start)operator(..<)ident(end)(]\))
+ ident(result)operator(.)ident(add)operator(()ident(data)operator([)ident(start)operator(..<)ident(end)(])(\))
ident(dataOffset) operator(+=) ident(count)
(})
keyword(break)
@@ -250,9 +250,9 @@ keyword(assert) keyword(new) pre_type(String)operator(()ident(ascii)(\)) operato
keyword(assert) keyword(new) pre_type(String)operator(()operator([)integer(115)operator(,) integer(97)operator(,) integer(109)operator(,) integer(112)operator(,) integer(108)operator(,) integer(101)(]) keyword(as) type(char)type([])(\)) operator(==) string<delimiter(")content(sample)delimiter(")>
comment(// convert 'HAL' to 'IBM' (in increasing order of Grooviness\))
-keyword(assert) string<delimiter(")content(HAL)delimiter(")>operator(.)ident(toCharArray)operator(()(\))operator(.)ident(collect)operator({)keyword(new) pre_type(String)operator(()local_variable(it)operator(+)integer(1) keyword(as) type(char)type([])(\)})operator(.)ident(join)operator(()(\)) operator(==) string<delimiter(')content(IBM)delimiter(')>
-keyword(assert) operator(()string<delimiter(")content(HAL)delimiter(")> keyword(as) pre_type(String)type([])(\))operator(.)ident(collect)operator({)local_variable(it)operator(.)ident(next)operator(()(\)})operator(.)ident(join)operator(()(\)) operator(==) string<delimiter(')content(IBM)delimiter(')>
-keyword(assert) string<delimiter(")content(HAL)delimiter(")>operator(.)ident(replaceAll)operator(()string<delimiter(')content(.)delimiter(')>operator(,) operator({)local_variable(it)operator(.)ident(next)operator(()(\)}\)) operator(==) string<delimiter(')content(IBM)delimiter(')>
+keyword(assert) string<delimiter(")content(HAL)delimiter(")>operator(.)ident(toCharArray)operator(()(\))operator(.)ident(collect)operator({)keyword(new) pre_type(String)operator(()local_variable(it)operator(+)integer(1) keyword(as) type(char)type([])(\))(})operator(.)ident(join)operator(()(\)) operator(==) string<delimiter(')content(IBM)delimiter(')>
+keyword(assert) operator(()string<delimiter(")content(HAL)delimiter(")> keyword(as) pre_type(String)type([])(\))operator(.)ident(collect)operator({)local_variable(it)operator(.)ident(next)operator(()(\))(})operator(.)ident(join)operator(()(\)) operator(==) string<delimiter(')content(IBM)delimiter(')>
+keyword(assert) string<delimiter(")content(HAL)delimiter(")>operator(.)ident(replaceAll)operator(()string<delimiter(')content(.)delimiter(')>operator(,) operator({)local_variable(it)operator(.)ident(next)operator(()(\))(})(\)) operator(==) string<delimiter(')content(IBM)delimiter(')>
comment(//----------------------------------------------------------------------------------)
comment(// @@PLEAC@@_1.5)
@@ -266,7 +266,7 @@ comment(// CheckSum.groovy: Compute 16-bit checksum of input file)
comment(// Usage: groovy CheckSum <file>)
comment(// script:)
ident(checksum) operator(=) integer(0)
-keyword(new) pre_type(File)operator(()ident(args)operator([)integer(0)(]\))operator(.)ident(eachByte)operator({) ident(checksum) operator(+=) local_variable(it) (})
+keyword(new) pre_type(File)operator(()ident(args)operator([)integer(0)(])(\))operator(.)ident(eachByte)operator({) ident(checksum) operator(+=) local_variable(it) (})
ident(checksum) operator(%=) operator(()type(int)(\)) pre_type(Math)operator(.)ident(pow)operator(()integer(2)operator(,) integer(16)(\)) operator(-) integer(1)
ident(println) ident(checksum)
comment(//----------------------------------------------------------------------------------)
@@ -278,7 +278,7 @@ comment(// Slowcat.groovy: Emulate a s l o w line printer)
comment(// Usage: groovy Slowcat <file> <delay_millis_between_each_char>)
comment(// script:)
ident(delay) operator(=) ident(args)operator([)integer(1)(])operator(.)ident(toInteger)operator(()(\))
-keyword(new) pre_type(File)operator(()ident(args)operator([)integer(0)(]\))operator(.)ident(eachByte)operator({) ident(print) operator(()operator(()type(char)(\)) local_variable(it)(\))operator(;) pre_type(Thread)operator(.)ident(sleep)operator(()ident(delay)(\)) (})
+keyword(new) pre_type(File)operator(()ident(args)operator([)integer(0)(])(\))operator(.)ident(eachByte)operator({) ident(print) operator(()operator(()type(char)(\)) local_variable(it)(\))operator(;) pre_type(Thread)operator(.)ident(sleep)operator(()ident(delay)(\)) (})
comment(//----------------------------------------------------------------------------------)
comment(// @@PLEAC@@_1.6)
@@ -296,12 +296,12 @@ comment(//----------------------------------------------------------------------
comment(// @@PLEAC@@_1.7)
comment(//----------------------------------------------------------------------------------)
-ident(s1) operator(=) string<delimiter(')content(abc)content(\\t)content( def)content(\\t)content(ghi )content(\\n)content(\\t)content(x)delimiter(')>
-ident(s2) operator(=) string<delimiter(')content(abc def ghi )content(\\n)content( x)delimiter(')>
+ident(s1) operator(=) string<delimiter(')content(abc\\t def\\tghi \\n\\tx)delimiter(')>
+ident(s2) operator(=) string<delimiter(')content(abc def ghi \\n x)delimiter(')>
keyword(def) method(expand)operator(()ident(s)(\)) operator({)
ident(s)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(toList)operator(()(\))operator(.)ident(collect)operator({)
ident(line) operator(=) local_variable(it)
- keyword(while) operator(()ident(line)operator(.)ident(contains)operator(()string<delimiter(')content(\\t)delimiter(')>(\)\)) operator({)
+ keyword(while) operator(()ident(line)operator(.)ident(contains)operator(()string<delimiter(')content(\\t)delimiter(')>(\))(\)) operator({)
ident(line) operator(=) ident(line)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(([^)char(\\t)content(]*\)()char(\\t)content(\)(.*\))delimiter(/)>(\))operator({)
ident(all)operator(,)ident(pre)operator(,)ident(tab)operator(,)ident(suf) operator(->) ident(pre) operator(+) string<delimiter(')content( )delimiter(')> operator(*) operator(()integer(8) operator(-) ident(pre)operator(.)ident(size)operator(()(\)) operator(%) integer(8)(\)) operator(+) ident(suf)
(})
@@ -315,7 +315,7 @@ keyword(def) method(unexpand)operator(()ident(s)(\)) operator({)
keyword(for) operator(()ident(i) keyword(in) ident(line)operator(.)ident(size)operator(()(\))operator(-)integer(1)operator(..)integer(1)(\)) operator({)
keyword(if) operator(()ident(i) operator(%) integer(8) operator(==) integer(0)(\)) operator({)
ident(prefix) operator(=) ident(line)operator([)integer(0)operator(..<)ident(i)(])
- keyword(if) operator(()ident(prefix)operator(.)ident(trim)operator(()(\))operator(.)ident(size)operator(()(\)) operator(!=) ident(prefix)operator(.)ident(size)operator(()(\)\)) operator({)
+ keyword(if) operator(()ident(prefix)operator(.)ident(trim)operator(()(\))operator(.)ident(size)operator(()(\)) operator(!=) ident(prefix)operator(.)ident(size)operator(()(\))(\)) operator({)
ident(line) operator(=) ident(prefix)operator(.)ident(trim)operator(()(\)) operator(+) string<delimiter(')content(\\t)delimiter(')> operator(+) ident(line)operator([)ident(i)operator(..)operator(-)integer(1)(])
(})
(})
@@ -335,17 +335,17 @@ keyword(assert) string<delimiter(")content(You owe )inline<inline_delimiter($)id
ident(rows) operator(=) integer(24)operator(;) ident(cols) operator(=) integer(80)
keyword(assert) string<delimiter(")content(I am )inline<inline_delimiter($)ident(rows)>content( high and )inline<inline_delimiter($)ident(cols)>content( wide)delimiter(")> operator(==) string<delimiter(')content(I am 24 high and 80 wide)delimiter(')>
-keyword(assert) string<delimiter(')content(I am 17 years old)delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\d)content(+)delimiter(/)>operator(,) operator({)integer(2)operator(*)local_variable(it)operator(.)ident(toInteger)operator(()(\)}\)) operator(==) string<delimiter(')content(I am 34 years old)delimiter(')>
+keyword(assert) string<delimiter(')content(I am 17 years old)delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\d)content(+)delimiter(/)>operator(,) operator({)integer(2)operator(*)local_variable(it)operator(.)ident(toInteger)operator(()(\))(})(\)) operator(==) string<delimiter(')content(I am 34 years old)delimiter(')>
comment(//----------------------------------------------------------------------------------)
comment(// @@PLEAC@@_1.9)
comment(//----------------------------------------------------------------------------------)
keyword(assert) string<delimiter(")content(bo peep)delimiter(")>operator(.)ident(toUpperCase)operator(()(\)) operator(==) string<delimiter(')content(BO PEEP)delimiter(')>
keyword(assert) string<delimiter(')content(JOHN)delimiter(')>operator(.)ident(toLowerCase)operator(()(\)) operator(==) string<delimiter(')content(john)delimiter(')>
-keyword(def) method(capitalize)operator(()ident(s)(\)) operator({)ident(s)operator([)integer(0)(])operator(.)ident(toUpperCase)operator(()(\)) operator(+) operator(()ident(s)operator(.)ident(size)operator(()(\))operator(<)integer(2) operator(?) string<delimiter(')delimiter(')> operator(:) ident(s)operator([)integer(1)operator(..)operator(-)integer(1)(])operator(?)operator(.)ident(toLowerCase)operator(()(\)\)})
+keyword(def) method(capitalize)operator(()ident(s)(\)) operator({)ident(s)operator([)integer(0)(])operator(.)ident(toUpperCase)operator(()(\)) operator(+) operator(()ident(s)operator(.)ident(size)operator(()(\))operator(<)integer(2) operator(?) string<delimiter(')delimiter(')> operator(:) ident(s)operator([)integer(1)operator(..)operator(-)integer(1)(])operator(?)operator(.)ident(toLowerCase)operator(()(\))(\))(})
keyword(assert) ident(capitalize)operator(()string<delimiter(')content(joHn)delimiter(')>(\)) operator(==) string<delimiter(')content(John)delimiter(')>
-ident(s) operator(=) string<delimiter(")content(thIS is a loNG liNE)delimiter(")>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\w)content(+)delimiter(/)>(\))operator({)ident(capitalize)operator(()local_variable(it)(\)})
+ident(s) operator(=) string<delimiter(")content(thIS is a loNG liNE)delimiter(")>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\w)content(+)delimiter(/)>(\))operator({)ident(capitalize)operator(()local_variable(it)(\))(})
keyword(assert) ident(s) operator(==) string<delimiter(')content(This Is A Long Line)delimiter(')>
ident(s1) operator(=) string<delimiter(')content(JOhn)delimiter(')>operator(;) ident(s2) operator(=) string<delimiter(')content(joHN)delimiter(')>
@@ -360,7 +360,7 @@ comment(//----------------------------------------------------------------------
comment(// @@PLEAC@@_1.10)
comment(//----------------------------------------------------------------------------------)
ident(n) operator(=) integer(10)
-keyword(assert) string<delimiter(")content(I have )inline<inline_delimiter(${)ident(n+1)inline_delimiter(})>content( guanacos.)delimiter(")> operator(==) string<delimiter(')content(I have 11 guanacos.)delimiter(')>
+keyword(assert) string<delimiter(")content(I have )inline<inline_delimiter(${)ident(n)operator(+)integer(1)inline_delimiter(})>content( guanacos.)delimiter(")> operator(==) string<delimiter(')content(I have 11 guanacos.)delimiter(')>
keyword(assert) string<delimiter(")content(I have )delimiter(")> operator(+) operator(()ident(n)operator(+)integer(1)(\)) operator(+) string<delimiter(")content( guanacos.)delimiter(")> operator(==) string<delimiter(')content(I have 11 guanacos.)delimiter(')>
comment(// sending templated email is solved in two parts: templating and sending)
@@ -370,12 +370,12 @@ keyword(def) method(get_manager_list)operator(()ident(s)(\)) operator({) string<
ident(msg) operator(=) string<delimiter(""")content(
To: )inline<inline_delimiter($)ident(naughty)>content(
From: Your Bank
-Cc: )inline<inline_delimiter(${)ident( get_manager_list(naughty\) )inline_delimiter(})>content(
-Date: )inline<inline_delimiter(${)ident( new Date(\) )inline_delimiter(})>content(
+Cc: )inline<inline_delimiter(${) ident(get_manager_list)operator(()ident(naughty)(\)) inline_delimiter(})>content(
+Date: )inline<inline_delimiter(${) keyword(new) pre_type(Date)operator(()(\)) inline_delimiter(})>content(
Dear )inline<inline_delimiter($)ident(naughty)>content(,
-Today, you bounced check number )inline<inline_delimiter(${)ident( 500 + new Random(\).nextInt(100\) )inline_delimiter(})>content( to us.
+Today, you bounced check number )inline<inline_delimiter(${) integer(500) operator(+) keyword(new) pre_type(Random)operator(()(\))operator(.)ident(nextInt)operator(()integer(100)(\)) inline_delimiter(})>content( to us.
Your account is now closed.
Sincerely,
@@ -395,7 +395,7 @@ Your account is now closed.
Sincerely,
the management
)delimiter(''')>
-ident(sanitized) operator(=) ident(msg)operator(.)ident(replaceAll)operator(()string<delimiter(')content((?m\)^Date: (.*\))content($)delimiter(')>operator(,)string<delimiter(')content(Date: XXX)delimiter(')>(\))
+ident(sanitized) operator(=) ident(msg)operator(.)ident(replaceAll)operator(()string<delimiter(')content((?m\)^Date: (.*\)$)delimiter(')>operator(,)string<delimiter(')content(Date: XXX)delimiter(')>(\))
ident(sanitized) operator(=) ident(sanitized)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?m\)check number ()char(\\d)content(+\) to)delimiter(/)>operator(,)string<delimiter(')content(check number XXX to)delimiter(')>(\))
keyword(assert) ident(sanitized) operator(==) ident(expected)
comment(// note: Groovy also has several additional built-in templating facilities)
@@ -465,11 +465,11 @@ comment(// @@PLEAC@@_1.13)
comment(//----------------------------------------------------------------------------------)
ident(string) operator(=) regexp<delimiter(/)content(Mom said, "Don't do that.")delimiter(/)>
comment(// backslash special chars)
-keyword(assert) ident(string)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(['"])delimiter(/)>(\))operator({)regexp<delimiter(/)char(\\\\)delimiter(/)>operator(+)local_variable(it)operator([)integer(0)(]}) operator(==) regexp<delimiter(/)content(Mom said, )char(\\")content(Don)char(\\')content(t do that.)char(\\")delimiter(/)> comment(//')
+keyword(assert) ident(string)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(['"])delimiter(/)>(\))operator({)regexp<delimiter(/)char(\\\\)delimiter(/)>operator(+)local_variable(it)operator([)integer(0)(])(}) operator(==) regexp<delimiter(/)content(Mom said, )char(\\")content(Don)char(\\')content(t do that.)char(\\")delimiter(/)> comment(//')
comment(// double special chars)
-keyword(assert) ident(string)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(['"])delimiter(/)>(\))operator({)local_variable(it)operator([)integer(0)(])operator(+)local_variable(it)operator([)integer(0)(]}) operator(==) regexp<delimiter(/)content(Mom said, ""Don''t do that."")delimiter(/)> comment(//')
+keyword(assert) ident(string)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(['"])delimiter(/)>(\))operator({)local_variable(it)operator([)integer(0)(])operator(+)local_variable(it)operator([)integer(0)(])(}) operator(==) regexp<delimiter(/)content(Mom said, ""Don''t do that."")delimiter(/)> comment(//')
comment(//backslash quote all non-capital letters)
-keyword(assert) string<delimiter(")content(DIR /?)delimiter(")>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content([^A-Z])delimiter(/)>(\))operator({)regexp<delimiter(/)char(\\\\)delimiter(/)>operator(+)local_variable(it)operator([)integer(0)(]}) operator(==) regexp<delimiter(/)content(DIR)content(\\ )content(\\/)content(\\?)delimiter(/)>
+keyword(assert) string<delimiter(")content(DIR /?)delimiter(")>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content([^A-Z])delimiter(/)>(\))operator({)regexp<delimiter(/)char(\\\\)delimiter(/)>operator(+)local_variable(it)operator([)integer(0)(])(}) operator(==) regexp<delimiter(/)content(DIR)content(\\ )char(\\/)content(\\?)delimiter(/)>
comment(//----------------------------------------------------------------------------------)
comment(// @@PLEAC@@_1.14)
@@ -477,7 +477,7 @@ comment(//----------------------------------------------------------------------
keyword(assert) string<delimiter(')content( x )delimiter(')>operator(.)ident(trim)operator(()(\)) operator(==) string<delimiter(')content(x)delimiter(')>
comment(// print what's typed, but surrounded by >< symbols)
comment(// script:)
-keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\)\))operator(.)ident(eachLine)operator({)
+keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\))(\))operator(.)ident(eachLine)operator({)
ident(println)operator(()string<delimiter(")content(>)delimiter(")> operator(+) local_variable(it)operator(.)ident(trim)operator(()(\)) operator(+) string<delimiter(")content(<)delimiter(")>(\))operator(;)
(})
comment(//----------------------------------------------------------------------------------)
@@ -489,8 +489,8 @@ ident(line) operator(=) regexp<delimiter(/)content(XYZZY,"","O'Reilly, Inc","Wal
ident(m) operator(=) ident(line) operator(=~) ident(pattern)
ident(expected) operator(=) operator([)regexp<delimiter(/)content(XYZZY)delimiter(/)>operator(,) string<delimiter(')delimiter(')>operator(,) regexp<delimiter(/)content(O'Reilly, Inc)delimiter(/)>operator(,) regexp<delimiter(/)content(Wall, Larry)delimiter(/)>operator(,) comment(//')
regexp<delimiter(/)content(a )char(\\")content(glug)char(\\")content( bit,)delimiter(/)>operator(,) regexp<delimiter(/)content(5)delimiter(/)>operator(,) regexp<delimiter(/)content(Error, Core Dumped)delimiter(/)>(])
-keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(m)operator(.)ident(size)operator(()(\))operator(.)ident(toInteger)operator(()(\)\))
- keyword(assert) ident(expected)operator([)ident(i)(]) operator(==) operator(()ident(m)operator([)ident(i)(])operator([)integer(2)(]) operator(?) ident(m)operator([)ident(i)(])operator([)integer(2)(]) operator(:) ident(m)operator([)ident(i)(])operator([)integer(1)(]\))
+keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(m)operator(.)ident(size)operator(()(\))operator(.)ident(toInteger)operator(()(\))(\))
+ keyword(assert) ident(expected)operator([)ident(i)(]) operator(==) operator(()ident(m)operator([)ident(i)(])operator([)integer(2)(]) operator(?) ident(m)operator([)ident(i)(])operator([)integer(2)(]) operator(:) ident(m)operator([)ident(i)(])operator([)integer(1)(])(\))
comment(//----------------------------------------------------------------------------------)
@@ -546,11 +546,11 @@ ident(select2) operator(=) string<delimiter(''')content(
)delimiter(''')>
comment(// line below must be configured for your unix - this one's cygwin)
-ident(format) operator(=) ident(cut2fmt)operator(()operator([)integer(10)operator(,) integer(18)operator(,) integer(26)operator(,) integer(37)operator(,) integer(42)operator(,) integer(47)operator(,) integer(56)(]\))
+ident(format) operator(=) ident(cut2fmt)operator(()operator([)integer(10)operator(,) integer(18)operator(,) integer(26)operator(,) integer(37)operator(,) integer(42)operator(,) integer(47)operator(,) integer(56)(])(\))
keyword(def) method(psgrep)operator(()ident(s)(\)) operator({)
ident(out) operator(=) type([])
ident(lines) operator(=) ident(input)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({) local_variable(it)operator(.)ident(size)operator(()(\)) (})
- ident(vars) operator(=) ident(unpack)operator(()ident(format)operator(,) ident(lines)operator([)integer(0)(]\))operator(.)ident(toList)operator(()(\))operator(.)ident(collect)operator({) local_variable(it)operator(.)ident(toLowerCase)operator(()(\))operator(.)ident(trim)operator(()(\)) (})
+ ident(vars) operator(=) ident(unpack)operator(()ident(format)operator(,) ident(lines)operator([)integer(0)(])(\))operator(.)ident(toList)operator(()(\))operator(.)ident(collect)operator({) local_variable(it)operator(.)ident(toLowerCase)operator(()(\))operator(.)ident(trim)operator(()(\)) (})
ident(out) operator(+=) ident(lines)operator([)integer(0)(])
ident(lines)operator([)integer(1)operator(..)operator(-)integer(1)(])operator(.)ident(each)operator({)
ident(values) operator(=) ident(unpack)operator(()ident(format)operator(,) local_variable(it)(\))operator(.)ident(toList)operator(()(\))operator(.)ident(collect)operator({)
@@ -561,14 +561,14 @@ keyword(def) method(psgrep)operator(()ident(s)(\)) operator({)
(})
(})
ident(vars)operator(.)ident(eachWithIndex)operator({) ident(var)operator(,) ident(i) operator(->)
- ident(binding)operator(.)ident(setVariable)operator(()ident(var)operator(,) ident(values)operator([)ident(i)(]\))
+ ident(binding)operator(.)ident(setVariable)operator(()ident(var)operator(,) ident(values)operator([)ident(i)(])(\))
(})
- keyword(if) operator(()keyword(new) ident(GroovyShell)operator(()ident(binding)(\))operator(.)ident(evaluate)operator(()ident(s)(\)\)) ident(out) operator(+=) local_variable(it)
+ keyword(if) operator(()keyword(new) ident(GroovyShell)operator(()ident(binding)(\))operator(.)ident(evaluate)operator(()ident(s)(\))(\)) ident(out) operator(+=) local_variable(it)
(})
keyword(return) string<delimiter(')content(\\n)delimiter(')> operator(+) ident(out)operator(.)ident(join)operator(()string<delimiter(')content(\\n)delimiter(')>(\)) operator(+) string<delimiter(')content(\\n)delimiter(')>
(})
keyword(assert) ident(psgrep)operator(()string<delimiter(')content(winpid < 800)delimiter(')>(\)) operator(==) ident(select1)
-keyword(assert) ident(psgrep)operator(()string<delimiter(')content(uid % 5 == 0 && command =~ /sh)content($)content(/)delimiter(')>(\)) operator(==) ident(select2)
+keyword(assert) ident(psgrep)operator(()string<delimiter(')content(uid % 5 == 0 && command =~ /sh$/)delimiter(')>(\)) operator(==) ident(select2)
comment(// Part 2: obtaining text stream from process)
comment(// unixScript:)
ident(input) operator(=) string<delimiter(')content(ps)delimiter(')>operator(.)ident(execute)operator(()(\))operator(.)ident(text)
@@ -694,7 +694,7 @@ type(class) class(IntegerCategory) operator({)
keyword(def) ident(ustr) operator(=) ident(input)operator(.)ident(toUpperCase)operator(()(\))
type(int) ident(sum) operator(=) integer(0)
ident(romanMap)operator(.)ident(keySet)operator(()(\))operator(.)ident(sort)operator(()(\))operator(.)ident(reverse)operator(()(\))operator(.)ident(each)operator({) ident(key) operator(->)
- keyword(while) operator(()ident(ustr)operator(.)ident(startsWith)operator(()ident(romanMap)operator([)ident(key)(]\)\)) operator({)
+ keyword(while) operator(()ident(ustr)operator(.)ident(startsWith)operator(()ident(romanMap)operator([)ident(key)(])(\))(\)) operator({)
ident(sum) operator(+=) ident(key)
ident(ustr) operator(-=) ident(romanMap)operator([)ident(key)(])
(})
@@ -722,8 +722,8 @@ integer(100)operator(.)ident(times)operator({)
keyword(assert) ident(next) operator(<) integer(76)
(})
ident(chars) operator(=) type([])
-operator([)string<delimiter(')content(A)delimiter(')>operator(..)string<delimiter(')content(Z)delimiter(')>operator(,)string<delimiter(')content(a)delimiter(')>operator(..)string<delimiter(')content(z)delimiter(')>operator(,)string<delimiter(')content(0)delimiter(')>operator(..)string<delimiter(')content(9)delimiter(')>operator(,)operator(()string<delimiter(')content(!@)content($)content(%^&*)delimiter(')> keyword(as) pre_type(String)type([])(\))operator(.)ident(toList)operator(()(\)])operator(.)ident(each)operator({)ident(chars) operator(+=) local_variable(it)(})
-ident(password) operator(=) operator(()integer(1)operator(..)integer(8)(\))operator(.)ident(collect)operator({) ident(chars)operator([)ident(random)operator(.)ident(nextInt)operator(()ident(chars)operator(.)ident(size)operator(()(\)\)]) (})operator(.)ident(join)operator(()(\))
+operator([)string<delimiter(')content(A)delimiter(')>operator(..)string<delimiter(')content(Z)delimiter(')>operator(,)string<delimiter(')content(a)delimiter(')>operator(..)string<delimiter(')content(z)delimiter(')>operator(,)string<delimiter(')content(0)delimiter(')>operator(..)string<delimiter(')content(9)delimiter(')>operator(,)operator(()string<delimiter(')content(!@$%^&*)delimiter(')> keyword(as) pre_type(String)type([])(\))operator(.)ident(toList)operator(()(\))(])operator(.)ident(each)operator({)ident(chars) operator(+=) local_variable(it)(})
+ident(password) operator(=) operator(()integer(1)operator(..)integer(8)(\))operator(.)ident(collect)operator({) ident(chars)operator([)ident(random)operator(.)ident(nextInt)operator(()ident(chars)operator(.)ident(size)operator(()(\))(\))(]) (})operator(.)ident(join)operator(()(\))
keyword(assert) ident(password)operator(.)ident(size)operator(()(\)) operator(==) integer(8)
comment(//----------------------------------------------------------------------------------)
@@ -758,7 +758,7 @@ ident(mean) operator(=) integer(25)
ident(sdev) operator(=) integer(2)
ident(salary) operator(=) ident(random)operator(.)ident(nextGaussian)operator(()(\)) operator(*) ident(sdev) operator(+) ident(mean)
comment(// script:)
-ident(printf) string<delimiter(')content(You have been hired at )content(\\$)content(%.2f)delimiter(')>operator(,) ident(salary)
+ident(printf) string<delimiter(')content(You have been hired at \\$%.2f)delimiter(')>operator(,) ident(salary)
comment(// => You have been hired at $25.05)
comment(//----------------------------------------------------------------------------------)
@@ -804,10 +804,10 @@ ident(matrix2) operator(=) keyword(new) ident(Matrix)operator(()operator([)
operator([)integer(8)operator(,) integer(1)(])
(]) keyword(as) type(double)type([])type([])(\))
-ident(expectedArray) operator(=) operator([)operator([)float(54.0)operator(,) float(30.0)(])operator(,) operator([)float(165.0)operator(,) float(70.0)(]]) keyword(as) type(double)type([])type([])
+ident(expectedArray) operator(=) operator([)operator([)float(54.0)operator(,) float(30.0)(])operator(,) operator([)float(165.0)operator(,) float(70.0)(])(]) keyword(as) type(double)type([])type([])
ident(productArray) operator(=) ident(matrix1)operator(.)ident(times)operator(()ident(matrix2)(\))operator(.)ident(array)
-keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(productArray)operator(.)ident(size)operator(()(\)\)) operator({)
+keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(productArray)operator(.)ident(size)operator(()(\))(\)) operator({)
keyword(assert) ident(productArray)operator([)ident(i)(]) operator(==) ident(expectedArray)operator([)ident(i)(])
(})
comment(//----------------------------------------------------------------------------------)
@@ -830,7 +830,7 @@ keyword(assert) pre_type(Integer)operator(.)ident(parseInt)operator(()string<del
comment(//----------------------------------------------------------------------------------)
comment(// conversionScript:)
ident(print) string<delimiter(')content(Gimme a number in decimal, octal, or hex: )delimiter(')>
-ident(reader) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\)\))
+ident(reader) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\))(\))
ident(input) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\))operator(.)ident(trim)operator(()(\))
keyword(switch)operator(()ident(input)(\)) operator({)
keyword(case) operator(~)string<delimiter(')content(^0x)char(\\\\)content(d+)delimiter(')>operator(:)
@@ -844,7 +844,7 @@ ident(println) string<delimiter(')content(Decimal value: )delimiter(')> operator
comment(// permissionScript:)
ident(print) string<delimiter(')content(Enter file permission in octal: )delimiter(')>
-ident(input) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\)\))
+ident(input) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\))(\))
ident(num) operator(=) ident(input)operator(.)ident(readLine)operator(()(\))operator(.)ident(trim)operator(()(\))
ident(permission) operator(=) pre_type(Integer)operator(.)ident(parseInt)operator(()ident(num)operator(,) integer(8)(\))
ident(println) string<delimiter(')content(Decimal value: )delimiter(')> operator(+) ident(permission)
@@ -863,7 +863,7 @@ keyword(assert) string<delimiter(')content(It took 2 hours)delimiter(')> operato
comment(// you can also use Java's ChoiceFormat)
comment(// overkill for this example but extensible and compatible with MessageFormat)
-ident(limits) operator(=) operator([)integer(1)operator(,) pre_type(ChoiceFormat)operator(.)ident(nextDouble)operator(()integer(1)(\)]) keyword(as) type(double)type([])
+ident(limits) operator(=) operator([)integer(1)operator(,) pre_type(ChoiceFormat)operator(.)ident(nextDouble)operator(()integer(1)(\))(]) keyword(as) type(double)type([])
ident(names) operator(=) operator([)string<delimiter(')content(century)delimiter(')>operator(,) string<delimiter(')content(centuries)delimiter(')>(]) keyword(as) pre_type(String)type([])
ident(choice) operator(=) keyword(new) pre_type(ChoiceFormat)operator(()ident(limits)operator(,) ident(names)(\))
ident(numCenturies) operator(=) integer(1)
@@ -883,7 +883,7 @@ comment(//----------------------------------------------------------------------
comment(// calculating prime factors)
keyword(def) method(factorize)operator(()pre_type(BigInteger) ident(orig)(\)) operator({)
ident(factors) operator(=) operator([)operator(:)(])
- keyword(def) ident(addFactor) operator(=) operator({) ident(x) operator(->) keyword(if) operator(()ident(factors)operator([)ident(x)(]\)) ident(factors)operator([)ident(x)(]) operator(+=) integer(1) keyword(else) ident(factors)operator([)ident(x)(]) operator(=) integer(1) (})
+ keyword(def) ident(addFactor) operator(=) operator({) ident(x) operator(->) keyword(if) operator(()ident(factors)operator([)ident(x)(])(\)) ident(factors)operator([)ident(x)(]) operator(+=) integer(1) keyword(else) ident(factors)operator([)ident(x)(]) operator(=) integer(1) (})
ident(n) operator(=) ident(orig)
ident(i) operator(=) integer(2)
ident(sqi) operator(=) integer(4) comment(// square of i)
@@ -896,7 +896,7 @@ keyword(def) method(factorize)operator(()pre_type(BigInteger) ident(orig)(\)) op
ident(sqi) operator(+=) integer(2) operator(*) ident(i) operator(+) integer(1)
ident(i) operator(+=) integer(1)
(})
- keyword(if) operator(()operator(()ident(n) operator(!=) integer(1)(\)) operator(&&) operator(()ident(n) operator(!=) ident(orig)(\)\)) ident(addFactor) ident(n)
+ keyword(if) operator(()operator(()ident(n) operator(!=) integer(1)(\)) operator(&&) operator(()ident(n) operator(!=) ident(orig)(\))(\)) ident(addFactor) ident(n)
keyword(return) ident(factors)
(})
@@ -911,9 +911,9 @@ keyword(def) method(pretty)operator(()ident(factors)(\)) operator({)
keyword(return) ident(sb)operator(.)ident(toString)operator(()(\))operator(.)ident(trim)operator(()(\))
(})
-keyword(assert) ident(pretty)operator(()ident(factorize)operator(()integer(2178)(\)\)) operator(==) string<delimiter(')content(2 3**2 11**2)delimiter(')>
-keyword(assert) ident(pretty)operator(()ident(factorize)operator(()integer(39887)(\)\)) operator(==) string<delimiter(')content(PRIME)delimiter(')>
-keyword(assert) ident(pretty)operator(()ident(factorize)operator(()integer(239322000000000000000000)(\)\)) operator(==) string<delimiter(')content(2**19 3 5**18 39887)delimiter(')>
+keyword(assert) ident(pretty)operator(()ident(factorize)operator(()integer(2178)(\))(\)) operator(==) string<delimiter(')content(2 3**2 11**2)delimiter(')>
+keyword(assert) ident(pretty)operator(()ident(factorize)operator(()integer(39887)(\))(\)) operator(==) string<delimiter(')content(PRIME)delimiter(')>
+keyword(assert) ident(pretty)operator(()ident(factorize)operator(()integer(239322000000000000000000)(\))(\)) operator(==) string<delimiter(')content(2**19 3 5**18 39887)delimiter(')>
comment(//----------------------------------------------------------------------------------)
comment(// @@PLEAC@@_3.0)
@@ -970,7 +970,7 @@ ident(println)operator(()string<delimiter(')content(Dateline: )delimiter(')>
operator(+) ident(cal)operator(.)ident(get)operator(()pre_type(Calendar)operator(.)ident(SECOND)(\)) operator(+) string<delimiter(')content(-)delimiter(')>
operator(+) ident(cal)operator(.)ident(get)operator(()pre_type(Calendar)operator(.)ident(YEAR)(\)) operator(+) string<delimiter(')content(/)delimiter(')>
operator(+) operator(()ident(cal)operator(.)ident(get)operator(()pre_type(Calendar)operator(.)ident(MONTH)(\)) operator(+) integer(1)(\)) operator(+) string<delimiter(')content(/)delimiter(')>
- operator(+) ident(cal)operator(.)ident(get)operator(()pre_type(Calendar)operator(.)ident(DATE)(\)\))
+ operator(+) ident(cal)operator(.)ident(get)operator(()pre_type(Calendar)operator(.)ident(DATE)(\))(\))
comment(// => Dateline: 7:33:16-2007/1/1)
comment(//----------------------------------------------------------------------------------)
@@ -984,7 +984,7 @@ type(long) ident(before) operator(=) ident(time) operator(-) ident(difference)
comment(// any field of a calendar is incrementable via add(\) and roll(\) methods)
ident(cal) operator(=) pre_type(Calendar)operator(.)ident(instance)
ident(df) operator(=) keyword(new) pre_type(SimpleDateFormat)operator(()(\))
-ident(printCal) operator(=) operator({)ident(cal) operator(->) ident(df)operator(.)ident(format)operator(()ident(cal)operator(.)ident(time)(\)})
+ident(printCal) operator(=) operator({)ident(cal) operator(->) ident(df)operator(.)ident(format)operator(()ident(cal)operator(.)ident(time)(\))(})
ident(cal)operator(.)ident(set)operator(()integer(2000)operator(,) integer(0)operator(,) integer(1)operator(,) oct(00)operator(,) oct(01)operator(,) integer(0)(\))
keyword(assert) ident(printCal)operator(()ident(cal)(\)) operator(==) string<delimiter(')content(1/01/00 00:01)delimiter(')>
comment(// roll minute back by 2 but don't adjust other fields)
@@ -1036,7 +1036,7 @@ ident(weeks) operator(=) operator(()ident(difference) operator(-) ident(day
ident(println) string<delimiter(")content(()inline<inline_delimiter($)ident(weeks)>content( weeks, )inline<inline_delimiter($)ident(days)>content( days, )inline<inline_delimiter($)ident(hours)>content(:)inline<inline_delimiter($)ident(minutes)>content(:)inline<inline_delimiter($)ident(seconds)>content(\))delimiter(")>
comment(// => (438 weeks, 4 days, 23:49:35\))
comment(//----------------------------------------------------------------------------------)
-ident(cal) operator(=) pre_type(Calendar)operator(.)ident(getInstance)operator(()pre_type(TimeZone)operator(.)ident(getTimeZone)operator(()string<delimiter(")content(UTC)delimiter(")>(\)\))
+ident(cal) operator(=) pre_type(Calendar)operator(.)ident(getInstance)operator(()pre_type(TimeZone)operator(.)ident(getTimeZone)operator(()string<delimiter(")content(UTC)delimiter(")>(\))(\))
ident(cal)operator(.)ident(set)operator(()integer(1981)operator(,) integer(5)operator(,) integer(16)(\)) comment(// 16 Jun 1981)
ident(date1) operator(=) ident(cal)operator(.)ident(time)
ident(cal)operator(.)ident(set)operator(()integer(1973)operator(,) integer(0)operator(,) integer(18)(\)) comment(// 18 Jan 1973)
@@ -1056,7 +1056,7 @@ ident(year) operator(=) ident(cal)operator(.)ident(get)operator(()pre_type(Calen
ident(yearWeek) operator(=) ident(cal)operator(.)ident(get)operator(()pre_type(Calendar)operator(.)ident(WEEK_OF_YEAR)(\))operator(;)
ident(df1) operator(=) keyword(new) pre_type(SimpleDateFormat)operator(()string<delimiter(")content(dd/MMM/yy)delimiter(")>(\))
ident(df2) operator(=) keyword(new) pre_type(SimpleDateFormat)operator(()string<delimiter(")content(EEEE)delimiter(")>(\))
-ident(print)operator(()ident(df1)operator(.)ident(format)operator(()ident(cal)operator(.)ident(time)(\)) operator(+) string<delimiter(')content( was a )delimiter(')> operator(+) ident(df2)operator(.)ident(format)operator(()ident(cal)operator(.)ident(time)(\)\))
+ident(print)operator(()ident(df1)operator(.)ident(format)operator(()ident(cal)operator(.)ident(time)(\)) operator(+) string<delimiter(')content( was a )delimiter(')> operator(+) ident(df2)operator(.)ident(format)operator(()ident(cal)operator(.)ident(time)(\))(\))
ident(println) string<delimiter(")content( and was day number )inline<inline_delimiter($)ident(yearDay)>content( and week number )inline<inline_delimiter($)ident(yearWeek)>content( of )inline<inline_delimiter($)ident(year)>delimiter(")>
comment(// => 16/Jun/81 was a Tuesday and was day number 167 and week number 25 of 1981)
comment(//----------------------------------------------------------------------------------)
@@ -1088,7 +1088,7 @@ comment(//----------------------------------------------------------------------
comment(// script:)
ident(println) string<delimiter(')content(Press return when ready)delimiter(')>
ident(before) operator(=) pre_type(System)operator(.)ident(currentTimeMillis)operator(()(\))
-ident(input) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\)\))operator(.)ident(readLine)operator(()(\))
+ident(input) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\))(\))operator(.)ident(readLine)operator(()(\))
ident(after) operator(=) pre_type(System)operator(.)ident(currentTimeMillis)operator(()(\))
ident(elapsed) operator(=) operator(()ident(after) operator(-) ident(before)(\)) operator(/) integer(1000)
ident(println) string<delimiter(")content(You took )inline<inline_delimiter($)ident(elapsed)>content( seconds.)delimiter(")>
@@ -1106,7 +1106,7 @@ keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(number
type(long) ident(t1) operator(=) pre_type(System)operator(.)ident(currentTimeMillis)operator(()(\))
ident(total) operator(+=) operator(()ident(t1) operator(-) ident(t0)(\))
(})
-ident(println) string<delimiter(")content(On average, sorting )inline<inline_delimiter($)ident(size)>content( random numbers takes )inline<inline_delimiter(${)ident(total / number)inline_delimiter(})>content( milliseconds)delimiter(")>
+ident(println) string<delimiter(")content(On average, sorting )inline<inline_delimiter($)ident(size)>content( random numbers takes )inline<inline_delimiter(${)ident(total) operator(/) ident(number)inline_delimiter(})>content( milliseconds)delimiter(")>
comment(// => On average, sorting 500 random numbers takes 0.32 milliseconds)
comment(//----------------------------------------------------------------------------------)
@@ -1174,9 +1174,9 @@ type(class) class(MailHopDelta) operator({)
ident(extractHeaders)operator(()ident(mail)(\))
ident(out) operator(=) keyword(new) pre_type(StringBuffer)operator(()(\))
keyword(def) ident(m) operator(=) operator(()ident(mail) operator(=~) regexp<delimiter(/)content((?m\)^Date:)char(\\s)content(+(.*\))delimiter(/)>(\))
- ident(firstDate) operator(=) ident(parseDate)operator(()ident(m)operator([)integer(0)(])operator([)integer(1)(]\))
+ ident(firstDate) operator(=) ident(parseDate)operator(()ident(m)operator([)integer(0)(])operator([)integer(1)(])(\))
ident(firstSender) operator(=) operator(()ident(mail) operator(=~) regexp<delimiter(/)content((?m\)^From.*)content(\\@)content(([^)char(\\s)content(>]*\))delimiter(/)>(\))operator([)integer(0)(])operator([)integer(1)(])
- ident(out)operator(()string<delimiter(')content(Sender Recipient Time Delta)delimiter(')>operator(.)ident(split)operator(()string<delimiter(')content( )delimiter(')>(\)\))
+ ident(out)operator(()string<delimiter(')content(Sender Recipient Time Delta)delimiter(')>operator(.)ident(split)operator(()string<delimiter(')content( )delimiter(')>(\))(\))
(})
keyword(def) method(parseDate)operator(()ident(date)(\)) operator({)
@@ -1213,8 +1213,8 @@ type(class) class(MailHopDelta) operator({)
(})
keyword(def) method(out)operator(()ident(line)(\)) operator({)
- ident(out) operator(<)operator(<) ident(line)operator([)integer(0)(])operator([)integer(0)operator(..<)operator([)integer(25)operator(,)ident(line)operator([)integer(0)(])operator(.)ident(size)operator(()(\)])operator(.)ident(min)operator(()(\)])operator(.)ident(padRight)operator(()integer(26)(\))
- ident(out) operator(<)operator(<) ident(line)operator([)integer(1)(])operator([)integer(0)operator(..<)operator([)integer(25)operator(,)ident(line)operator([)integer(1)(])operator(.)ident(size)operator(()(\)])operator(.)ident(min)operator(()(\)])operator(.)ident(padRight)operator(()integer(26)(\))
+ ident(out) operator(<)operator(<) ident(line)operator([)integer(0)(])operator([)integer(0)operator(..<)operator([)integer(25)operator(,)ident(line)operator([)integer(0)(])operator(.)ident(size)operator(()(\))(])operator(.)ident(min)operator(()(\))(])operator(.)ident(padRight)operator(()integer(26)(\))
+ ident(out) operator(<)operator(<) ident(line)operator([)integer(1)(])operator([)integer(0)operator(..<)operator([)integer(25)operator(,)ident(line)operator([)integer(1)(])operator(.)ident(size)operator(()(\))(])operator(.)ident(min)operator(()(\))(])operator(.)ident(padRight)operator(()integer(26)(\))
ident(out) operator(<)operator(<) ident(line)operator([)integer(2)(])operator(.)ident(padRight)operator(()integer(17)(\)) operator(+) string<delimiter(')content( )delimiter(')>
ident(out) operator(<)operator(<) ident(line)operator([)integer(3)(]) operator(+) string<delimiter(')content(\\n)delimiter(')>
(})
@@ -1224,13 +1224,13 @@ type(class) class(MailHopDelta) operator({)
(})
keyword(def) method(process)operator(()(\)) operator({)
- ident(out)operator(()operator([)string<delimiter(')content(<origin>)delimiter(')>operator(,) ident(firstSender)operator(,) ident(prettyDate)operator(()ident(firstDate)(\))operator(,) string<delimiter(')delimiter(')>(]\))
+ ident(out)operator(()operator([)string<delimiter(')content(<origin>)delimiter(')>operator(,) ident(firstSender)operator(,) ident(prettyDate)operator(()ident(firstDate)(\))operator(,) string<delimiter(')delimiter(')>(])(\))
keyword(def) ident(prevDate) operator(=) ident(firstDate)
ident(headers)operator(.)ident(grep)operator(()operator(~)regexp<delimiter(/)content(^Received:)char(\\s)content(from.*)delimiter(/)>(\))operator(.)ident(reverseEach)operator({) ident(hop) operator(->)
keyword(def) ident(from) operator(=) operator(()ident(hop) operator(=~) regexp<delimiter(/)content(from)char(\\s)content(+()char(\\S)content(+\)|)content(\\()content((.*?\))content(\\\))delimiter(/)>(\))operator([)integer(0)(])operator([)integer(1)(])
keyword(def) ident(by) operator(=) operator(()ident(hop) operator(=~) regexp<delimiter(/)content(by)char(\\s)content(+()char(\\S)content(+)content(\\.)char(\\S)content(+\))delimiter(/)>(\))operator([)integer(0)(])operator([)integer(1)(])
- keyword(def) ident(hopDate) operator(=) ident(parseDate)operator(()ident(hop)operator([)ident(hop)operator(.)ident(lastIndexOf)operator(()string<delimiter(')content(;)delimiter(')>(\))operator(+)integer(2)operator(..)operator(-)integer(1)(]\))
- ident(out)operator(()operator([)ident(from)operator(,) ident(by)operator(,) ident(prettyDate)operator(()ident(prevDate)(\))operator(,) ident(prettyDelta)operator(()ident(hopDate)operator(.)ident(time) operator(-) ident(prevDate)operator(.)ident(time)(\)]\))
+ keyword(def) ident(hopDate) operator(=) ident(parseDate)operator(()ident(hop)operator([)ident(hop)operator(.)ident(lastIndexOf)operator(()string<delimiter(')content(;)delimiter(')>(\))operator(+)integer(2)operator(..)operator(-)integer(1)(])(\))
+ ident(out)operator(()operator([)ident(from)operator(,) ident(by)operator(,) ident(prettyDate)operator(()ident(prevDate)(\))operator(,) ident(prettyDelta)operator(()ident(hopDate)operator(.)ident(time) operator(-) ident(prevDate)operator(.)ident(time)(\))(])(\))
ident(prevDate) operator(=) ident(hopDate)
(})
keyword(return) ident(out)operator(.)ident(toString)operator(()(\))
@@ -1304,7 +1304,7 @@ keyword(assert) ident(marbleColors)operator(.)ident(join)operator(()string<delim
keyword(def) method(commify)operator(()ident(items)(\)) operator({)
keyword(if) operator(()operator(!)ident(items)(\)) keyword(return) ident(items)
keyword(def) ident(sepchar) operator(=) ident(items)operator(.)ident(find)operator({) local_variable(it) operator(=~) regexp<delimiter(/)content(,)delimiter(/)> (}) operator(?) string<delimiter(')content(; )delimiter(')> operator(:) string<delimiter(')content(, )delimiter(')>
- keyword(switch) operator(()ident(items)operator(.)ident(size)operator(()(\)\)) operator({)
+ keyword(switch) operator(()ident(items)operator(.)ident(size)operator(()(\))(\)) operator({)
keyword(case) integer(1)operator(:) keyword(return) ident(items)operator([)integer(0)(])
keyword(case) integer(2)operator(:) keyword(return) ident(items)operator(.)ident(join)operator(()string<delimiter(')content( and )delimiter(')>(\))
(})
@@ -1335,7 +1335,7 @@ recycle tired, old phrases and ponder big, happy thoughts
recycle tired, old phrases; ponder big, happy thoughts; and sleep and dream peacefully
)delimiter(''')>
-keyword(assert) ident(expected) operator(==) string<delimiter(')content(\\n)delimiter(')> operator(+) ident(lists)operator(.)ident(collect)operator({)ident(commify)operator(()local_variable(it)(\)})operator(.)ident(join)operator(()string<delimiter(')content(\\n)delimiter(')>(\)) operator(+) string<delimiter(')content(\\n)delimiter(')>
+keyword(assert) ident(expected) operator(==) string<delimiter(')content(\\n)delimiter(')> operator(+) ident(lists)operator(.)ident(collect)operator({)ident(commify)operator(()local_variable(it)(\))(})operator(.)ident(join)operator(()string<delimiter(')content(\\n)delimiter(')>(\)) operator(+) string<delimiter(')content(\\n)delimiter(')>
comment(//----------------------------------------------------------------------------------)
comment(// @@PLEAC@@_4.3)
@@ -1439,14 +1439,14 @@ keyword(assert) ident(firstLetters)operator(.)ident(join)operator(()(\)) operato
ident(descending) operator(=) ident(items)operator(.)ident(sort)operator(()(\))operator(.)ident(reverse)operator(()(\))
keyword(assert) ident(descending) operator(==) operator([)string<delimiter(")content(the)delimiter(")>operator(,) string<delimiter(")content(quick)delimiter(")>operator(,) string<delimiter(")content(fox)delimiter(")>operator(,) string<delimiter(")content(brown)delimiter(")>(])
-ident(descendingBySecondLastLetter) operator(=) ident(items)operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->) ident(b)operator([)operator(-)integer(2)(]) operator(<=)operator(>) ident(a)operator([)operator(-)integer(2)(]) (})
+ident(descendingBySecondLastLetter) operator(=) ident(items)operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->) ident(b)operator([)operator(-)integer(2)(]) operator(<=>) ident(a)operator([)operator(-)integer(2)(]) (})
keyword(assert) ident(descendingBySecondLastLetter) operator(==) operator([)string<delimiter(")content(brown)delimiter(")>operator(,) string<delimiter(")content(fox)delimiter(")>operator(,) string<delimiter(")content(the)delimiter(")>operator(,) string<delimiter(")content(quick)delimiter(")>(])
comment(//----------------------------------------------------------------------------------)
comment(// @@PLEAC@@_4.11)
comment(//----------------------------------------------------------------------------------)
comment(// warning: not an exact equivalent, idiomatic use would return copies)
-keyword(def) ident(shift2) operator(=) operator({)ident(one) operator(=) ident(friends)operator([)integer(0)(])operator(;) ident(two) operator(=) ident(friends)operator([)integer(1)(])operator(;) integer(2)operator(.)ident(times)operator({)ident(friends)operator(.)ident(remove)operator(()integer(0)(\)}})
+keyword(def) ident(shift2) operator(=) operator({)ident(one) operator(=) ident(friends)operator([)integer(0)(])operator(;) ident(two) operator(=) ident(friends)operator([)integer(1)(])operator(;) integer(2)operator(.)ident(times)operator({)ident(friends)operator(.)ident(remove)operator(()integer(0)(\))(})(})
ident(friends) operator(=) string<delimiter(')content(Peter Paul Mary Jim Tim)delimiter(')>operator(.)ident(split)operator(()string<delimiter(')content( )delimiter(')>(\))operator(.)ident(toList)operator(()(\))
ident(shift2)operator(()(\))
keyword(assert) ident(one) operator(==) string<delimiter(')content(Peter)delimiter(')>
@@ -1469,7 +1469,7 @@ type(class) class(Employee) operator({)
(})
ident(staff) operator(=) operator([)keyword(new) ident(Employee)operator(()key(name)operator(:)string<delimiter(')content(Jim)delimiter(')>operator(,)key(position)operator(:)string<delimiter(')content(Manager)delimiter(')>operator(,)key(salary)operator(:)integer(26000)(\))operator(,)
keyword(new) ident(Employee)operator(()key(name)operator(:)string<delimiter(')content(Jill)delimiter(')>operator(,)key(position)operator(:)string<delimiter(')content(Engineer)delimiter(')>operator(,)key(salary)operator(:)integer(24000)(\))operator(,)
- keyword(new) ident(Employee)operator(()key(name)operator(:)string<delimiter(')content(Jack)delimiter(')>operator(,)key(position)operator(:)string<delimiter(')content(Engineer)delimiter(')>operator(,)key(salary)operator(:)integer(22000)(\)])
+ keyword(new) ident(Employee)operator(()key(name)operator(:)string<delimiter(')content(Jack)delimiter(')>operator(,)key(position)operator(:)string<delimiter(')content(Engineer)delimiter(')>operator(,)key(salary)operator(:)integer(22000)(\))(])
ident(highestEngineer) operator(=) ident(staff)operator(.)ident(find) operator({) ident(emp) operator(->) ident(emp)operator(.)ident(position) operator(==) string<delimiter(')content(Engineer)delimiter(')> (})
keyword(assert) ident(highestEngineer)operator(.)ident(salary) operator(==) integer(24000)
comment(//----------------------------------------------------------------------------------)
@@ -1490,7 +1490,7 @@ keyword(assert) operator([)integer(100)operator(,) integer(3)operator(,) integer
comment(// strings representing numbers will be sorted alphabetically)
keyword(assert) operator([)string<delimiter(')content(100)delimiter(')>operator(,) string<delimiter(')content(3)delimiter(')>operator(,) string<delimiter(')content(20)delimiter(')>(])operator(.)ident(sort)operator(()(\)) operator(==) operator([)string<delimiter(")content(100)delimiter(")>operator(,) string<delimiter(")content(20)delimiter(")>operator(,) string<delimiter(")content(3)delimiter(")>(])
comment(// closure style sorting allows arbitrary expressions for the comparison)
-keyword(assert) operator([)string<delimiter(')content(100)delimiter(')>operator(,) string<delimiter(')content(3)delimiter(')>operator(,) string<delimiter(')content(20)delimiter(')>(])operator(.)ident(sort)operator({) ident(a)operator(,)ident(b) operator(->) ident(a)operator(.)ident(toLong)operator(()(\)) operator(<=)operator(>) ident(b)operator(.)ident(toLong)operator(()(\)}) operator(==) operator([)string<delimiter(")content(3)delimiter(")>operator(,) string<delimiter(")content(20)delimiter(")>operator(,) string<delimiter(")content(100)delimiter(")>(])
+keyword(assert) operator([)string<delimiter(')content(100)delimiter(')>operator(,) string<delimiter(')content(3)delimiter(')>operator(,) string<delimiter(')content(20)delimiter(')>(])operator(.)ident(sort)operator({) ident(a)operator(,)ident(b) operator(->) ident(a)operator(.)ident(toLong)operator(()(\)) operator(<=>) ident(b)operator(.)ident(toLong)operator(()(\))(}) operator(==) operator([)string<delimiter(")content(3)delimiter(")>operator(,) string<delimiter(")content(20)delimiter(")>operator(,) string<delimiter(")content(100)delimiter(")>(])
comment(// obtain the following on unix systems using: 'ps ux'.execute(\).text)
ident(processInput) operator(=) string<delimiter(''')content(
@@ -1498,28 +1498,28 @@ ident(processInput) operator(=) string<delimiter(''')content(
3868 1 3868 3868 con 1005 06:23:34 /usr/bin/bash
3456 3868 3456 3528 con 1005 06:23:39 /usr/bin/ps
)delimiter(''')>
-ident(nonEmptyLines) operator(=) operator({)local_variable(it)operator(.)ident(trim)operator(()(\)})
+ident(nonEmptyLines) operator(=) operator({)local_variable(it)operator(.)ident(trim)operator(()(\))(})
ident(lines) operator(=) ident(processInput)operator(.)ident(split)operator(()string<delimiter(")char(\\n)delimiter(")>(\))operator(.)ident(findAll)operator(()ident(nonEmptyLines)(\))operator([)integer(1)operator(..)operator(-)integer(1)(])
keyword(def) method(col)operator(()ident(n)operator(,) ident(s)(\)) operator({) ident(s)operator(.)ident(tokenize)operator(()(\))operator([)ident(n)(]) (})
ident(commandIdx) operator(=) integer(7)
ident(pidIdx) operator(=) integer(0)
ident(ppidIdx) operator(=) integer(1)
ident(linesByPid) operator(=) ident(lines)operator(.)ident(sort)operator({) ident(col)operator(()ident(pidIdx)operator(,)local_variable(it)(\))operator(.)ident(toLong)operator(()(\)) (})
-keyword(assert) ident(col)operator(()ident(commandIdx)operator(,) ident(linesByPid)operator([)integer(0)(]\)) operator(==) string<delimiter(')content(/usr/bin/ps)delimiter(')>
+keyword(assert) ident(col)operator(()ident(commandIdx)operator(,) ident(linesByPid)operator([)integer(0)(])(\)) operator(==) string<delimiter(')content(/usr/bin/ps)delimiter(')>
ident(linesByPpid) operator(=) ident(lines)operator(.)ident(sort)operator({) ident(col)operator(()ident(ppidIdx)operator(,)local_variable(it)(\))operator(.)ident(toLong)operator(()(\)) (})
-keyword(assert) ident(col)operator(()ident(commandIdx)operator(,) ident(linesByPpid)operator([)integer(0)(]\)) operator(==) string<delimiter(')content(/usr/bin/bash)delimiter(')>
+keyword(assert) ident(col)operator(()ident(commandIdx)operator(,) ident(linesByPpid)operator([)integer(0)(])(\)) operator(==) string<delimiter(')content(/usr/bin/bash)delimiter(')>
comment(//----------------------------------------------------------------------------------)
comment(// @@PLEAC@@_4.15)
comment(//----------------------------------------------------------------------------------)
comment(// sort staff from 4.12 by name)
-keyword(assert) ident(staff)operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->) ident(a)operator(.)ident(name) operator(<=)operator(>) ident(b)operator(.)ident(name) (})operator(*.)ident(name) operator(==) operator([)string<delimiter(")content(Jack)delimiter(")>operator(,) string<delimiter(")content(Jill)delimiter(")>operator(,) string<delimiter(")content(Jim)delimiter(")>(])
+keyword(assert) ident(staff)operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->) ident(a)operator(.)ident(name) operator(<=>) ident(b)operator(.)ident(name) (})operator(*.)ident(name) operator(==) operator([)string<delimiter(")content(Jack)delimiter(")>operator(,) string<delimiter(")content(Jill)delimiter(")>operator(,) string<delimiter(")content(Jim)delimiter(")>(])
comment(// sort by first two characters of name and if equal by descending salary)
keyword(assert) ident(staff)operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->)
ident(astart) operator(=) ident(a)operator(.)ident(name)operator([)integer(0)operator(..)integer(1)(])
ident(bstart) operator(=) ident(b)operator(.)ident(name)operator([)integer(0)operator(..)integer(1)(])
- keyword(if) operator(()ident(astart) operator(==) ident(bstart)(\)) keyword(return) ident(b)operator(.)ident(salary) operator(<=)operator(>) ident(a)operator(.)ident(salary)
- keyword(return) ident(astart) operator(<=)operator(>) ident(bstart)
+ keyword(if) operator(()ident(astart) operator(==) ident(bstart)(\)) keyword(return) ident(b)operator(.)ident(salary) operator(<=>) ident(a)operator(.)ident(salary)
+ keyword(return) ident(astart) operator(<=>) ident(bstart)
(})operator(*.)ident(name) operator(==) operator([)string<delimiter(")content(Jack)delimiter(")>operator(,) string<delimiter(")content(Jim)delimiter(")>operator(,) string<delimiter(")content(Jill)delimiter(")>(])
comment(//----------------------------------------------------------------------------------)
@@ -1557,16 +1557,16 @@ ident(words) operator(=) ident(symbols)operator(.)ident(weekdays)operator(.)iden
ident(symbols)operator(.)ident(amPmStrings)operator(.)ident(toList)operator(()(\))
ident(expected) operator(=) comment(//)
-string<delimiter(')content(AD August February July May October September Tuesday )content(\\n)delimiter(')> operator(+)
-string<delimiter(')content(AM BC Friday June Monday PM Sunday Wednesday )content(\\n)delimiter(')> operator(+)
-string<delimiter(')content(April December January March November Saturday Thursday )content(\\n)delimiter(')>
+string<delimiter(')content(AD August February July May October September Tuesday \\n)delimiter(')> operator(+)
+string<delimiter(')content(AM BC Friday June Monday PM Sunday Wednesday \\n)delimiter(')> operator(+)
+string<delimiter(')content(April December January March November Saturday Thursday \\n)delimiter(')>
type(class) class(WordFormatter) operator({)
keyword(def) ident(cols)
keyword(def) method(process)operator(()ident(list)(\)) operator({)
keyword(def) ident(sb) operator(=) keyword(new) pre_type(StringBuffer)operator(()(\))
- keyword(def) ident(colWidth) operator(=) ident(list)operator(.)ident(max)operator({)local_variable(it)operator(.)ident(size)operator(()(\)})operator(.)ident(size)operator(()(\)) operator(+) integer(1)
+ keyword(def) ident(colWidth) operator(=) ident(list)operator(.)ident(max)operator({)local_variable(it)operator(.)ident(size)operator(()(\))(})operator(.)ident(size)operator(()(\)) operator(+) integer(1)
type(int) ident(columns) operator(=) operator([)ident(cols)operator(/)ident(colWidth)operator(,) integer(1)(])operator(.)ident(max)operator(()(\))
keyword(def) ident(numWords) operator(=) ident(list)operator(.)ident(size)operator(()(\))
type(int) ident(rows) operator(=) operator(()ident(numWords) operator(+) ident(columns) operator(-) integer(1)(\)) operator(/) ident(columns)
@@ -1588,14 +1588,14 @@ comment(// use a concrete implementation of Terminal.getTerminalWidth(\))
keyword(def) method(getWinCharWidth)operator(()(\)) operator({) integer(80) (})
comment(// main script)
-ident(actual) operator(=) keyword(new) ident(WordFormatter)operator(()key(cols)operator(:)ident(getWinCharWidth)operator(()(\)\))operator(.)ident(process)operator(()ident(words)operator(.)ident(sort)operator(()(\)\))
+ident(actual) operator(=) keyword(new) ident(WordFormatter)operator(()key(cols)operator(:)ident(getWinCharWidth)operator(()(\))(\))operator(.)ident(process)operator(()ident(words)operator(.)ident(sort)operator(()(\))(\))
keyword(assert) ident(actual) operator(==) ident(expected)
comment(//----------------------------------------------------------------------------------)
comment(// @@PLEAC@@_4.19)
comment(//----------------------------------------------------------------------------------)
comment(// recursive version is simplest but can be inefficient)
-keyword(def) method(fact)operator(()ident(n)(\)) operator({) operator(()ident(n) operator(==) integer(1)(\)) operator(?) integer(1) operator(:) ident(n) operator(*) ident(fact)operator(()ident(n)operator(-)integer(1)(\)})
+keyword(def) method(fact)operator(()ident(n)(\)) operator({) operator(()ident(n) operator(==) integer(1)(\)) operator(?) integer(1) operator(:) ident(n) operator(*) ident(fact)operator(()ident(n)operator(-)integer(1)(\))(})
keyword(assert) ident(fact)operator(()integer(10)(\)) operator(==) integer(3628800)
comment(// unwrapped version: note use of BigInteger)
keyword(def) method(factorial)operator(()ident(n)(\)) operator({)
@@ -1658,7 +1658,7 @@ keyword(def) method(n2pat)operator(()ident(n)operator(,) ident(length)(\)) opera
comment(// pat2perm(pat\): turn pattern returned by n2pat(\) into)
comment(// permutation of integers.)
keyword(def) method(pat2perm)operator(()ident(pat)(\)) operator({)
- keyword(def) ident(source) operator(=) operator(()integer(0) operator(..<) ident(pat)operator(.)ident(size)operator(()(\)\))operator(.)ident(collect)operator({) local_variable(it)comment(/*.toString(\)*/) (})
+ keyword(def) ident(source) operator(=) operator(()integer(0) operator(..<) ident(pat)operator(.)ident(size)operator(()(\))(\))operator(.)ident(collect)operator({) local_variable(it)comment(/*.toString(\)*/) (})
keyword(def) ident(perm) operator(=) type([])
keyword(while) operator(()ident(pat)operator(.)ident(size)operator(()(\)) operator(>) integer(0)(\)) operator({)
keyword(def) ident(next) operator(=) ident(pat)operator(.)ident(remove)operator(()ident(pat)operator(.)ident(size)operator(()(\))operator(-)integer(1)(\))
@@ -1669,14 +1669,14 @@ keyword(def) method(pat2perm)operator(()ident(pat)(\)) operator({)
(})
keyword(def) method(n2perm)operator(()ident(n)operator(,) ident(len)(\)) operator({)
- ident(pat2perm)operator(()ident(n2pat)operator(()operator(()type(int)(\))ident(n)operator(,)ident(len)(\)\))
+ ident(pat2perm)operator(()ident(n2pat)operator(()operator(()type(int)(\))ident(n)operator(,)ident(len)(\))(\))
(})
ident(data) operator(=) operator([)string<delimiter(')content(man)delimiter(')>operator(,) string<delimiter(')content(bites)delimiter(')>operator(,) string<delimiter(')content(dog)delimiter(')>(])
ident(sb) operator(=) keyword(new) pre_type(StringBuffer)operator(()(\))
-ident(numPermutations) operator(=) ident(fact)operator(()ident(data)operator(.)ident(size)operator(()(\)\))
+ident(numPermutations) operator(=) ident(fact)operator(()ident(data)operator(.)ident(size)operator(()(\))(\))
keyword(for) operator(()ident(j) keyword(in) integer(0)operator(..<)ident(numPermutations)(\)) operator({)
- keyword(def) ident(permutation) operator(=) ident(n2perm)operator(()ident(j)operator(,) ident(data)operator(.)ident(size)operator(()(\)\))operator(.)ident(collect) operator({) ident(k) operator(->) ident(data)operator([)ident(k)(]) (})
+ keyword(def) ident(permutation) operator(=) ident(n2perm)operator(()ident(j)operator(,) ident(data)operator(.)ident(size)operator(()(\))(\))operator(.)ident(collect) operator({) ident(k) operator(->) ident(data)operator([)ident(k)(]) (})
ident(sb) operator(<)operator(<) ident(permutation)operator(.)ident(join)operator(()string<delimiter(')content( )delimiter(')>(\)) operator(+) string<delimiter(')content(\\n)delimiter(')>
(})
keyword(assert) string<delimiter(')content(\\n)delimiter(')> operator(+) ident(sb)operator(.)ident(toString)operator(()(\)) operator(==) ident(expected)
@@ -1716,9 +1716,9 @@ keyword(assert) operator([)string<delimiter(')content(Banana)delimiter(')>operat
ident(age) operator(=) operator([)key(Toddler)operator(:)integer(3)operator(,) key(Unborn)operator(:)integer(0)operator(,) key(Phantasm)operator(:)keyword(null)(])
operator([)string<delimiter(')content(Toddler)delimiter(')>operator(,) string<delimiter(')content(Unborn)delimiter(')>operator(,) string<delimiter(')content(Phantasm)delimiter(')>operator(,) string<delimiter(')content(Relic)delimiter(')>(])operator(.)ident(each)operator({) ident(key) operator(->)
ident(print) string<delimiter(")inline<inline_delimiter($)ident(key)>content(: )delimiter(")>
- keyword(if) operator(()ident(age)operator(.)ident(containsKey)operator(()ident(key)(\)\)) ident(print) string<delimiter(')content(has key )delimiter(')>
+ keyword(if) operator(()ident(age)operator(.)ident(containsKey)operator(()ident(key)(\))(\)) ident(print) string<delimiter(')content(has key )delimiter(')>
keyword(if) operator(()ident(age)operator(.)ident(containsKey)operator(()ident(key)(\)) operator(&&) ident(age)operator([)ident(key)(])operator(!=)keyword(null)(\)) ident(print) string<delimiter(')content(non-null )delimiter(')>
- keyword(if) operator(()ident(age)operator(.)ident(containsKey)operator(()ident(key)(\)) operator(&&) ident(age)operator([)ident(key)(]\)) ident(print) string<delimiter(')content(true )delimiter(')>
+ keyword(if) operator(()ident(age)operator(.)ident(containsKey)operator(()ident(key)(\)) operator(&&) ident(age)operator([)ident(key)(])(\)) ident(print) string<delimiter(')content(true )delimiter(')>
ident(println) string<delimiter(')delimiter(')>
(})
comment(// =>)
@@ -1778,16 +1778,16 @@ From: someone@somewhere.com
ident(from) operator(=) operator([)operator(:)(])
ident(fakedInput)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(each)operator({)
ident(matcher) operator(=) operator(()local_variable(it) operator(=~) regexp<delimiter(/)content(^From:)char(\\s)content(+([^)char(\\s)content(>]*\))delimiter(/)>(\))
- keyword(if) operator(()ident(matcher)operator(.)ident(matches)operator(()(\)\)) operator({)
+ keyword(if) operator(()ident(matcher)operator(.)ident(matches)operator(()(\))(\)) operator({)
ident(sender) operator(=) ident(matcher)operator([)integer(0)(])operator([)integer(1)(])
- keyword(if) operator(()ident(from)operator(.)ident(containsKey)operator(()ident(sender)(\)\)) ident(from)operator([)ident(sender)(]) operator(+=) integer(1)
+ keyword(if) operator(()ident(from)operator(.)ident(containsKey)operator(()ident(sender)(\))(\)) ident(from)operator([)ident(sender)(]) operator(+=) integer(1)
keyword(else) ident(from)operator([)ident(sender)(]) operator(=) integer(1)
(})
(})
comment(// More useful to sort by number of received mail by person)
-ident(from)operator(.)ident(entrySet)operator(()(\))operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->) ident(b)operator(.)ident(value)operator(<=)operator(>)ident(a)operator(.)ident(value)(})operator(.)ident(each) operator({) ident(e)operator(->)
- ident(println) string<delimiter(")inline<inline_delimiter(${)ident(e.key)inline_delimiter(})>content(: )inline<inline_delimiter(${)ident(e.value)inline_delimiter(})>delimiter(")>
+ident(from)operator(.)ident(entrySet)operator(()(\))operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->) ident(b)operator(.)ident(value)operator(<=>)ident(a)operator(.)ident(value)(})operator(.)ident(each) operator({) ident(e)operator(->)
+ ident(println) string<delimiter(")inline<inline_delimiter(${)ident(e)operator(.)ident(key)inline_delimiter(})>content(: )inline<inline_delimiter(${)ident(e)operator(.)ident(value)inline_delimiter(})>delimiter(")>
(})
comment(// =>)
comment(// someone@somewhere.com: 2)
@@ -1830,7 +1830,7 @@ comment(// @@PLEAC@@_5.7)
comment(//----------------------------------------------------------------------------------)
ident(foodsOfColor) operator(=) operator([) key(Yellow)operator(:)operator([)string<delimiter(')content(Banana)delimiter(')>operator(,) string<delimiter(')content(Lemon)delimiter(')>(])operator(,) key(Green)operator(:)operator([)string<delimiter(')content(Apple)delimiter(')>(]) (])
ident(foodsOfColor)operator([)string<delimiter(')content(Green)delimiter(')>(]) operator(+=) string<delimiter(')content(Melon)delimiter(')>
-keyword(assert) ident(foodsOfColor) operator(==) operator([)string<delimiter(")content(Green)delimiter(")>operator(:)operator([)string<delimiter(")content(Apple)delimiter(")>operator(,) string<delimiter(")content(Melon)delimiter(")>(])operator(,) string<delimiter(")content(Yellow)delimiter(")>operator(:)operator([)string<delimiter(")content(Banana)delimiter(")>operator(,) string<delimiter(")content(Lemon)delimiter(")>(]])
+keyword(assert) ident(foodsOfColor) operator(==) operator([)string<delimiter(")content(Green)delimiter(")>operator(:)operator([)string<delimiter(")content(Apple)delimiter(")>operator(,) string<delimiter(")content(Melon)delimiter(")>(])operator(,) string<delimiter(")content(Yellow)delimiter(")>operator(:)operator([)string<delimiter(")content(Banana)delimiter(")>operator(,) string<delimiter(")content(Lemon)delimiter(")>(])(])
comment(//----------------------------------------------------------------------------------)
comment(// @@PLEAC@@_5.8)
@@ -1847,13 +1847,13 @@ doctype(#!/usr/bin/groovy)
comment(// usage: foodfind food_or_color")
ident(color) operator(=) operator([)key(Apple)operator(:)string<delimiter(')content(red)delimiter(')>operator(,) key(Banana)operator(:)string<delimiter(')content(yellow)delimiter(')>operator(,) key(Lemon)operator(:)string<delimiter(')content(yellow)delimiter(')>operator(,) key(Carrot)operator(:)string<delimiter(')content(orange)delimiter(')>(])
ident(given) operator(=) ident(args)operator([)integer(0)(])
-keyword(if) operator(()ident(color)operator(.)ident(containsKey)operator(()ident(given)(\)\))
- ident(println) string<delimiter(")inline<inline_delimiter($)ident(given)>content( is a food with color )inline<inline_delimiter(${)ident(color[given])inline_delimiter(})>content(.)delimiter(")>
-ident(if) operator(()ident(color)operator(.)ident(containsValue)operator(()ident(given)(\)\)) operator({)
+keyword(if) operator(()ident(color)operator(.)ident(containsKey)operator(()ident(given)(\))(\))
+ ident(println) string<delimiter(")inline<inline_delimiter($)ident(given)>content( is a food with color )inline<inline_delimiter(${)ident(color)operator([)ident(given)(])inline_delimiter(})>content(.)delimiter(")>
+ident(if) operator(()ident(color)operator(.)ident(containsValue)operator(()ident(given)(\))(\)) operator({)
comment(// could use commify(\) here - see 4.2)
ident(foods) operator(=) ident(color)operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(value) operator(==) ident(given)(})operator(.)ident(collect)operator({)local_variable(it)operator(.)ident(key)(})
ident(join) operator(=) ident(foods)operator(.)ident(size)operator(()(\)) operator(==) integer(1) operator(?) string<delimiter(')content(is a food)delimiter(')> operator(:) string<delimiter(')content(are foods)delimiter(')>
- ident(println) string<delimiter(")inline<inline_delimiter(${)ident(foods.join(', '\))inline_delimiter(})>content( )inline<inline_delimiter($)ident(join)>content( with color )inline<inline_delimiter(${)ident(given)inline_delimiter(})>content(.)delimiter(")>
+ ident(println) string<delimiter(")inline<inline_delimiter(${)ident(foods)operator(.)ident(join)operator(()string<delimiter(')content(, )delimiter(')>(\))inline_delimiter(})>content( )inline<inline_delimiter($)ident(join)>content( with color )inline<inline_delimiter(${)ident(given)inline_delimiter(})>content(.)delimiter(")>
(})
comment(// foodfind red)
comment(// => Apple is a food with color red.)
@@ -1871,7 +1871,7 @@ comment(// Sorted by keys)
keyword(assert) ident(foodColor)operator(.)ident(keySet)operator(()(\))operator(.)ident(sort)operator(()(\)) operator(==) operator([)string<delimiter(")content(Apple)delimiter(")>operator(,) string<delimiter(")content(Banana)delimiter(")>operator(,) string<delimiter(")content(Carrot)delimiter(")>operator(,) string<delimiter(")content(Cherry)delimiter(")>(])
comment(// you could now iterate through the hash with the sorted keys)
keyword(assert) ident(foodColor)operator(.)ident(values)operator(()(\))operator(.)ident(sort)operator(()(\)) operator(==) operator([)string<delimiter(")content(black)delimiter(")>operator(,) string<delimiter(")content(orange)delimiter(")>operator(,) string<delimiter(")content(red)delimiter(")>operator(,) string<delimiter(")content(yellow)delimiter(")>(])
-keyword(assert) ident(foodColor)operator(.)ident(values)operator(()(\))operator(.)ident(sort)operator({)local_variable(it)operator(.)ident(size)operator(()(\)}) operator(==) operator([)string<delimiter(")content(red)delimiter(")>operator(,) string<delimiter(")content(black)delimiter(")>operator(,) string<delimiter(")content(orange)delimiter(")>operator(,) string<delimiter(")content(yellow)delimiter(")>(])
+keyword(assert) ident(foodColor)operator(.)ident(values)operator(()(\))operator(.)ident(sort)operator({)local_variable(it)operator(.)ident(size)operator(()(\))(}) operator(==) operator([)string<delimiter(")content(red)delimiter(")>operator(,) string<delimiter(")content(black)delimiter(")>operator(,) string<delimiter(")content(orange)delimiter(")>operator(,) string<delimiter(")content(yellow)delimiter(")>(])
comment(//----------------------------------------------------------------------------------)
comment(// @@PLEAC@@_5.10)
@@ -1894,7 +1894,7 @@ ident(foodColor)operator([)string<delimiter(')content(Lemon)delimiter(')>(])oper
ident(citrusColor) operator(=) operator([)key(Lemon)operator(:)string<delimiter(')content(yellow)delimiter(')>operator(,) key(Orange)operator(:)string<delimiter(')content(orange)delimiter(')>operator(,) key(Lime)operator(:)string<delimiter(')content(green)delimiter(')>(])
ident(println) ident(foodColor)
ident(println) ident(citrusColor)
-ident(common) operator(=) ident(foodColor)operator(.)ident(keySet)operator(()(\))operator(.)ident(intersect)operator(()ident(citrusColor)operator(.)ident(keySet)operator(()(\)\))
+ident(common) operator(=) ident(foodColor)operator(.)ident(keySet)operator(()(\))operator(.)ident(intersect)operator(()ident(citrusColor)operator(.)ident(keySet)operator(()(\))(\))
keyword(assert) ident(common) operator(==) operator([)string<delimiter(")content(Lemon)delimiter(")>(])
ident(foodButNotCitrus) operator(=) ident(foodColor)operator(.)ident(keySet)operator(()(\))operator(.)ident(toList)operator(()(\)) operator(-) ident(citrusColor)operator(.)ident(keySet)operator(()(\))operator(.)ident(toList)operator(()(\))
@@ -1926,8 +1926,8 @@ comment(// @@PLEAC@@_5.14)
comment(//----------------------------------------------------------------------------------)
ident(count) operator(=) operator([)operator(:)(])
ident(letters) operator(=) type([])
-ident(foodColor)operator(.)ident(values)operator(()(\))operator(.)ident(each)operator({) ident(letters)operator(.)ident(addAll)operator(()operator(()local_variable(it) keyword(as) pre_type(String)type([])(\))operator(.)ident(toList)operator(()(\)\)) (})
-ident(letters)operator(.)ident(each)operator({) keyword(if) operator(()ident(count)operator(.)ident(containsKey)operator(()local_variable(it)(\)\)) ident(count)operator([)local_variable(it)(]) operator(+=) integer(1) keyword(else) ident(count)operator([)local_variable(it)(]) operator(=) integer(1) (})
+ident(foodColor)operator(.)ident(values)operator(()(\))operator(.)ident(each)operator({) ident(letters)operator(.)ident(addAll)operator(()operator(()local_variable(it) keyword(as) pre_type(String)type([])(\))operator(.)ident(toList)operator(()(\))(\)) (})
+ident(letters)operator(.)ident(each)operator({) keyword(if) operator(()ident(count)operator(.)ident(containsKey)operator(()local_variable(it)(\))(\)) ident(count)operator([)local_variable(it)(]) operator(+=) integer(1) keyword(else) ident(count)operator([)local_variable(it)(]) operator(=) integer(1) (})
keyword(assert) ident(count) operator(==) operator([)string<delimiter(")content(o)delimiter(")>operator(:)integer(3)operator(,) string<delimiter(")content(d)delimiter(")>operator(:)integer(1)operator(,) string<delimiter(")content(k)delimiter(")>operator(:)integer(1)operator(,) string<delimiter(")content(w)delimiter(")>operator(:)integer(2)operator(,) string<delimiter(")content(r)delimiter(")>operator(:)integer(2)operator(,) string<delimiter(")content(c)delimiter(")>operator(:)integer(1)operator(,) string<delimiter(")content(l)delimiter(")>operator(:)integer(5)operator(,) string<delimiter(")content(g)delimiter(")>operator(:)integer(1)operator(,) string<delimiter(")content(b)delimiter(")>operator(:)integer(1)operator(,) string<delimiter(")content(a)delimiter(")>operator(:)integer(2)operator(,) string<delimiter(")content(y)delimiter(")>operator(:)integer(2)operator(,) string<delimiter(")content(n)delimiter(")>operator(:)integer(1)operator(,) string<delimiter(")content(e)delimiter(")>operator(:)integer(4)(])
comment(//----------------------------------------------------------------------------------)
@@ -1949,7 +1949,7 @@ ident(father) operator(=) operator([)
(])
keyword(def) method(upline)operator(()ident(person)(\)) operator({)
- keyword(while) operator(()ident(father)operator(.)ident(containsKey)operator(()ident(person)(\)\)) operator({)
+ keyword(while) operator(()ident(father)operator(.)ident(containsKey)operator(()ident(person)(\))(\)) operator({)
ident(print) ident(person) operator(+) string<delimiter(')content( )delimiter(')>
ident(person) operator(=) ident(father)operator([)ident(person)(])
(})
@@ -1961,11 +1961,11 @@ comment(// => Irad Enoch Cain Adam)
ident(children) operator(=) operator([)operator(:)(])
ident(father)operator(.)ident(each) operator({) ident(k)operator(,)ident(v) operator(->)
- keyword(if) operator(()operator(!)ident(children)operator(.)ident(containsKey)operator(()ident(v)(\)\)) ident(children)operator([)ident(v)(]) operator(=) type([])
+ keyword(if) operator(()operator(!)ident(children)operator(.)ident(containsKey)operator(()ident(v)(\))(\)) ident(children)operator([)ident(v)(]) operator(=) type([])
ident(children)operator([)ident(v)(]) operator(+=) ident(k)
(})
keyword(def) method(downline)operator(()ident(person)(\)) operator({)
- ident(println) string<delimiter(")inline<inline_delimiter($)ident(person)>content( begat )inline<inline_delimiter(${)ident(children.containsKey(person\)?children[person].join(', '\):'Nobody')inline_delimiter(})>content(.)char(\\n)delimiter(")>
+ ident(println) string<delimiter(")inline<inline_delimiter($)ident(person)>content( begat )inline<inline_delimiter(${)ident(children)operator(.)ident(containsKey)operator(()ident(person)(\))operator(?)ident(children)operator([)ident(person)(])operator(.)ident(join)operator(()string<delimiter(')content(, )delimiter(')>(\))operator(:)string<delimiter(')content(Nobody)delimiter(')>inline_delimiter(})>content(.)char(\\n)delimiter(")>
(})
ident(downline)operator(()string<delimiter(')content(Tubalcain)delimiter(')>(\))
comment(// => Tubalcain begat Nobody.)
@@ -1980,8 +1980,8 @@ keyword(new) pre_type(File)operator(()ident(dir)(\))operator(.)ident(eachFile)op
keyword(if) operator(()ident(file)operator(.)ident(directory)(\)) keyword(return)
ident(file)operator(.)ident(eachLine)operator({) ident(line) operator(->)
ident(matcher) operator(=) operator(()ident(line) operator(=~) string<delimiter(')content(^)char(\\\\)content(s*#)char(\\\\)content(s*include)char(\\\\)content(s*<([^>]+\)>)delimiter(')>(\))
- keyword(if) operator(()ident(matcher)operator(.)ident(matches)operator(()(\)\)) operator({)
- keyword(if) operator(()operator(!)ident(includes)operator(.)ident(containsKey)operator(()ident(file)operator(.)ident(name)(\)\)) ident(includes)operator([)ident(file)operator(.)ident(name)(]) operator(=) type([])
+ keyword(if) operator(()ident(matcher)operator(.)ident(matches)operator(()(\))(\)) operator({)
+ keyword(if) operator(()operator(!)ident(includes)operator(.)ident(containsKey)operator(()ident(file)operator(.)ident(name)(\))(\)) ident(includes)operator([)ident(file)operator(.)ident(name)(]) operator(=) type([])
ident(includes)operator([)ident(file)operator(.)ident(name)(]) operator(+=) ident(matcher)operator([)integer(0)(])operator([)integer(1)(])
(})
(})
@@ -2016,15 +2016,15 @@ type(class) class(DuNode) operator({)
keyword(def) ident(kids) operator(=) type([])
comment(// support for sorting nodes with side)
- keyword(def) method(compareTo)operator(()ident(node2)(\)) operator({) ident(size) operator(<=)operator(>) ident(node2)operator(.)ident(size) (})
+ keyword(def) method(compareTo)operator(()ident(node2)(\)) operator({) ident(size) operator(<=>) ident(node2)operator(.)ident(size) (})
keyword(def) method(getBasename)operator(()(\)) operator({)
- ident(name)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(.*)content(\\/)delimiter(/)>operator(,) string<delimiter(')delimiter(')>(\))
+ ident(name)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(.*)char(\\/)delimiter(/)>operator(,) string<delimiter(')delimiter(')>(\))
(})
comment(// returns substring before last "/", otherwise null)
keyword(def) method(getParent)operator(()(\)) operator({)
- keyword(def) ident(p) operator(=) ident(name)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(\\/)content([^)content(\\/)content(]+)content($)delimiter(/)>operator(,)string<delimiter(')delimiter(')>(\))
+ keyword(def) ident(p) operator(=) ident(name)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\/)content([^)char(\\/)content(]+)content($)delimiter(/)>operator(,)string<delimiter(')delimiter(')>(\))
keyword(return) operator(()ident(p) operator(==) ident(name)(\)) operator(?) keyword(null) operator(:) ident(p)
(})
(})
@@ -2041,7 +2041,7 @@ type(class) class(DuTree) operator({)
comment(// get a node by name, create it if it does not exist yet)
keyword(def) method(getOrCreateNode)operator(()ident(name)(\)) operator({)
- keyword(if) operator(()operator(!)ident(nodes)operator(.)ident(containsKey)operator(()ident(name)(\)\))
+ keyword(if) operator(()operator(!)ident(nodes)operator(.)ident(containsKey)operator(()ident(name)(\))(\))
ident(nodes)operator([)ident(name)(]) operator(=) keyword(new) ident(DuNode)operator(()key(name)operator(:)ident(name)(\))
keyword(return) ident(nodes)operator([)ident(name)(])
(})
@@ -2064,7 +2064,7 @@ type(class) class(DuTree) operator({)
keyword(def) method(processInput)operator(()(\)) operator({)
keyword(def) ident(name) operator(=) string<delimiter(')delimiter(')>
- ident(input)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\)})operator(.)ident(each)operator({) ident(line) operator(->)
+ ident(input)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\))(})operator(.)ident(each)operator({) ident(line) operator(->)
keyword(def) ident(tokens) operator(=) ident(line)operator(.)ident(tokenize)operator(()(\))
keyword(def) ident(size) operator(=) ident(tokens)operator([)integer(0)(])
ident(name) operator(=) ident(tokens)operator([)integer(1)(])
@@ -2184,12 +2184,12 @@ comment(// Overlapping: 123 234 345 456 567 678 789)
ident(string) operator(=) string<delimiter(')content(And little lambs eat ivy)delimiter(')>
comment(// Greedy version)
ident(parts) operator(=) ident(string) operator(=~) regexp<delimiter(/)content((.*\)(l[^s]*s\)(.*\))delimiter(/)>
-operator(()integer(1)operator(..)ident(parts)operator(.)ident(groupCount)operator(()(\)\))operator(.)ident(each)operator({) ident(print) string<delimiter(")content(()inline<inline_delimiter(${)ident(parts[0][it])inline_delimiter(})>content(\) )delimiter(")> (})operator(;) ident(print) string<delimiter(')content(\\n)delimiter(')>
+operator(()integer(1)operator(..)ident(parts)operator(.)ident(groupCount)operator(()(\))(\))operator(.)ident(each)operator({) ident(print) string<delimiter(")content(()inline<inline_delimiter(${)ident(parts)operator([)integer(0)(])operator([)local_variable(it)(])inline_delimiter(})>content(\) )delimiter(")> (})operator(;) ident(print) string<delimiter(')content(\\n)delimiter(')>
comment(// (And little \) (lambs\) ( eat ivy\))
comment(// Reluctant version)
ident(parts) operator(=) ident(string) operator(=~) regexp<delimiter(/)content((.*?\)(l[^s]*s\)(.*\))delimiter(/)>
-operator(()integer(1)operator(..)ident(parts)operator(.)ident(groupCount)operator(()(\)\))operator(.)ident(each)operator({) ident(print) string<delimiter(")content(()inline<inline_delimiter(${)ident(parts[0][it])inline_delimiter(})>content(\) )delimiter(")> (})operator(;) ident(print) string<delimiter(')content(\\n)delimiter(')>
+operator(()integer(1)operator(..)ident(parts)operator(.)ident(groupCount)operator(()(\))(\))operator(.)ident(each)operator({) ident(print) string<delimiter(")content(()inline<inline_delimiter(${)ident(parts)operator([)integer(0)(])operator([)local_variable(it)(])inline_delimiter(})>content(\) )delimiter(")> (})operator(;) ident(print) string<delimiter(')content(\\n)delimiter(')>
comment(// (And \) (little lambs\) ( eat ivy\))
comment(//----------------------------------------------------------------------------------)
@@ -2210,7 +2210,7 @@ comment(// The preprocessing operations \\X where X is one of l, u, L, and U ar
comment(// in the sun regex library but other Java regex libraries may support this. Instead:)
ident(src) operator(=) string<delimiter(')content(make all words title-cased)delimiter(')>
ident(dst) operator(=) ident(src)
-operator(()string<delimiter(')content(a)delimiter(')>operator(..)string<delimiter(')content(z)delimiter(')>(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(([^a-zA-Z]\))delimiter(/)>operator(+)local_variable(it)operator(+)regexp<delimiter(/)content(|)content(\\A)delimiter(/)>operator(+)local_variable(it)operator(,) regexp<delimiter(/)content($)content(1)delimiter(/)>operator(+)local_variable(it)operator(.)ident(toUpperCase)operator(()(\)\)) (})
+operator(()string<delimiter(')content(a)delimiter(')>operator(..)string<delimiter(')content(z)delimiter(')>(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(([^a-zA-Z]\))delimiter(/)>operator(+)local_variable(it)operator(+)regexp<delimiter(/)content(|)content(\\A)delimiter(/)>operator(+)local_variable(it)operator(,) regexp<delimiter(/)content($)content(1)delimiter(/)>operator(+)local_variable(it)operator(.)ident(toUpperCase)operator(()(\))(\)) (})
keyword(assert) ident(dst) operator(==) string<delimiter(')content(Make All Words Title-Cased)delimiter(')>
comment(// rename list of dirs)
@@ -2237,16 +2237,16 @@ Moliçre
hæmoglobin
naïve
tschüß
-random!stuff#here)content(\\u)content(0948
+random!stuff#here)content(\\u0948)content(
)delimiter(''')>
ident(results) operator(=) string<delimiter(')delimiter(')>
ident(greekAlpha) operator(=) string<delimiter(')content(\\u0391)delimiter(')>
ident(special) operator(=) string<delimiter(')content(çéüßöñàæï?)delimiter(')> operator(+) ident(greekAlpha)
comment(// flag as either Y (alphabetic\) or N (not\))
-ident(words)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\)})operator(.)ident(each)operator({) ident(results) operator(+=) local_variable(it) operator(==~) regexp<delimiter(/)content(^[)char(\\w)delimiter(/)>operator(+)ident(special)operator(+)regexp<delimiter(/)content(]+)content($)delimiter(/)> operator(?)string<delimiter(')content(Y)delimiter(')>operator(:)string<delimiter(')content(N)delimiter(')> (})
+ident(words)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\))(})operator(.)ident(each)operator({) ident(results) operator(+=) local_variable(it) operator(==~) regexp<delimiter(/)content(^[)char(\\w)delimiter(/)>operator(+)ident(special)operator(+)regexp<delimiter(/)content(]+)content($)delimiter(/)> operator(?)string<delimiter(')content(Y)delimiter(')>operator(:)string<delimiter(')content(N)delimiter(')> (})
keyword(assert) ident(results) operator(==) string<delimiter(')content(YYYYYYYYYN)delimiter(')>
ident(results) operator(=) string<delimiter(')delimiter(')>
-ident(words)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\)})operator(.)ident(each)operator({) ident(results) operator(+=) local_variable(it) operator(==~) regexp<delimiter(/)content(^[^)content(\\p)content({Punct}]+)content($)delimiter(/)> operator(?)string<delimiter(')content(Y)delimiter(')>operator(:)string<delimiter(')content(N)delimiter(')> (})
+ident(words)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\))(})operator(.)ident(each)operator({) ident(results) operator(+=) local_variable(it) operator(==~) regexp<delimiter(/)content(^[^)content(\\p)content({Punct}]+)content($)delimiter(/)> operator(?)string<delimiter(')content(Y)delimiter(')>operator(:)string<delimiter(')content(N)delimiter(')> (})
keyword(assert) ident(results) operator(==) string<delimiter(')content(YYYYYYYYYN)delimiter(')>
comment(//----------------------------------------------------------------------------------)
@@ -2273,22 +2273,22 @@ comment(// @@PLEAC@@_6.4)
comment(//----------------------------------------------------------------------------------)
ident(str) operator(=) string<delimiter(')content(groovy.codehaus.org and www.aboutgroovy.com)delimiter(')>
ident(re) operator(=) string<delimiter(''')content((?x\) # to enable whitespace and comments
- ( # capture the hostname in )content($)content(1
+ ( # capture the hostname in $1
(?: # these parens for grouping only
(?! [-_] \) # lookahead for neither underscore nor dash
- [)content(\\\\)content(w-] + # hostname component
- )content(\\\\)content(. # and the domain dot
+ [)char(\\\\)content(w-] + # hostname component
+ )char(\\\\)content(. # and the domain dot
\) + # now repeat that whole thing a bunch of times
[A-Za-z] # next must be a letter
- [)content(\\\\)content(w-] + # now trailing domain part
- \) # end of )content($)content(1 capture
+ [)char(\\\\)content(w-] + # now trailing domain part
+ \) # end of $1 capture
)delimiter(''')>
ident(finder) operator(=) ident(str) operator(=~) ident(re)
ident(out) operator(=) ident(str)
operator(()integer(0)operator(..<)ident(finder)operator(.)ident(count)(\))operator(.)ident(each)operator({)
ident(adr) operator(=) ident(finder)operator([)local_variable(it)(])operator([)integer(0)(])
- ident(out) operator(=) ident(out)operator(.)ident(replaceAll)operator(()ident(adr)operator(,) string<delimiter(")inline<inline_delimiter($)ident(adr)>content( [)inline<inline_delimiter(${)ident(InetAddress.getByName(adr\).hostAddress)inline_delimiter(})>content(])delimiter(")>(\))
+ ident(out) operator(=) ident(out)operator(.)ident(replaceAll)operator(()ident(adr)operator(,) string<delimiter(")inline<inline_delimiter($)ident(adr)>content( [)inline<inline_delimiter(${)pre_type(InetAddress)operator(.)ident(getByName)operator(()ident(adr)(\))operator(.)ident(hostAddress)inline_delimiter(})>content(])delimiter(")>(\))
(})
ident(println) ident(out)
comment(// => groovy.codehaus.org [63.246.7.187] and www.aboutgroovy.com [63.246.7.76])
@@ -2297,13 +2297,13 @@ comment(// to match whitespace or #-characters in an extended re you need to esc
ident(foo) operator(=) integer(42)
ident(str) operator(=) string<delimiter(')content(blah #foo# blah)delimiter(')>
ident(re) operator(=) string<delimiter(''')content((?x\) # to enable whitespace and comments
- )content(\\\\)content(# # a pound sign
- ()content(\\\\)content(w+\) # the variable name
- )content(\\\\)content(# # another pound sign
+ )char(\\\\)content(# # a pound sign
+ ()char(\\\\)content(w+\) # the variable name
+ )char(\\\\)content(# # another pound sign
)delimiter(''')>
ident(finder) operator(=) ident(str) operator(=~) ident(re)
ident(found) operator(=) ident(finder)operator([)integer(0)(])
-ident(out) operator(=) ident(str)operator(.)ident(replaceAll)operator(()ident(found)operator([)integer(0)(])operator(,) ident(evaluate)operator(()ident(found)operator([)integer(1)(]\))operator(.)ident(toString)operator(()(\)\))
+ident(out) operator(=) ident(str)operator(.)ident(replaceAll)operator(()ident(found)operator([)integer(0)(])operator(,) ident(evaluate)operator(()ident(found)operator([)integer(1)(])(\))operator(.)ident(toString)operator(()(\))(\))
keyword(assert) ident(out) operator(==) string<delimiter(')content(blah 42 blah)delimiter(')>
comment(//----------------------------------------------------------------------------------)
@@ -2312,41 +2312,41 @@ comment(//----------------------------------------------------------------------
ident(fish) operator(=) string<delimiter(')content(One fish two fish red fish blue fish)delimiter(')>
ident(expected) operator(=) string<delimiter(')content(The third fish is a red one.)delimiter(')>
ident(thirdFish) operator(=) regexp<delimiter(/)content((?:)char(\\w)content(+)char(\\s)content(+fish)char(\\s)content(+\){2}()char(\\w)content(+\))char(\\s)content(+fish.*)delimiter(/)>
-keyword(assert) ident(expected) operator(==) operator(()ident(fish)operator(.)ident(replaceAll)operator(()ident(thirdFish)operator(,) string<delimiter(')content(The third fish is a )content($)content(1 one.)delimiter(')>(\)\))
+keyword(assert) ident(expected) operator(==) operator(()ident(fish)operator(.)ident(replaceAll)operator(()ident(thirdFish)operator(,) string<delimiter(')content(The third fish is a $1 one.)delimiter(')>(\))(\))
ident(anyFish) operator(=) regexp<delimiter(/)content(()char(\\w)content(+\))char(\\s)content(+fish)char(\\b)delimiter(/)>
ident(finder) operator(=) ident(fish) operator(=~) ident(anyFish)
comment(// finder contains an array of matched groups)
comment(// 2 = third one (index start at 0\), 1 = matched word in group)
-ident(out) operator(=) string<delimiter(")content(The third fish is a )inline<inline_delimiter(${)ident(finder[2][1])inline_delimiter(})>content( one.)delimiter(")>
+ident(out) operator(=) string<delimiter(")content(The third fish is a )inline<inline_delimiter(${)ident(finder)operator([)integer(2)(])operator([)integer(1)(])inline_delimiter(})>content( one.)delimiter(")>
keyword(assert) ident(out) operator(==) ident(expected)
ident(evens) operator(=) type([])
operator(()integer(0)operator(..<)ident(finder)operator(.)ident(count)(\))operator(.)ident(findAll)operator({)local_variable(it)operator(%)integer(2)operator(!=)integer(0)(})operator(.)ident(each)operator({) ident(evens) operator(+=) ident(finder)operator([)local_variable(it)(])operator([)integer(1)(]) (})
-ident(println) string<delimiter(")content(Even numbered fish are )inline<inline_delimiter(${)ident(evens.join(' '\))inline_delimiter(})>content(.)delimiter(")>
+ident(println) string<delimiter(")content(Even numbered fish are )inline<inline_delimiter(${)ident(evens)operator(.)ident(join)operator(()string<delimiter(')content( )delimiter(')>(\))inline_delimiter(})>content(.)delimiter(")>
comment(// => Even numbered fish are two blue.)
comment(// one of several ways to do this)
ident(pond) operator(=) ident(fish) operator(+) string<delimiter(')content( in the pond)delimiter(')>
ident(fishInPond) operator(=) operator(()regexp<delimiter(/)content(()char(\\w)content(+\)()char(\\s)content(+fish)char(\\b)char(\\s)content(*\))delimiter(/)>(\)) operator(*) integer(4) operator(+) regexp<delimiter(/)content((.*\))delimiter(/)>
ident(found) operator(=) operator(()ident(pond) operator(=~) ident(fishInPond)(\))operator([)integer(0)(])
-ident(println) operator(()operator(()ident(found)operator([)integer(1)operator(..)integer(6)(]) operator(+) string<delimiter(')content(sushi)delimiter(')> operator(+) ident(found)operator([)integer(8)operator(..)integer(9)(]\))operator(.)ident(join)operator(()(\)\))
+ident(println) operator(()operator(()ident(found)operator([)integer(1)operator(..)integer(6)(]) operator(+) string<delimiter(')content(sushi)delimiter(')> operator(+) ident(found)operator([)integer(8)operator(..)integer(9)(])(\))operator(.)ident(join)operator(()(\))(\))
comment(// => One fish two fish red fish sushi fish in the pond)
comment(// find last fish)
ident(expected) operator(=) string<delimiter(')content(Last fish is blue)delimiter(')>
ident(pond) operator(=) string<delimiter(')content(One fish two fish red fish blue fish swim here.)delimiter(')>
ident(finder) operator(=) operator(()ident(pond) operator(=~) ident(anyFish)(\))
-keyword(assert) ident(expected) operator(==) string<delimiter(")content(Last fish is )inline<inline_delimiter(${)ident(finder[finder.count-1][1])inline_delimiter(})>delimiter(")>
+keyword(assert) ident(expected) operator(==) string<delimiter(")content(Last fish is )inline<inline_delimiter(${)ident(finder)operator([)ident(finder)operator(.)ident(count)operator(-)integer(1)(])operator([)integer(1)(])inline_delimiter(})>delimiter(")>
comment(// => Last fish is blue)
comment(// greedy match version of above)
ident(finder) operator(=) operator(()ident(pond) operator(=~) regexp<delimiter(/)content(.*)char(\\b)delimiter(/)> operator(+) ident(anyFish)(\))
-keyword(assert) ident(expected) operator(==) string<delimiter(")content(Last fish is )inline<inline_delimiter(${)ident(finder[0][1])inline_delimiter(})>delimiter(")>
+keyword(assert) ident(expected) operator(==) string<delimiter(")content(Last fish is )inline<inline_delimiter(${)ident(finder)operator([)integer(0)(])operator([)integer(1)(])inline_delimiter(})>delimiter(")>
comment(// last fish match version of above)
ident(finder) operator(=) operator(()ident(pond) operator(=~) regexp<delimiter(/)char(\\b)content(()char(\\w)content(+\))char(\\s)content(+fish)char(\\b)content((?!.*)char(\\b)content(fish)char(\\b)content(\))delimiter(/)>(\))
-keyword(assert) ident(expected) operator(==) string<delimiter(")content(Last fish is )inline<inline_delimiter(${)ident(finder[0][1])inline_delimiter(})>delimiter(")>
+keyword(assert) ident(expected) operator(==) string<delimiter(")content(Last fish is )inline<inline_delimiter(${)ident(finder)operator([)integer(0)(])operator([)integer(1)(])inline_delimiter(})>delimiter(")>
comment(//----------------------------------------------------------------------------------)
comment(// @@PLEAC@@_6.6)
@@ -2374,11 +2374,11 @@ ident(stripped) operator(=) ident(fakedFile)operator(.)ident(replaceAll)operator
keyword(assert) ident(stripExpectations) operator(==) ident(stripped)
ident(pattern) operator(=) string<delimiter(''')content((?x\)
- ( # capture in )content($)content(1
+ ( # capture in $1
Chapter # text string
- )content(\\\\)content(s+ # mandatory whitespace
- )content(\\\\)content(d+ # decimal number
- )content(\\\\)content(s* # optional whitespace
+ )char(\\\\)content(s+ # mandatory whitespace
+ )char(\\\\)content(d+ # decimal number
+ )char(\\\\)content(s* # optional whitespace
: # a real colon
. * # anything not a newline till end of line
\)
@@ -2391,7 +2391,7 @@ Chapter 1 Title
A paragraph.
)delimiter(''')>operator(.)ident(trim)operator(()(\))
-ident(headerfied) operator(=) ident(stripped)operator(.)ident(replaceAll)operator(()ident(pattern)operator(,) string<delimiter(')content(<H1>)content($)content(1</H1>)delimiter(')>(\))
+ident(headerfied) operator(=) ident(stripped)operator(.)ident(replaceAll)operator(()ident(pattern)operator(,) string<delimiter(')content(<H1>$1</H1>)delimiter(')>(\))
keyword(assert) ident(headerfyExpectations) operator(==) ident(headerfied)
comment(// one liner equivalent which prints to stdout)
@@ -2418,7 +2418,7 @@ END
ident(chunkyPattern) operator(=) regexp<delimiter(/)content((?ms\)^START(.*?\)^END)delimiter(/)>
ident(finder) operator(=) ident(fakeFileInput) operator(=~) ident(chunkyPattern)
operator(()integer(0)operator(..<)ident(finder)operator(.)ident(count)(\))operator(.)ident(each) operator({)
- ident(println) string<delimiter(")content(Chunk #)inline<inline_delimiter($)local_variable(it)>content( contains )inline<inline_delimiter(${)ident(new StringTokenizer(finder[it][1],'\\n'\).countTokens(\))inline_delimiter(})>content( lines.)delimiter(")>
+ ident(println) string<delimiter(")content(Chunk #)inline<inline_delimiter($)local_variable(it)>content( contains )inline<inline_delimiter(${)keyword(new) pre_type(StringTokenizer)operator(()ident(finder)operator([)local_variable(it)(])operator([)integer(1)(])operator(,)string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(countTokens)operator(()(\))inline_delimiter(})>content( lines.)delimiter(")>
(})
comment(// =>)
comment(// Chunk #0 contains 2 lines.)
@@ -2451,7 +2451,7 @@ vwx
yz!
)delimiter(''')>
ident(chunks) operator(=) ident(fakedFiletext)operator(.)ident(split)operator(()regexp<delimiter(/)content((?m\)^)content(\\.)content((Ch|Se|Ss\))content($)delimiter(/)>(\))
-ident(println) string<delimiter(")content(I read )inline<inline_delimiter(${)ident(chunks.size(\))inline_delimiter(})>content( chunks.)delimiter(")>
+ident(println) string<delimiter(")content(I read )inline<inline_delimiter(${)ident(chunks)operator(.)ident(size)operator(()(\))inline_delimiter(})>content( chunks.)delimiter(")>
comment(// => I read 10 chunks.)
comment(//----------------------------------------------------------------------------------)
@@ -2476,10 +2476,10 @@ line CCC
Done.
)delimiter(''')>operator(.)ident(trim)operator(()(\))
-ident(examplePattern) operator(=) regexp<delimiter(/)content((?ms\)<XMP>(.*?\)<)content(\\/)content(XMP>)delimiter(/)>
+ident(examplePattern) operator(=) regexp<delimiter(/)content((?ms\)<XMP>(.*?\)<)char(\\/)content(XMP>)delimiter(/)>
ident(finder) operator(=) ident(htmlContent) operator(=~) ident(examplePattern)
operator(()integer(0)operator(..<)ident(finder)operator(.)ident(count)(\))operator(.)ident(each) operator({)
- ident(println) string<delimiter(")content(Example )inline<inline_delimiter(${)ident(it+1)inline_delimiter(})>content(:)delimiter(")>
+ ident(println) string<delimiter(")content(Example )inline<inline_delimiter(${)local_variable(it)operator(+)integer(1)inline_delimiter(})>content(:)delimiter(")>
ident(println) ident(finder)operator([)local_variable(it)(])operator([)integer(1)(])
(})
comment(// =>)
@@ -2519,10 +2519,10 @@ ident(fakedMailInput)operator(.)ident(split)operator(()string<delimiter(')conten
keyword(if) operator(()ident(m)(\)) operator({)
ident(addr) operator(=) ident(m)operator([)integer(0)(])operator([)integer(1)(]) operator(=~) regexp<delimiter(/)content(([^<>(\),;)char(\\s)content(]+)content(\\@)content([^<>(\),;)char(\\s)content(]+\))delimiter(/)>
ident(x) operator(=) ident(addr)operator([)integer(0)(])operator([)integer(1)(])
- keyword(if) operator(()ident(seen)operator(.)ident(containsKey)operator(()ident(x)(\)\)) ident(seen)operator([)ident(x)(]) operator(+=) integer(1) keyword(else) ident(seen)operator([)ident(x)(]) operator(=) integer(1)
+ keyword(if) operator(()ident(seen)operator(.)ident(containsKey)operator(()ident(x)(\))(\)) ident(seen)operator([)ident(x)(]) operator(+=) integer(1) keyword(else) ident(seen)operator([)ident(x)(]) operator(=) integer(1)
(})
(})
-ident(seen)operator(.)ident(each)operator({) ident(k)operator(,)ident(v) operator(->) ident(println) string<delimiter(")content(Address )inline<inline_delimiter($)ident(k)>content( seen )inline<inline_delimiter($)ident(v)>content( time)inline<inline_delimiter(${)ident(v==1?'':'s')inline_delimiter(})>content(.)delimiter(")> (})
+ident(seen)operator(.)ident(each)operator({) ident(k)operator(,)ident(v) operator(->) ident(println) string<delimiter(")content(Address )inline<inline_delimiter($)ident(k)>content( seen )inline<inline_delimiter($)ident(v)>content( time)inline<inline_delimiter(${)ident(v)operator(==)integer(1)operator(?)string<delimiter(')delimiter(')>operator(:)string<delimiter(')content(s)delimiter(')>inline_delimiter(})>content(.)delimiter(")> (})
comment(// =>)
comment(// Address noone@nowhere.com seen 1 time.)
comment(// Address someone@somewhere.com seen 2 times.)
@@ -2542,13 +2542,13 @@ keyword(def) method(glob2pat)operator(()ident(globstr)(\)) operator({)
keyword(def) ident(patmap) operator(=) operator([) string<delimiter(')content(*)delimiter(')>operator(:)string<delimiter(')content(.*)delimiter(')>operator(,) string<delimiter(')content(?)delimiter(')>operator(:)string<delimiter(')content(.)delimiter(')>operator(,) string<delimiter(')content([)delimiter(')>operator(:)string<delimiter(')content([)delimiter(')>operator(,) string<delimiter(')content(])delimiter(')>operator(:)string<delimiter(')content(])delimiter(')> (])
keyword(def) ident(result) operator(=) string<delimiter(')content((?m\)^)delimiter(')>
string<delimiter(')content(^)delimiter(')> operator(+) ident(globstr)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((.\))delimiter(/)>(\)) operator({) ident(all)operator(,) ident(c) operator(->)
- ident(result) operator(+=) operator(()ident(patmap)operator(.)ident(containsKey)operator(()ident(c)(\)) operator(?) ident(patmap)operator([)ident(c)(]) operator(:) pre_type(Pattern)operator(.)ident(quote)operator(()ident(c)(\)\))
+ ident(result) operator(+=) operator(()ident(patmap)operator(.)ident(containsKey)operator(()ident(c)(\)) operator(?) ident(patmap)operator([)ident(c)(]) operator(:) pre_type(Pattern)operator(.)ident(quote)operator(()ident(c)(\))(\))
(})
ident(result) operator(+) string<delimiter(')content($)delimiter(')>
(})
keyword(def) method(checkNumMatches)operator(()ident(pat)operator(,) ident(count)(\)) operator({)
- keyword(assert) operator(()ident(names) operator(=~) ident(glob2pat)operator(()ident(pat)(\)\))operator(.)ident(count) operator(==) ident(count)
+ keyword(assert) operator(()ident(names) operator(=~) ident(glob2pat)operator(()ident(pat)(\))(\))operator(.)ident(count) operator(==) ident(count)
(})
ident(checkNumMatches)operator(()string<delimiter(')content(*.*)delimiter(')>operator(,) integer(3)(\))
@@ -2565,14 +2565,14 @@ ident(states) operator(=) string<delimiter(')content(CO ON MI WI MN)delimiter(')
keyword(def) method(popgrep1)operator(()ident(file)(\)) operator({)
ident(file)operator(.)ident(eachLine)operator({) ident(line) operator(->)
- keyword(if) operator(()ident(states)operator(.)ident(any)operator({) ident(line) operator(=~) regexp<delimiter(/)char(\\b)inline<inline_delimiter($)local_variable(it)>char(\\b)delimiter(/)> (}\)) ident(println) ident(line)
+ keyword(if) operator(()ident(states)operator(.)ident(any)operator({) ident(line) operator(=~) regexp<delimiter(/)char(\\b)inline<inline_delimiter($)local_variable(it)>char(\\b)delimiter(/)> (})(\)) ident(println) ident(line)
(})
(})
comment(// popgrep1(new File('path_to_file'\)\))
comment(// version 2: eval strings; fast but hard to quote (SLOW\))
keyword(def) method(popgrep2)operator(()ident(file)(\)) operator({)
- keyword(def) ident(code) operator(=) string<delimiter(')content(def found = false)content(\\n)delimiter(')>
+ keyword(def) ident(code) operator(=) string<delimiter(')content(def found = false\\n)delimiter(')>
ident(states)operator(.)ident(each)operator({)
ident(code) operator(+=) string<delimiter(")content(if (!found && line =~ /)char(\\\\)content(b)inline<inline_delimiter($)local_variable(it)>char(\\\\)content(b/\) found = true)char(\\n)delimiter(")>
(})
@@ -2583,7 +2583,7 @@ comment(// popgrep2(new File('path_to_file'\)\))
comment(// version 2b: eval using switch/case (not in Perl cookbook\) (SLOW\))
keyword(def) method(popgrep2b)operator(()ident(file)(\)) operator({)
- keyword(def) ident(code) operator(=) string<delimiter(')content(switch(line\) {)content(\\n)delimiter(')>
+ keyword(def) ident(code) operator(=) string<delimiter(')content(switch(line\) {\\n)delimiter(')>
ident(states)operator(.)ident(each)operator({)
ident(code) operator(+=) string<delimiter(")content(case ~/.*)char(\\\\)content(b)inline<inline_delimiter($)local_variable(it)>char(\\\\)content(b.*/:)char(\\n)content(println line;break)char(\\n)delimiter(")>
(})
@@ -2595,7 +2595,7 @@ comment(// popgrep2b(new File('path_to_file'\)\))
comment(// version3: build a match_any function as a GString)
keyword(def) method(popgrep3)operator(()ident(file)(\)) operator({)
keyword(def) ident(code) operator(=) ident(states)operator(.)ident(collect)operator({) string<delimiter(")content(line =~ /)char(\\\\)content(b)inline<inline_delimiter($)local_variable(it)>char(\\\\)content(b/)delimiter(")> (})operator(.)ident(join)operator(()string<delimiter(')content(||)delimiter(')>(\))
- ident(file)operator(.)ident(eachLine)operator({) ident(line) operator(=) local_variable(it)operator(;) keyword(if) operator(()ident(evaluate)operator(()ident(code)(\)\)) ident(println) ident(line) (})
+ ident(file)operator(.)ident(eachLine)operator({) ident(line) operator(=) local_variable(it)operator(;) keyword(if) operator(()ident(evaluate)operator(()ident(code)(\))(\)) ident(println) ident(line) (})
(})
comment(// popgrep3(new File('path_to_file'\)\))
@@ -2603,7 +2603,7 @@ comment(// version4: pretty fast, but simple: compile all re's first:)
ident(patterns) operator(=) ident(states)operator(.)ident(collect)operator({) operator(~)regexp<delimiter(/)char(\\b)inline<inline_delimiter($)local_variable(it)>char(\\b)delimiter(/)> (})
keyword(def) method(popgrep4)operator(()ident(file)(\)) operator({)
ident(file)operator(.)ident(eachLine)operator({) ident(line) operator(->)
- keyword(if) operator(()ident(patterns)operator(.)ident(any)operator({) local_variable(it)operator(.)ident(matcher)operator(()ident(line)(\)}\)) ident(println) ident(line)
+ keyword(if) operator(()ident(patterns)operator(.)ident(any)operator({) local_variable(it)operator(.)ident(matcher)operator(()ident(line)(\))(})(\)) ident(println) ident(line)
(})
(})
comment(// popgrep4(new File('path_to_file'\)\))
@@ -2621,7 +2621,7 @@ comment(// version5b: faster (like 5 but compiled outside loop\))
ident(pattern) operator(=) operator(~)ident(states)operator(.)ident(collect)operator({) regexp<delimiter(/)char(\\b)inline<inline_delimiter($)local_variable(it)>char(\\b)delimiter(/)> (})operator(.)ident(join)operator(()string<delimiter(')content(|)delimiter(')>(\))
keyword(def) method(popgrep5b)operator(()ident(file)(\)) operator({)
ident(file)operator(.)ident(eachLine)operator({) ident(line) operator(->)
- keyword(if) operator(()ident(pattern)operator(.)ident(matcher)operator(()ident(line)(\)\)) ident(println) ident(line)
+ keyword(if) operator(()ident(pattern)operator(.)ident(matcher)operator(()ident(line)(\))(\)) ident(println) ident(line)
(})
(})
comment(// popgrep5b(new File('path_to_file'\)\))
@@ -2644,23 +2644,23 @@ both cat and dog
neither
just a cat
just a dog
-)delimiter(''')>operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\)})
+)delimiter(''')>operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\))(})
keyword(def) method(matchAny)operator(()ident(line)operator(,) ident(patterns)(\)) operator({) ident(patterns)operator(.)ident(any)operator({) ident(line) operator(=~) local_variable(it) (}) (})
keyword(def) method(matchAll)operator(()ident(line)operator(,) ident(patterns)(\)) operator({) ident(patterns)operator(.)ident(every)operator({) ident(line) operator(=~) local_variable(it) (}) (})
-keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAny)operator(()local_variable(it)operator(,) operator([)string<delimiter(')content(cat)delimiter(')>operator(,)string<delimiter(')content(dog)delimiter(')>(]\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(3)
-keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAny)operator(()local_variable(it)operator(,) operator([)string<delimiter(')content(cat)content($)delimiter(')>operator(,)string<delimiter(')content(^n.*)delimiter(')>(]\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(2)
-keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAll)operator(()local_variable(it)operator(,) operator([)string<delimiter(')content(cat)delimiter(')>operator(,)string<delimiter(')content(dog)delimiter(')>(]\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(1)
-keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAll)operator(()local_variable(it)operator(,) operator([)string<delimiter(')content(cat)content($)delimiter(')>operator(,)string<delimiter(')content(^n.*)delimiter(')>(]\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(0)
+keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAny)operator(()local_variable(it)operator(,) operator([)string<delimiter(')content(cat)delimiter(')>operator(,)string<delimiter(')content(dog)delimiter(')>(])(\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(3)
+keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAny)operator(()local_variable(it)operator(,) operator([)string<delimiter(')content(cat$)delimiter(')>operator(,)string<delimiter(')content(^n.*)delimiter(')>(])(\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(2)
+keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAll)operator(()local_variable(it)operator(,) operator([)string<delimiter(')content(cat)delimiter(')>operator(,)string<delimiter(')content(dog)delimiter(')>(])(\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(1)
+keyword(assert) ident(input)operator(.)ident(findAll)operator({) ident(matchAll)operator(()local_variable(it)operator(,) operator([)string<delimiter(')content(cat$)delimiter(')>operator(,)string<delimiter(')content(^n.*)delimiter(')>(])(\)) (})operator(.)ident(size)operator(()(\)) operator(==) integer(0)
comment(//----------------------------------------------------------------------------------)
comment(// @@PLEAC@@_6.11)
comment(//----------------------------------------------------------------------------------)
comment(// patternCheckingScript:)
-ident(prompt) operator(=) string<delimiter(')content(\\n)content(> )delimiter(')>
+ident(prompt) operator(=) string<delimiter(')content(\\n> )delimiter(')>
ident(print) string<delimiter(')content(Enter patterns to check:)delimiter(')> operator(+) ident(prompt)
-keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\)\))operator(.)ident(eachLine)operator({) ident(line) operator(->)
+keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\))(\))operator(.)ident(eachLine)operator({) ident(line) operator(->)
keyword(try) operator({)
pre_type(Pattern)operator(.)ident(compile)operator(()ident(line)(\))
ident(print) string<delimiter(')content(Valid)delimiter(')> operator(+) ident(prompt)
@@ -2685,12 +2685,12 @@ comment(//----------------------------------------------------------------------
ident(src) operator(=) string<delimiter(')content(dierk könig)delimiter(')>
comment(// simplistic with locale issue)
ident(dst) operator(=) ident(src)
-operator(()string<delimiter(')content(a)delimiter(')>operator(..)string<delimiter(')content(z)delimiter(')>(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?<=[^a-zA-Z]\))delimiter(/)>operator(+)local_variable(it)operator(+)regexp<delimiter(/)content(|)content(\\A)delimiter(/)>operator(+)local_variable(it)operator(,) local_variable(it)operator(.)ident(toUpperCase)operator(()(\)\)) (})
+operator(()string<delimiter(')content(a)delimiter(')>operator(..)string<delimiter(')content(z)delimiter(')>(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?<=[^a-zA-Z]\))delimiter(/)>operator(+)local_variable(it)operator(+)regexp<delimiter(/)content(|)content(\\A)delimiter(/)>operator(+)local_variable(it)operator(,) local_variable(it)operator(.)ident(toUpperCase)operator(()(\))(\)) (})
ident(println) ident(dst)
comment(// => Dierk KöNig)
comment(// locale avoidance)
ident(dst) operator(=) ident(src)
-operator(()string<delimiter(')content(a)delimiter(')>operator(..)string<delimiter(')content(z)delimiter(')>(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?<=)content(\\A)content(|)char(\\b)content(\))delimiter(/)>operator(+)local_variable(it)operator(,) local_variable(it)operator(.)ident(toUpperCase)operator(()(\)\)) (})
+operator(()string<delimiter(')content(a)delimiter(')>operator(..)string<delimiter(')content(z)delimiter(')>(\))operator(.)ident(each)operator({) ident(dst) operator(=) ident(dst)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?<=)content(\\A)content(|)char(\\b)content(\))delimiter(/)>operator(+)local_variable(it)operator(,) local_variable(it)operator(.)ident(toUpperCase)operator(()(\))(\)) (})
ident(println) ident(dst)
comment(// => Dierk König)
comment(//----------------------------------------------------------------------------------)
@@ -2722,14 +2722,14 @@ blaster
blasters
blasting
blasts
-)delimiter(''')>operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\)})
-ident(metrics) operator(=) operator([)keyword(new) ident(Levenshtein)operator(()(\))operator(,) keyword(new) ident(MongeElkan)operator(()(\))operator(,) keyword(new) ident(JaroWinkler)operator(()(\))operator(,) keyword(new) ident(Soundex)operator(()(\)])
+)delimiter(''')>operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(findAll)operator({)local_variable(it)operator(.)ident(trim)operator(()(\))(})
+ident(metrics) operator(=) operator([)keyword(new) ident(Levenshtein)operator(()(\))operator(,) keyword(new) ident(MongeElkan)operator(()(\))operator(,) keyword(new) ident(JaroWinkler)operator(()(\))operator(,) keyword(new) ident(Soundex)operator(()(\))(])
keyword(def) method(out)operator(()ident(name)operator(,) ident(results)(\)) operator({)
- ident(print) ident(name)operator(.)ident(padLeft)operator(()integer(14)(\)) operator(+) string<delimiter(')content( )delimiter(')>operator(;) ident(results)operator(.)ident(each)operator({)ident(print)operator(()local_variable(it)operator(.)ident(padRight)operator(()integer(16)(\)\)})operator(;) ident(println)operator(()(\))
+ ident(print) ident(name)operator(.)ident(padLeft)operator(()integer(14)(\)) operator(+) string<delimiter(')content( )delimiter(')>operator(;) ident(results)operator(.)ident(each)operator({)ident(print)operator(()local_variable(it)operator(.)ident(padRight)operator(()integer(16)(\))(\))(})operator(;) ident(println)operator(()(\))
(})
-keyword(def) method(outr)operator(()ident(name)operator(,) ident(results)(\))operator({)ident(out)operator(()ident(name)operator(,) ident(results)operator(.)ident(collect)operator({)string<delimiter(')delimiter(')>operator(+)operator(()operator(()type(int)(\))operator(()local_variable(it)operator(*)integer(100)(\)\))operator(/)integer(100)(}\)})
+keyword(def) method(outr)operator(()ident(name)operator(,) ident(results)(\))operator({)ident(out)operator(()ident(name)operator(,) ident(results)operator(.)ident(collect)operator({)string<delimiter(')delimiter(')>operator(+)operator(()operator(()type(int)(\))operator(()local_variable(it)operator(*)integer(100)(\))(\))operator(/)integer(100)(})(\))(})
ident(out) operator(()string<delimiter(')content(Word/Metric)delimiter(')>operator(,) ident(metrics)operator(.)ident(collect)operator({)local_variable(it)operator(.)ident(shortDescriptionString)(}) (\))
-ident(candidates)operator(.)ident(each)operator({) ident(w) operator(->) ident(outr)operator(()ident(w)operator(,) ident(metrics)operator(.)ident(collect)operator({) ident(m) operator(->) ident(m)operator(.)ident(getSimilarity)operator(()ident(target)operator(,) ident(w)(\)}) (\)})
+ident(candidates)operator(.)ident(each)operator({) ident(w) operator(->) ident(outr)operator(()ident(w)operator(,) ident(metrics)operator(.)ident(collect)operator({) ident(m) operator(->) ident(m)operator(.)ident(getSimilarity)operator(()ident(target)operator(,) ident(w)(\))(}) (\))(})
comment(// =>)
comment(// Word/Metric Levenshtein MongeElkan JaroWinkler Soundex)
comment(// quick 0 0.11 0 0.66)
@@ -2773,12 +2773,12 @@ comment(// you to swap patterns without changing the buffer position)
ident(text) operator(=) string<delimiter(')content(the year 1752 lost 10 days on the 3rd of September)delimiter(')>
ident(p) operator(=) operator(~)regexp<delimiter(/)content((?<=)char(\\D)content(\)()char(\\d)content(+\))delimiter(/)>
ident(m) operator(=) ident(p)operator(.)ident(matcher)operator(()ident(text)(\))
-keyword(while) operator(()ident(m)operator(.)ident(find)operator(()(\)\)) operator({)
+keyword(while) operator(()ident(m)operator(.)ident(find)operator(()(\))(\)) operator({)
ident(println) string<delimiter(')content(Found )delimiter(')> operator(+) ident(m)operator(.)ident(group)operator(()(\)) operator(+) string<delimiter(')content( starting at pos )delimiter(')> operator(+) ident(m)operator(.)ident(start)operator(()(\)) operator(+)
string<delimiter(')content( and ending at pos )delimiter(')> operator(+) ident(m)operator(.)ident(end)operator(()(\))
(})
comment(// now reset pos back to between 1st and 2nd numbers)
-keyword(if) operator(()ident(m)operator(.)ident(find)operator(()integer(16)(\)\)) operator({) ident(println) string<delimiter(')content(Found )delimiter(')> operator(+) ident(m)operator(.)ident(group)operator(()(\)) (})
+keyword(if) operator(()ident(m)operator(.)ident(find)operator(()integer(16)(\))(\)) operator({) ident(println) string<delimiter(')content(Found )delimiter(')> operator(+) ident(m)operator(.)ident(group)operator(()(\)) (})
comment(// =>)
comment(// Found 1752 starting at pos 9 and ending at pos 13)
comment(// Found 10 starting at pos 19 and ending at pos 21)
@@ -2789,8 +2789,8 @@ comment(// Alternatively you can use Scanner in Java 5-7+:)
ident(p1) operator(=) operator(~)regexp<delimiter(/)content((?<=)char(\\D)content(\)()char(\\d)content(+\))delimiter(/)>
ident(p2) operator(=) operator(~)regexp<delimiter(/)char(\\S)content(+)delimiter(/)>
ident(s) operator(=) keyword(new) pre_type(Scanner)operator(()ident(text)(\))
-keyword(while) operator(()operator(()ident(f) operator(=) ident(s)operator(.)ident(findInLine)operator(()ident(p1)(\)\)\)) operator({) ident(println) string<delimiter(')content(Found: )delimiter(')> operator(+) ident(f) (})
-keyword(if) operator(()operator(()ident(f) operator(=) ident(s)operator(.)ident(findInLine)operator(()ident(p2)(\)\)\)) operator({) ident(println) string<delimiter(")content(Found )inline<inline_delimiter($)ident(f)>content( after the last number.)delimiter(")> (})
+keyword(while) operator(()operator(()ident(f) operator(=) ident(s)operator(.)ident(findInLine)operator(()ident(p1)(\))(\))(\)) operator({) ident(println) string<delimiter(')content(Found: )delimiter(')> operator(+) ident(f) (})
+keyword(if) operator(()operator(()ident(f) operator(=) ident(s)operator(.)ident(findInLine)operator(()ident(p2)(\))(\))(\)) operator({) ident(println) string<delimiter(")content(Found )inline<inline_delimiter($)ident(f)>content( after the last number.)delimiter(")> (})
comment(// =>)
comment(// Found: 1752)
comment(// Found: 10)
@@ -2804,11 +2804,11 @@ ident(html) operator(=) string<delimiter(')content(<b><i>this</i> and <i>that</i
ident(greedyHtmlStripPattern) operator(=) operator(~)regexp<delimiter(/)content((?m\)<.*>)delimiter(/)> comment(// not good)
ident(nonGreedyHtmlStripPattern) operator(=) operator(~)regexp<delimiter(/)content((?m\)<.*?>)delimiter(/)> comment(// not great)
-ident(simpleNested) operator(=) operator(~)regexp<delimiter(/)content((?mx\)<b><i>(.*?\)<)content(\\/)content(i><)content(\\/)content(b>)delimiter(/)>
+ident(simpleNested) operator(=) operator(~)regexp<delimiter(/)content((?mx\)<b><i>(.*?\)<)char(\\/)content(i><)char(\\/)content(b>)delimiter(/)>
comment(// match BEGIN, then not BEGIN, then END)
ident(generalPattern) operator(=) operator(~)regexp<delimiter(/)content(BEGIN((?:(?!BEGIN\).\)*\)END)delimiter(/)>
-ident(betterButInefficient1) operator(=) operator(~)regexp<delimiter(/)content((?mx\)<b><i>( (?: (?!<)content(\\/)content(b>|<)content(\\/)content(i>\). \)* \) <)content(\\/)content(i><)content(\\/)content(b>)delimiter(/)>
-ident(betterButInefficient2) operator(=) operator(~)regexp<delimiter(/)content((?mx\)<b><i>( (?: (?!<)content(\\/)content([ib]>\). \)* \) <)content(\\/)content(i><)content(\\/)content(b>)delimiter(/)>
+ident(betterButInefficient1) operator(=) operator(~)regexp<delimiter(/)content((?mx\)<b><i>( (?: (?!<)char(\\/)content(b>|<)char(\\/)content(i>\). \)* \) <)char(\\/)content(i><)char(\\/)content(b>)delimiter(/)>
+ident(betterButInefficient2) operator(=) operator(~)regexp<delimiter(/)content((?mx\)<b><i>( (?: (?!<)char(\\/)content([ib]>\). \)* \) <)char(\\/)content(i><)char(\\/)content(b>)delimiter(/)>
ident(efficientPattern) operator(=) string<delimiter(''')content((?mx\)
<b><i>
@@ -2825,15 +2825,15 @@ comment(//----------------------------------------------------------------------
comment(// @@PLEAC@@_6.16)
comment(//----------------------------------------------------------------------------------)
-ident(input) operator(=) string<delimiter(')content(This is a test)content(\\n)content(Test of the duplicate word finder.)content(\\n)delimiter(')>
+ident(input) operator(=) string<delimiter(')content(This is a test\\nTest of the duplicate word finder.\\n)delimiter(')>
ident(dupWordPattern) operator(=) string<delimiter(''')content((?ix\)
- )content(\\\\)content(b # start at word boundary
- ()content(\\\\)content(S+\) # find chunk of non-whitespace
- )content(\\\\)content(b # until a word boundary
+ )char(\\\\)content(b # start at word boundary
+ ()char(\\\\)content(S+\) # find chunk of non-whitespace
+ )char(\\\\)content(b # until a word boundary
(
- )content(\\\\)content(s+ # followed by whitespace
- )content(\\\\)content(1 # and that same chunk again
- )content(\\\\)content(b # and a word boundary
+ )char(\\\\)content(s+ # followed by whitespace
+ )char(\\\\)content(1 # and that same chunk again
+ )char(\\\\)content(b # and a word boundary
\) + # one or more times
)delimiter(''')>
ident(finder) operator(=) ident(input) operator(=~) ident(dupWordPattern)
@@ -2843,11 +2843,11 @@ comment(// => Found duplicate word: test)
ident(astr) operator(=) string<delimiter(')content(nobody)delimiter(')>
ident(bstr) operator(=) string<delimiter(')content(bodysnatcher)delimiter(')>
ident(m) operator(=) string<delimiter(")inline<inline_delimiter($)ident(astr)>content( )inline<inline_delimiter($)ident(bstr)>delimiter(")> operator(=~) regexp<delimiter(/)content(^()char(\\w)content(+\)()char(\\w)content(+\) )char(\\2)content(()char(\\w)content(+\))content($)delimiter(/)>
-ident(actual) operator(=) string<delimiter(")inline<inline_delimiter(${)ident(m[0][2])inline_delimiter(})>content( overlaps in )inline<inline_delimiter(${)ident(m[0][1])inline_delimiter(})>content(-)inline<inline_delimiter(${)ident(m[0][2])inline_delimiter(})>content(-)inline<inline_delimiter(${)ident(m[0][3])inline_delimiter(})>delimiter(")>
+ident(actual) operator(=) string<delimiter(")inline<inline_delimiter(${)ident(m)operator([)integer(0)(])operator([)integer(2)(])inline_delimiter(})>content( overlaps in )inline<inline_delimiter(${)ident(m)operator([)integer(0)(])operator([)integer(1)(])inline_delimiter(})>content(-)inline<inline_delimiter(${)ident(m)operator([)integer(0)(])operator([)integer(2)(])inline_delimiter(})>content(-)inline<inline_delimiter(${)ident(m)operator([)integer(0)(])operator([)integer(3)(])inline_delimiter(})>delimiter(")>
keyword(assert) ident(actual) operator(==) string<delimiter(')content(body overlaps in no-body-snatcher)delimiter(')>
ident(cap) operator(=) string<delimiter(')content(o)delimiter(')> operator(*) integer(180)
-keyword(while) operator(()ident(m) operator(=) operator(()ident(cap) operator(=~) regexp<delimiter(/)content(^(oo+?\))char(\\1)content(+)content($)delimiter(/)>(\)\)) operator({)
+keyword(while) operator(()ident(m) operator(=) operator(()ident(cap) operator(=~) regexp<delimiter(/)content(^(oo+?\))char(\\1)content(+)content($)delimiter(/)>(\))(\)) operator({)
ident(p1) operator(=) ident(m)operator([)integer(0)(])operator([)integer(1)(])
ident(print) ident(p1)operator(.)ident(size)operator(()(\)) operator(+) string<delimiter(')content( )delimiter(')>
ident(cap) operator(=) ident(cap)operator(.)ident(replaceAll)operator(()ident(p1)operator(,)string<delimiter(')content(o)delimiter(')>(\))
@@ -2857,7 +2857,7 @@ comment(// => 2 2 3 3 5)
comment(// diophantine)
comment(// solve for 12x + 15y + 16z = 281, maximizing x)
-keyword(if) operator(()operator(()ident(m) operator(=) operator(()string<delimiter(')content(o)delimiter(')> operator(*) integer(281)(\)) operator(=~) regexp<delimiter(/)content(^(o*\))char(\\1)content({11}(o*\))char(\\2)content({14}(o*\))char(\\3)content({15})content($)delimiter(/)>(\)\)) operator({)
+keyword(if) operator(()operator(()ident(m) operator(=) operator(()string<delimiter(')content(o)delimiter(')> operator(*) integer(281)(\)) operator(=~) regexp<delimiter(/)content(^(o*\))char(\\1)content({11}(o*\))char(\\2)content({14}(o*\))char(\\3)content({15})content($)delimiter(/)>(\))(\)) operator({)
ident(x)operator(=)ident(m)operator([)integer(0)(])operator([)integer(1)(])operator(.)ident(size)operator(()(\))operator(;) ident(y)operator(=)ident(m)operator([)integer(0)(])operator([)integer(2)(])operator(.)ident(size)operator(()(\))operator(;) ident(z)operator(=)ident(m)operator([)integer(0)(])operator([)integer(3)(])operator(.)ident(size)operator(()(\))
ident(println) string<delimiter(")content(One solution is: x=)inline<inline_delimiter($)ident(x)>content(; y=)inline<inline_delimiter($)ident(y)>content(; z=)inline<inline_delimiter($)ident(z)>delimiter(")>
(}) keyword(else) ident(println) string<delimiter(")content(No solution.)delimiter(")>
@@ -2955,7 +2955,7 @@ ident(noWaldoRegex) operator(=) string<delimiter(''')content((?x\)
\) # is so, the negation failed
. # any character (cuzza /s\)
\) * # repeat that grouping 0 or more
- )content($)content( # through the end of the string
+ $ # through the end of the string
)delimiter(''')>
keyword(assert) ident(map) operator(=~) ident(noWaldoRegex)
@@ -3008,7 +3008,7 @@ keyword(def) method(checkUnicode)operator(()ident(s)(\)) operator({)
ident(println) string<delimiter(')content(Exactly matches /)char(\\\\)content(PM)char(\\\\)content(pM*/ )delimiter(')> operator(+) operator(()ident(s) operator(==~) regexp<delimiter(/)content(\\P)content(M)content(\\p)content(M*)delimiter(/)>(\))
(})
ident(checkUnicode)operator(()string<delimiter(')content(à)delimiter(')>(\))
-ident(checkUnicode)operator(()string<delimiter(')content(\\u0061)content(\\u0300)delimiter(')>(\))
+ident(checkUnicode)operator(()string<delimiter(')content(\\u0061\\u0300)delimiter(')>(\))
ident(checkUnicode)operator(()string<delimiter(')content(\\u00E0)delimiter(')>(\))
comment(// =>)
comment(// à is of size 1)
@@ -3093,15 +3093,15 @@ comment(// => Action is edit)
keyword(def) method(buildAbbrev)operator(()ident(words)(\)) operator({)
keyword(def) ident(table) operator(=) keyword(new) pre_type(TreeMap)operator(()(\))
ident(words)operator(.)ident(each)operator({) ident(w) operator(->)
- operator(()integer(0)operator(..<)ident(w)operator(.)ident(size)operator(()(\)\))operator(.)ident(each) operator({) ident(n) operator(->)
+ operator(()integer(0)operator(..<)ident(w)operator(.)ident(size)operator(()(\))(\))operator(.)ident(each) operator({) ident(n) operator(->)
keyword(if) operator(()operator(!)operator(()ident(words) operator(-) ident(w)(\))operator(.)ident(any)operator({)
local_variable(it)operator(.)ident(size)operator(()(\)) operator(>=) ident(n)operator(+)integer(1) operator(&&) local_variable(it)operator([)integer(0)operator(..)ident(n)(]) operator(==) ident(w)operator([)integer(0)operator(..)ident(n)(])
- (}\)) ident(table)operator([)ident(w)operator([)integer(0)operator(..)ident(n)(]]) operator(=) ident(w)
+ (})(\)) ident(table)operator([)ident(w)operator([)integer(0)operator(..)ident(n)(])(]) operator(=) ident(w)
(})
(})
ident(table)
(})
-ident(println) ident(buildAbbrev)operator(()string<delimiter(')content(send stop abort edit)delimiter(')>operator(.)ident(split)operator(()string<delimiter(')content( )delimiter(')>(\))operator(.)ident(toList)operator(()(\)\))
+ident(println) ident(buildAbbrev)operator(()string<delimiter(')content(send stop abort edit)delimiter(')>operator(.)ident(split)operator(()string<delimiter(')content( )delimiter(')>(\))operator(.)ident(toList)operator(()(\))(\))
comment(// => ["a":"abort", "ab":"abort", "abo":"abort", "abor":"abort", "abort":"abort",)
comment(// "e":"edit", "ed":"edit", "edi":"edit", "edit":"edit", "se":"send", "sen":"send",)
comment(// "send":"send", "st":"stop", "sto":"stop", "stop":"stop"])
@@ -3118,11 +3118,11 @@ ident(actions) operator(=) operator([)
key(unknown)operator(:) operator({) ident(println) string<delimiter(")content(Unknown Command)delimiter(")>(})
(])
-ident(table) operator(=) ident(buildAbbrev)operator(()ident(actions)operator(.)ident(keySet)operator(()(\))operator(.)ident(toList)operator(()(\)\))
-ident(prompt) operator(=) string<delimiter(')content(\\n)content(> )delimiter(')>
+ident(table) operator(=) ident(buildAbbrev)operator(()ident(actions)operator(.)ident(keySet)operator(()(\))operator(.)ident(toList)operator(()(\))(\))
+ident(prompt) operator(=) string<delimiter(')content(\\n> )delimiter(')>
ident(print) string<delimiter(')content(Enter Commands: edit send list abort)delimiter(')> operator(+) ident(prompt)
-keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\)\))operator(.)ident(eachLine)operator({) ident(line) operator(->)
- keyword(def) ident(idx) operator(=) operator(()ident(table)operator(.)ident(containsKey)operator(()ident(line)(\)\)) operator(?) ident(table)operator([)ident(line)(]) operator(:) string<delimiter(')content(unknown)delimiter(')>
+keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\))(\))operator(.)ident(eachLine)operator({) ident(line) operator(->)
+ keyword(def) ident(idx) operator(=) operator(()ident(table)operator(.)ident(containsKey)operator(()ident(line)(\))(\)) operator(?) ident(table)operator([)ident(line)(]) operator(:) string<delimiter(')content(unknown)delimiter(')>
ident(actions)operator([)ident(idx)(])operator(()(\))
ident(print) ident(prompt)
(})
@@ -3135,13 +3135,13 @@ comment(//% urlify ~/mail/*.inbox > ~/allmail.urlified)
ident(urls) operator(=) string<delimiter(')content((https?|telnet|gopher|file|wais|ftp|mail\))delimiter(')>
ident(ltrs) operator(=) regexp<delimiter(/)char(\\w)delimiter(/)>
-ident(gunk) operator(=) regexp<delimiter(/)content(\\#)content(\\/)content(~:.?+=&%@!)content(\\-)delimiter(/)>
+ident(gunk) operator(=) regexp<delimiter(/)content(\\#)char(\\/)content(~:.?+=&%@!)content(\\-)delimiter(/)>
ident(punc) operator(=) regexp<delimiter(/)content(.:?)content(\\-)delimiter(/)>
ident(doll) operator(=) regexp<delimiter(/)content($)delimiter(/)>
ident(all) operator(=) regexp<delimiter(/)inline<inline_delimiter($)ident(ltrs)>inline<inline_delimiter($)ident(gunk)>inline<inline_delimiter($)ident(punc)>delimiter(/)>
ident(findUrls) operator(=) string<delimiter(""")content((?ix\)
- )content(\\\\)content(b # start at word boundary
+ )char(\\\\)content(b # start at word boundary
( # begin group 1 {
)inline<inline_delimiter($)ident(urls)>content( : # need resource and a colon
[)inline<inline_delimiter($)ident(all)>content(] +? # followed by on or more of any valid
@@ -3161,7 +3161,7 @@ If you find a typo on http://groovy.codehaus.org please
send an email to mail:spelling.pedant@codehaus.org
)delimiter(''')>
-ident(println) ident(input)operator(.)ident(replaceAll)operator(()ident(findUrls)operator(,)string<delimiter(')content(<a href=")content($)content(1">)content($)content(1</a>)delimiter(')>(\))
+ident(println) ident(input)operator(.)ident(replaceAll)operator(()ident(findUrls)operator(,)string<delimiter(')content(<a href="$1">$1</a>)delimiter(')>(\))
comment(// =>)
comment(// If you find a typo on <a href="http://groovy.codehaus.org">http://groovy.codehaus.org</a> please)
comment(// send an email to <a href="mail:spelling.pedant@codehaus.org">mail:spelling.pedant@codehaus.org</a>)
@@ -3172,7 +3172,7 @@ comment(// urlify - wrap HTML links around URL-like constructs)
comment(// definitions from above)
ident(args)operator(.)ident(each)operator({) ident(file) operator(->)
keyword(new) pre_type(File)operator(()ident(file)(\))operator(.)ident(eachLine)operator({) ident(line) operator(->)
- ident(println) ident(line)operator(.)ident(replaceAll)operator(()ident(findUrls)operator(,)string<delimiter(')content(<a href=")content($)content(1">)content($)content(1</a>)delimiter(')>(\))
+ ident(println) ident(line)operator(.)ident(replaceAll)operator(()ident(findUrls)operator(,)string<delimiter(')content(<a href="$1">$1</a>)delimiter(')>(\))
(})
(})
@@ -3193,7 +3193,7 @@ comment(// can't have tens before 1000s (M\) or 100s (C\) after 5s (V\))
keyword(assert) operator(!)operator(()string<delimiter(')content(xmvci)delimiter(')> operator(=~) ident(romans)(\))
comment(// swap first two words)
-keyword(assert) string<delimiter(')content(the words)delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(()char(\\S)content(+\)()char(\\s)content(+\)()char(\\S)content(+\))delimiter(/)>operator(,) string<delimiter(')content($)content(3)content($)content(2)content($)content(1)delimiter(')>(\)) operator(==) string<delimiter(')content(words the)delimiter(')>
+keyword(assert) string<delimiter(')content(the words)delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(()char(\\S)content(+\)()char(\\s)content(+\)()char(\\S)content(+\))delimiter(/)>operator(,) string<delimiter(')content($3$2$1)delimiter(')>(\)) operator(==) string<delimiter(')content(words the)delimiter(')>
comment(// extract keyword and value)
ident(m) operator(=) string<delimiter(')content(k=v)delimiter(')> operator(=~) regexp<delimiter(/)content(()char(\\w)content(+\))char(\\s)content(*=)char(\\s)content(*(.*\))char(\\s)content(*)content($)delimiter(/)>
@@ -3214,13 +3214,13 @@ ident(expected) operator(=) string<delimiter(')content(/usr/local/bin/vi)delimit
ident(orig)operator(.)ident(replaceAll)operator(()string<delimiter(')content(/usr/bin)delimiter(')>operator(,)string<delimiter(')content(/usr/local/bin)delimiter(')>(\)) operator(==) ident(expected)
ident(escapeSequenceRegex) operator(=) regexp<delimiter(/)content(%([0-9A-Fa-f][0-9A-Fa-f]\))delimiter(/)>
-ident(convertEscapeToChar) operator(=) operator({) pre_type(Object)type([]) ident(ch) operator(->) keyword(new) pre_type(Character)operator(()operator(()type(char)(\))pre_type(Integer)operator(.)ident(parseInt)operator(()ident(ch)operator([)integer(1)(])operator(,)integer(16)(\)\)) (})
+ident(convertEscapeToChar) operator(=) operator({) pre_type(Object)type([]) ident(ch) operator(->) keyword(new) pre_type(Character)operator(()operator(()type(char)(\))pre_type(Integer)operator(.)ident(parseInt)operator(()ident(ch)operator([)integer(1)(])operator(,)integer(16)(\))(\)) (})
keyword(assert) string<delimiter(')content(abc%3cdef)delimiter(')>operator(.)ident(replaceAll)operator(()ident(escapeSequenceRegex)operator(,) ident(convertEscapeToChar)(\)) operator(==) string<delimiter(')content(abc<def)delimiter(')>
ident(commentStripper) operator(=) string<delimiter(''')content((?xms\)
- /)content(\\\\)content(* # Match the opening delimiter
+ /)char(\\\\)content(* # Match the opening delimiter
.* # Match a minimal number of characters */
- )content(\\\\)content(*/ # Match the closing delimiter
+ )char(\\\\)content(*/ # Match the closing delimiter
)delimiter(''')>
ident(input) operator(=) string<delimiter(''')content(
@@ -3242,7 +3242,7 @@ comment(// emulate s.trim(\))
keyword(assert) string<delimiter(')content( x y )delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(^)char(\\s)content(+)delimiter(/)>operator(,) string<delimiter(')delimiter(')>(\))operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\s)content(+)content($)delimiter(/)>operator(,) string<delimiter(')delimiter(')>(\)) operator(==) string<delimiter(')content(x y)delimiter(')>
comment(// convert \\\\n into \\n)
-keyword(assert) operator(()regexp<delimiter(/)content(a)char(\\n)content(b)delimiter(/)>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\\\)content(n)delimiter(/)>operator(,)string<delimiter(")char(\\n)delimiter(")>(\)) operator(==) string<delimiter(')content(a)content(\\n)content(b)delimiter(')>(\))
+keyword(assert) operator(()regexp<delimiter(/)content(a)char(\\n)content(b)delimiter(/)>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\\\)content(n)delimiter(/)>operator(,)string<delimiter(")char(\\n)delimiter(")>(\)) operator(==) string<delimiter(')content(a\\nb)delimiter(')>(\))
comment(// remove package symbol (Groovy/Java doesn't use this as package symbol\))
keyword(assert) string<delimiter(')content(A::B)delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(^.*::)delimiter(/)>operator(,) string<delimiter(')delimiter(')>(\)) operator(==) string<delimiter(')content(B)delimiter(')>
@@ -3254,14 +3254,14 @@ keyword(assert) operator(!)operator(()string<delimiter(')content(123.456.789)del
keyword(assert) string<delimiter(')content(192.168.000.001)delimiter(')> operator(=~) ident(ipregex)
comment(// extract basename)
-keyword(assert) string<delimiter(')content(c:/usr/temp.txt)delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(^.*)content(\\/)content({1})delimiter(/)>operator(,) string<delimiter(')delimiter(')>(\)) operator(==) string<delimiter(')content(temp.txt)delimiter(')>
+keyword(assert) string<delimiter(')content(c:/usr/temp.txt)delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(^.*)char(\\/)content({1})delimiter(/)>operator(,) string<delimiter(')delimiter(')>(\)) operator(==) string<delimiter(')content(temp.txt)delimiter(')>
ident(termcap) operator(=) string<delimiter(')content(:co#80:li#24:)delimiter(')>
ident(m) operator(=) operator(()ident(termcap) operator(=~) regexp<delimiter(/)content(:co)content(\\#)content(()char(\\d)content(+\):)delimiter(/)>(\))
keyword(assert) ident(m)operator(.)ident(count) operator(==) integer(1)
keyword(assert) ident(m)operator([)integer(0)(])operator([)integer(1)(]) operator(==) string<delimiter(')content(80)delimiter(')>
-keyword(assert) string<delimiter(')content(cmd c:/tmp/junk.txt)delimiter(')>operator(.)ident(replaceAll)operator(()operator(/) error(\\)ident(S)operator(+)error(\\)regexp<delimiter(/)content({1})delimiter(/)>operator(,) string<delimiter(')content( )delimiter(')>(\)) operator(==) string<delimiter(')content(cmd junk.txt)delimiter(')>
+keyword(assert) string<delimiter(')content(cmd c:/tmp/junk.txt)delimiter(')>operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content( )char(\\S)content(+)char(\\/)content({1})delimiter(/)>operator(,) string<delimiter(')content( )delimiter(')>(\)) operator(==) string<delimiter(')content(cmd junk.txt)delimiter(')>
ident(os) operator(=) pre_type(System)operator(.)ident(getProperty)operator(()string<delimiter(')content(os.name)delimiter(')>(\))
ident(println) string<delimiter(')content(Is Linux? )delimiter(')> operator(+) operator(()ident(os) operator(==~) regexp<delimiter(/)content((?i\)linux.*)delimiter(/)>(\))
@@ -3319,7 +3319,7 @@ Yes! And so
is this. And the fourth.
)delimiter(''')>
ident(sentences) operator(=) type([])
-ident(strip) operator(=) ident(input)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(()content(\\p)content({Punct}\))char(\\n)delimiter(/)>operator(,) string<delimiter(')content($)content(1 )delimiter(')>(\))operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\n)delimiter(/)>operator(,) string<delimiter(')content( )delimiter(')>(\))operator(.)ident(replaceAll)operator(()operator(/) operator({)integer(3)operator(,)(})operator(/)operator(,)string<delimiter(')content( )delimiter(')>(\))
+ident(strip) operator(=) ident(input)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(()content(\\p)content({Punct}\))char(\\n)delimiter(/)>operator(,) string<delimiter(')content($1 )delimiter(')>(\))operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\n)delimiter(/)>operator(,) string<delimiter(')content( )delimiter(')>(\))operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content( {3,})delimiter(/)>operator(,)string<delimiter(')content( )delimiter(')>(\))
ident(m) operator(=) ident(strip) operator(=~) regexp<delimiter(/)content(()char(\\S)content(.*?)content(\\p)content({Punct}\)(?= |)content(\\Z)content(\))delimiter(/)>
operator(()integer(0)operator(..<)ident(m)operator(.)ident(count)(\))operator(.)ident(each)operator({) ident(sentences) operator(+=) ident(m)operator([)local_variable(it)(])operator([)integer(1)(]) (})
keyword(assert) ident(sentences) operator(==) operator([)string<delimiter(")content(Is this a sentence?)delimiter(")>operator(,) string<delimiter(")content(Yes!)delimiter(")>operator(,) string<delimiter(")content(And so is this.)delimiter(")>operator(,) string<delimiter(")content(And the fourth.)delimiter(")>(])
@@ -3327,7 +3327,7 @@ keyword(assert) ident(sentences) operator(==) operator([)string<delimiter(")cont
comment(// YYYY-MM-DD)
ident(m) operator(=) string<delimiter(')content(2007-2-28)delimiter(')> operator(=~) regexp<delimiter(/)content(()char(\\d)content({4}\)-()char(\\d)char(\\d)content(?\)-()char(\\d)char(\\d)content(?\))delimiter(/)>
keyword(assert) ident(m)operator(.)ident(matches)operator(()(\))
-keyword(assert) operator([)string<delimiter(')content(2007)delimiter(')>operator(,) string<delimiter(')content(2)delimiter(')>operator(,) string<delimiter(')content(28)delimiter(')>(]) operator(==) operator([)ident(m)operator([)integer(0)(])operator([)integer(1)(])operator(,) ident(m)operator([)integer(0)(])operator([)integer(2)(])operator(,) ident(m)operator([)integer(0)(])operator([)integer(3)(]])
+keyword(assert) operator([)string<delimiter(')content(2007)delimiter(')>operator(,) string<delimiter(')content(2)delimiter(')>operator(,) string<delimiter(')content(28)delimiter(')>(]) operator(==) operator([)ident(m)operator([)integer(0)(])operator([)integer(1)(])operator(,) ident(m)operator([)integer(0)(])operator([)integer(2)(])operator(,) ident(m)operator([)integer(0)(])operator([)integer(3)(])(])
ident(usPhoneRegex) operator(=) regexp<delimiter(/)content(^[01]?[- .]?()content(\\()content([2-9])char(\\d)content({2})content(\\\))content(|[2-9])char(\\d)content({2}\)[- .]?)char(\\d)content({3}[- .]?)char(\\d)content({4})content($)delimiter(/)>
ident(numbers) operator(=) string<delimiter(''')content(
@@ -3342,7 +3342,7 @@ ident(exclaimRegex) operator(=) regexp<delimiter(/)content((?i\))char(\\b)conten
keyword(assert) string<delimiter(')content(Oh my Goodness!)delimiter(')> operator(=~) ident(exclaimRegex)
keyword(assert) operator(!)operator(()string<delimiter(')content(Golly gosh)delimiter(')> operator(=~) ident(exclaimRegex)(\))
-ident(input) operator(=) string<delimiter(')content(line 1)content(\\r)content(line 2)content(\\n)content(line)content(\\r)content(\\n)content(line 3)content(\\n)content(\\r)content(line 4)delimiter(')>
+ident(input) operator(=) string<delimiter(')content(line 1\\rline 2\\nline\\r\\nline 3\\n\\rline 4)delimiter(')>
ident(m) operator(=) ident(input) operator(=~) regexp<delimiter(/)content((?m\)^([^)char(\\012)char(\\015)content(]*\)()char(\\012)char(\\015)content(?|)char(\\015)char(\\012)content(?\))delimiter(/)>
keyword(assert) ident(m)operator(.)ident(count) operator(==) integer(4)
@@ -3380,7 +3380,7 @@ ident(HELP) operator(=) string<delimiter(')content(help)delimiter(')>operator(;)
ident(options) operator(=) ident(op)operator(.)ident(parse)operator(()ident(args)(\))
ident(params) operator(=) ident(options)operator(.)ident(nonOptionArguments)operator(()(\))
-keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(HELP) (\)\)) operator({)
+keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(HELP) (\))(\)) operator({)
ident(op)operator(.)ident(printHelpOn)operator(() pre_type(System)operator(.)ident(out) (\))
(}) keyword(else) keyword(if) operator(()ident(params)operator(.)ident(size)operator(()(\)) operator(==) integer(0)(\)) operator({)
ident(println) string<delimiter(")content(Usage: grep [OPTION]... PATTERN [FILE]...)char(\\n)content(Try 'grep --)inline<inline_delimiter($)ident(HELP)>content(' for more information.)delimiter(")>
@@ -3395,26 +3395,26 @@ keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() id
ident(o_invert) operator(=) ident(options)operator(.)ident(wasDetected)operator(() ident(INVERT) (\))
ident(o_match) operator(=) ident(options)operator(.)ident(wasDetected)operator(() ident(MATCH) (\))
ident(o_nomatch) operator(=) ident(options)operator(.)ident(wasDetected)operator(() ident(NOMATCH) (\))
- keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(EXPR) (\)\)) operator({)
+ keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(EXPR) (\))(\)) operator({)
ident(pattern) operator(=) ident(options)operator(.)ident(valueOf)operator(() ident(EXPR) (\))
- (}) keyword(else) keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(FILE) (\)\)) operator({)
- ident(pattern) operator(=) keyword(new) pre_type(File)operator(()ident(options)operator(.)ident(valueOf)operator(() ident(FILE) (\)\))operator(.)ident(text)operator(.)ident(trim)operator(()(\))
+ (}) keyword(else) keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(FILE) (\))(\)) operator({)
+ ident(pattern) operator(=) keyword(new) pre_type(File)operator(()ident(options)operator(.)ident(valueOf)operator(() ident(FILE) (\))(\))operator(.)ident(text)operator(.)ident(trim)operator(()(\))
(}) keyword(else) operator({)
ident(pattern) operator(=) ident(params)operator([)integer(0)(])
ident(params) operator(=) ident(params)operator([)integer(1)operator(..)operator(-)integer(1)(])
(})
- keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(EXCLUDE) (\)\)) ident(excludes) operator(=) ident(options)operator(.)ident(valueOf)operator(() ident(EXCLUDE) (\))
+ keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(EXCLUDE) (\))(\)) ident(excludes) operator(=) ident(options)operator(.)ident(valueOf)operator(() ident(EXCLUDE) (\))
keyword(else) ident(excludes) operator(=) operator([)string<delimiter(')content(**/*.bak)delimiter(')>(])
- keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(EXACT) (\)\)) ident(pattern) operator(=) string<delimiter(')content(^)delimiter(')> operator(+) ident(pattern) operator(+) string<delimiter(')content($)delimiter(')>
- keyword(else) keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(WORD) (\)\)) ident(pattern) operator(=) regexp<delimiter(/)char(\\b)inline<inline_delimiter($)ident(pattern)>char(\\b)delimiter(/)>
- keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(NOCASE) (\)\)) ident(modifiers) operator(+=) string<delimiter(')content(i)delimiter(')>
- keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(PARA) (\)\)) operator({)
- keyword(if) operator(()ident(options)operator(.)ident(hasArgument)operator(() ident(PARA) (\)\)) ident(paraPattern) operator(=) ident(options)operator(.)ident(valueOf)operator(() ident(PARA) (\))
- keyword(else) ident(paraPattern) operator(=) string<delimiter(')content(^)content($)delimiter(')>
+ keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(EXACT) (\))(\)) ident(pattern) operator(=) string<delimiter(')content(^)delimiter(')> operator(+) ident(pattern) operator(+) string<delimiter(')content($)delimiter(')>
+ keyword(else) keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(WORD) (\))(\)) ident(pattern) operator(=) regexp<delimiter(/)char(\\b)inline<inline_delimiter($)ident(pattern)>char(\\b)delimiter(/)>
+ keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(NOCASE) (\))(\)) ident(modifiers) operator(+=) string<delimiter(')content(i)delimiter(')>
+ keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(PARA) (\))(\)) operator({)
+ keyword(if) operator(()ident(options)operator(.)ident(hasArgument)operator(() ident(PARA) (\))(\)) ident(paraPattern) operator(=) ident(options)operator(.)ident(valueOf)operator(() ident(PARA) (\))
+ keyword(else) ident(paraPattern) operator(=) string<delimiter(')content(^$)delimiter(')>
ident(paraPattern) operator(=) string<delimiter(')content((?sm\))delimiter(')> operator(+) ident(paraPattern)
ident(modifiers) operator(+=) string<delimiter(')content(sm)delimiter(')>
(})
- keyword(if) operator(()ident(modifiers)(\)) ident(pattern) operator(=) string<delimiter(")content((?)inline<inline_delimiter(${)ident(modifiers.join(\))inline_delimiter(})>content(\))delimiter(")> operator(+) ident(pattern)
+ keyword(if) operator(()ident(modifiers)(\)) ident(pattern) operator(=) string<delimiter(")content((?)inline<inline_delimiter(${)ident(modifiers)operator(.)ident(join)operator(()(\))inline_delimiter(})>content(\))delimiter(")> operator(+) ident(pattern)
keyword(if) operator(()ident(params)operator(.)ident(size)operator(()(\)) operator(==) integer(0)(\)) ident(grepStream)operator(()pre_type(System)operator(.)ident(in)operator(,) string<delimiter(')content(<stdin>)delimiter(')>(\))
keyword(else) operator({)
@@ -3450,7 +3450,7 @@ keyword(def) method(grepStream)operator(()ident(s)operator(,) ident(name)(\)) op
(})
(})
keyword(def) ident(display) operator(=) keyword(true)
- keyword(if) operator(()operator(()ident(o_match) operator(&&) ident(count) operator(==) integer(0)(\)) operator(||) operator(()ident(o_nomatch) operator(&&) ident(count) operator(!=) integer(0)(\)\)) ident(display) operator(=) keyword(false)
+ keyword(if) operator(()operator(()ident(o_match) operator(&&) ident(count) operator(==) integer(0)(\)) operator(||) operator(()ident(o_nomatch) operator(&&) ident(count) operator(!=) integer(0)(\))(\)) ident(display) operator(=) keyword(false)
keyword(if) operator(()ident(fileMode) operator(&&) ident(display)(\)) operator({)
ident(filefields) operator(=) type([])
keyword(if) operator(()operator(!)ident(o_noname)(\)) ident(filefields) operator(+=) ident(name)
@@ -3518,9 +3518,9 @@ comment(// for the matching line(s\) if any, before closing the file.)
comment(// this example shows how to access the standard input stream)
comment(// numericCheckingScript:)
-ident(prompt) operator(=) string<delimiter(')content(\\n)content(> )delimiter(')>
+ident(prompt) operator(=) string<delimiter(')content(\\n> )delimiter(')>
ident(print) string<delimiter(')content(Enter text including a digit:)delimiter(')> operator(+) ident(prompt)
-keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\)\))operator(.)ident(eachLine)operator({) ident(line) operator(->)
+keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()pre_type(System)operator(.)ident(in)(\))(\))operator(.)ident(eachLine)operator({) ident(line) operator(->)
comment(// line is read from System.in)
keyword(if) operator(()ident(line) operator(=~) string<delimiter(')char(\\\\)content(d)delimiter(')>(\)) ident(println) string<delimiter(")content(Read: )inline<inline_delimiter($)ident(line)>delimiter(")> comment(// normal output to System.out)
keyword(else) pre_type(System)operator(.)ident(err)operator(.)ident(println) string<delimiter(')content(No digit found.)delimiter(')> comment(// this message to System.err)
@@ -3584,7 +3584,7 @@ comment(// NSPathUtilities can expand and introduce Tildes on platforms it suppo
ident(path) operator(=) string<delimiter(')content(~paulk/.cvspass)delimiter(')>
ident(name) operator(=) pre_type(System)operator(.)ident(getProperty)operator(()string<delimiter(')content(user.name)delimiter(')>(\))
ident(home) operator(=) pre_type(System)operator(.)ident(getProperty)operator(()string<delimiter(')content(user.home)delimiter(')>(\))
-ident(println) ident(home) operator(+) ident(path)operator(.)ident(replaceAll)operator(()string<delimiter(")content(~)inline<inline_delimiter($)ident(name)>content((.*\))delimiter(")>operator(,) string<delimiter(')content($)content(1)delimiter(')>(\))
+ident(println) ident(home) operator(+) ident(path)operator(.)ident(replaceAll)operator(()string<delimiter(")content(~)inline<inline_delimiter($)ident(name)>content((.*\))delimiter(")>operator(,) string<delimiter(')content($1)delimiter(')>(\))
comment(// => C:\\Documents and Settings\\Paul/.cvspass)
comment(//----------------------------------------------------------------------------------)
@@ -3623,12 +3623,12 @@ ident(file) operator(=) keyword(new) pre_type(File)operator(()string<delimiter('
ident(regex) operator(=) regexp<delimiter(/)content((?ms\)(?<=^pleac_7_6_embeddedFileInfo = '''\)(.*\)(?=^'''\))delimiter(/)>
keyword(def) method(readEmbeddedInfo)operator(()(\)) operator({)
ident(m) operator(=) ident(file)operator(.)ident(text) operator(=~) ident(regex)
- ident(println) string<delimiter(')content(Found:)content(\\n)delimiter(')> operator(+) ident(m)operator([)integer(0)(])operator([)integer(1)(])
+ ident(println) string<delimiter(')content(Found:\\n)delimiter(')> operator(+) ident(m)operator([)integer(0)(])operator([)integer(1)(])
(})
keyword(def) method(writeEmbeddedInfo)operator(()(\)) operator({)
- ident(lastMod) operator(=) keyword(new) pre_type(Date)operator(()ident(file)operator(.)ident(lastModified)operator(()(\)\))
- ident(newInfo) operator(=) string<delimiter(")inline<inline_delimiter(${)ident(ls)inline_delimiter(})>content(Script size is )inline<inline_delimiter(${)ident(file.size(\))inline_delimiter(})>inline<inline_delimiter(${)ident(ls)inline_delimiter(})>content(Last script update: )inline<inline_delimiter(${)ident(lastMod)inline_delimiter(})>inline<inline_delimiter(${)ident(ls)inline_delimiter(})>delimiter(")>
- ident(file)operator(.)ident(write)operator(()ident(file)operator(.)ident(text)operator(.)ident(replaceAll)operator(()ident(regex)operator(,) ident(newInfo)(\)\))
+ ident(lastMod) operator(=) keyword(new) pre_type(Date)operator(()ident(file)operator(.)ident(lastModified)operator(()(\))(\))
+ ident(newInfo) operator(=) string<delimiter(")inline<inline_delimiter(${)ident(ls)inline_delimiter(})>content(Script size is )inline<inline_delimiter(${)ident(file)operator(.)ident(size)operator(()(\))inline_delimiter(})>inline<inline_delimiter(${)ident(ls)inline_delimiter(})>content(Last script update: )inline<inline_delimiter(${)ident(lastMod)inline_delimiter(})>inline<inline_delimiter(${)ident(ls)inline_delimiter(})>delimiter(")>
+ ident(file)operator(.)ident(write)operator(()ident(file)operator(.)ident(text)operator(.)ident(replaceAll)operator(()ident(regex)operator(,) ident(newInfo)(\))(\))
(})
ident(readEmbeddedInfo)operator(()(\))
comment(// writeEmbeddedInfo(\) // uncomment to make script update itself)
@@ -3700,7 +3700,7 @@ ident(args)operator(.)ident(each)operator({) ident(arg) operator(->)
keyword(default)operator(:) ident(files) operator(+=) ident(arg)
(})
(})
-keyword(if) operator(()ident(files)operator(.)ident(any)operator({) local_variable(it)operator(.)ident(startsWith)operator(()string<delimiter(')content(-)delimiter(')>(\)}\)) operator({)
+keyword(if) operator(()ident(files)operator(.)ident(any)operator({) local_variable(it)operator(.)ident(startsWith)operator(()string<delimiter(')content(-)delimiter(')>(\))(})(\)) operator({)
pre_type(System)operator(.)ident(err)operator(.)ident(println)operator(()string<delimiter(")content(usage: demo3 [-ainu] [filenames])delimiter(")>(\))
(})
comment(// process files ...)
@@ -3722,11 +3722,11 @@ ident(chunks) operator(=) integer(0)operator(;) ident(done) operator(=) keyword(
ident(testfile) operator(=) keyword(new) pre_type(File)operator(()string<delimiter(')content(Pleac/data/chunks.txt)delimiter(')>(\)) comment(// change on your system)
ident(lines) operator(=) ident(testfile)operator(.)ident(readLines)operator(()(\))
keyword(for) operator(()ident(line) keyword(in) ident(lines)(\)) operator({)
- keyword(if) operator(()operator(!)ident(line)operator(.)ident(trim)operator(()(\)\)) keyword(continue)
+ keyword(if) operator(()operator(!)ident(line)operator(.)ident(trim)operator(()(\))(\)) keyword(continue)
ident(words) operator(=) ident(line)operator(.)ident(split)operator(()regexp<delimiter(/)content([^)char(\\w)content(#]+)delimiter(/)>(\))operator(.)ident(toList)operator(()(\))
keyword(for) operator(()ident(word) keyword(in) ident(words)(\)) operator({)
keyword(if) operator(()ident(word) operator(=~) regexp<delimiter(/)content(^#)delimiter(/)>(\)) keyword(break)
- keyword(if) operator(()ident(word) keyword(in) operator([)string<delimiter(")content(__DATA__)delimiter(")>operator(,) string<delimiter(")content(__END__)delimiter(")>(]\)) operator({) ident(done) operator(=) keyword(true)operator(;) keyword(break) (})
+ keyword(if) operator(()ident(word) keyword(in) operator([)string<delimiter(")content(__DATA__)delimiter(")>operator(,) string<delimiter(")content(__END__)delimiter(")>(])(\)) operator({) ident(done) operator(=) keyword(true)operator(;) keyword(break) (})
ident(chunks) operator(+=) integer(1)
(})
keyword(if) operator(()ident(done)(\)) keyword(break)
@@ -3776,7 +3776,7 @@ ident(processWithBackup)operator(()ident(testPath)(\)) operator({) ident(out)ope
(})
ident(processWithBackup)operator(()ident(testPath)(\)) operator({) ident(out)operator(,) ident(line)operator(,) ident(count) operator(->)
- keyword(if) operator(()operator(!)operator(()ident(count) keyword(in) integer(20)operator(..)integer(30)(\)\)) comment(// skip the 20th line to the 30th)
+ keyword(if) operator(()operator(!)operator(()ident(count) keyword(in) integer(20)operator(..)integer(30)(\))(\)) comment(// skip the 20th line to the 30th)
ident(out) operator(<)operator(<) ident(line) operator(+) string<delimiter(')content(\\n)delimiter(')>
(})
comment(// equivalent to "one-liner":)
@@ -3807,13 +3807,13 @@ comment(//----------------------------------------------------------------------
comment(// general pattern)
keyword(def) method(processFileInplace)operator(()ident(file)operator(,) ident(Closure) ident(processText)(\)) operator({)
keyword(def) ident(text) operator(=) ident(file)operator(.)ident(text)
- ident(file)operator(.)ident(write)operator(()ident(processText)operator(()ident(text)(\)\))
+ ident(file)operator(.)ident(write)operator(()ident(processText)operator(()ident(text)(\))(\))
(})
comment(// templating scenario: change DATE -> current time)
ident(testfile) operator(=) keyword(new) pre_type(File)operator(()string<delimiter(')content(Pleac/data/pleac7_10.txt)delimiter(')>(\)) comment(// replace on your system)
ident(processFileInplace)operator(()ident(testfile)(\)) operator({) ident(text) operator(->)
- ident(text)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?m\)DATE)delimiter(/)>operator(,) keyword(new) pre_type(Date)operator(()(\))operator(.)ident(toString)operator(()(\)\))
+ ident(text)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?m\)DATE)delimiter(/)>operator(,) keyword(new) pre_type(Date)operator(()(\))operator(.)ident(toString)operator(()(\))(\))
(})
comment(//----------------------------------------------------------------------------------)
@@ -4044,9 +4044,9 @@ comment(// use streams or channels for advanced file handling)
type(int) ident(size) operator(=) ident(datafile)operator(.)ident(size)operator(()(\))
ident(buffer) operator(=) pre_type(ByteBuffer)operator(.)ident(allocate)operator(()ident(size)(\)) comment(// for large files, use some block size, e.g. 4096)
ident(channel) operator(=) keyword(new) pre_type(FileInputStream)operator(()ident(datafile)(\))operator(.)ident(channel)
-ident(println) string<delimiter(")content(Number of bytes read was: )inline<inline_delimiter(${)ident(channel.read(buffer\))inline_delimiter(})>delimiter(")> comment(// -1 = EOF)
+ident(println) string<delimiter(")content(Number of bytes read was: )inline<inline_delimiter(${)ident(channel)operator(.)ident(read)operator(()ident(buffer)(\))inline_delimiter(})>delimiter(")> comment(// -1 = EOF)
-ident(channel) operator(=) keyword(new) pre_type(FileOutputStream)operator(()pre_type(File)operator(.)ident(createTempFile)operator(()string<delimiter(")content(pleac8)delimiter(")>operator(,) string<delimiter(")content(.junk)delimiter(")>(\)\))operator(.)ident(channel)
+ident(channel) operator(=) keyword(new) pre_type(FileOutputStream)operator(()pre_type(File)operator(.)ident(createTempFile)operator(()string<delimiter(")content(pleac8)delimiter(")>operator(,) string<delimiter(")content(.junk)delimiter(")>(\))(\))operator(.)ident(channel)
ident(size) operator(=) ident(channel)operator(.)ident(size)operator(()(\))
ident(channel)operator(.)ident(truncate)operator(()ident(size)(\)) comment(// shrinks file (in our case to same size\))
@@ -4111,7 +4111,7 @@ ident(println) string<delimiter(")content(Found )inline<inline_delimiter($)ident
comment(// note: counts blank line at end as start of next empty para)
comment(// with a StreamTokenizer)
-ident(st) operator(=) keyword(new) pre_type(StreamTokenizer)operator(()ident(testfile)operator(.)ident(newReader)operator(()(\)\))
+ident(st) operator(=) keyword(new) pre_type(StreamTokenizer)operator(()ident(testfile)operator(.)ident(newReader)operator(()(\))(\))
keyword(while) operator(()ident(st)operator(.)ident(nextToken)operator(()(\)) operator(!=) pre_type(StreamTokenizer)operator(.)ident(TT_EOF)(\)) operator({)(})
ident(println) ident(st)operator(.)ident(lineno)operator(()(\))
comment(//----------------------------------------------------------------------------------)
@@ -4136,7 +4136,7 @@ ident(println) ident(count)
comment(// (variation to Perl example\))
comment(// with a StreamTokenizer (counting words and numbers in Pleac chapter 8 source file\))
ident(words) operator(=) integer(0)operator(;) ident(numbers) operator(=) integer(0)
-ident(st) operator(=) keyword(new) pre_type(StreamTokenizer)operator(()ident(testfile)operator(.)ident(newReader)operator(()(\)\))
+ident(st) operator(=) keyword(new) pre_type(StreamTokenizer)operator(()ident(testfile)operator(.)ident(newReader)operator(()(\))(\))
ident(st)operator(.)ident(slashSlashComments)operator(()keyword(true)(\)) comment(// ignore words and numbers in comments)
keyword(while) operator(()ident(st)operator(.)ident(nextToken)operator(()(\)) operator(!=) pre_type(StreamTokenizer)operator(.)ident(TT_EOF)(\)) operator({)
keyword(if) operator(()ident(st)operator(.)ident(ttype) operator(==) pre_type(StreamTokenizer)operator(.)ident(TT_WORD)(\)) ident(words)operator(++)
@@ -4149,11 +4149,11 @@ comment(// word frequency count)
ident(seen) operator(=) operator([)operator(:)(])
ident(processWordsInFile)operator(()ident(testfile)(\)) operator({)
ident(w) operator(=) local_variable(it)operator(.)ident(toLowerCase)operator(()(\))
- keyword(if) operator(()ident(seen)operator(.)ident(containsKey)operator(()ident(w)(\)\)) ident(seen)operator([)ident(w)(]) operator(+=) integer(1)
+ keyword(if) operator(()ident(seen)operator(.)ident(containsKey)operator(()ident(w)(\))(\)) ident(seen)operator([)ident(w)(]) operator(+=) integer(1)
keyword(else) ident(seen)operator([)ident(w)(]) operator(=) integer(1)
(})
comment(// output map in a descending numeric sort of its values)
-ident(seen)operator(.)ident(entrySet)operator(()(\))operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->) ident(b)operator(.)ident(value) operator(<=)operator(>) ident(a)operator(.)ident(value) (})operator(.)ident(each)operator({) ident(e) operator(->)
+ident(seen)operator(.)ident(entrySet)operator(()(\))operator(.)ident(sort) operator({) ident(a)operator(,)ident(b) operator(->) ident(b)operator(.)ident(value) operator(<=>) ident(a)operator(.)ident(value) (})operator(.)ident(each)operator({) ident(e) operator(->)
ident(printf)operator(()string<delimiter(")content(%5d %s)char(\\n)delimiter(")>operator(,) operator([)ident(e)operator(.)ident(value)operator(,) ident(e)operator(.)ident(key)(]) (\))
(})
comment(// =>)
@@ -4200,14 +4200,14 @@ keyword(while)operator(() keyword(true) (\)) operator({)
type(long) ident(fileLength) operator(=) ident(logfile)operator(.)ident(size)operator(()(\))
keyword(if)operator(() ident(fileLength) operator(<) ident(filePointer) (\)) operator({)
comment(// Log file must have been rotated or deleted;)
- pre_type(System)operator(.)ident(err)operator(.)ident(println) string<delimiter(")inline<inline_delimiter(${)ident(new Date(\))inline_delimiter(})>content(: Reopening )inline<inline_delimiter($)ident(logfile)>delimiter(")>
+ pre_type(System)operator(.)ident(err)operator(.)ident(println) string<delimiter(")inline<inline_delimiter(${)keyword(new) pre_type(Date)operator(()(\))inline_delimiter(})>content(: Reopening )inline<inline_delimiter($)ident(logfile)>delimiter(")>
ident(file) operator(=) keyword(new) pre_type(RandomAccessFile)operator(() ident(logfile)operator(,) string<delimiter(")content(r)delimiter(")> (\))
ident(filePointer) operator(=) integer(0)
(})
keyword(if)operator(() ident(fileLength) operator(>) ident(filePointer) (\)) operator({)
comment(// There is data to read)
ident(file)operator(.)ident(seek)operator(() ident(filePointer) (\))
- keyword(while)operator(() operator(()ident(line) operator(=) ident(file)operator(.)ident(readLine)operator(()(\)\)) operator(!=) keyword(null) (\)) operator({)
+ keyword(while)operator(() operator(()ident(line) operator(=) ident(file)operator(.)ident(readLine)operator(()(\))(\)) operator(!=) keyword(null) (\)) operator({)
ident(println) string<delimiter(')content(##)delimiter(')> operator(+) ident(line)
(})
ident(filePointer) operator(=) ident(file)operator(.)ident(filePointer)
@@ -4225,7 +4225,7 @@ comment(//testfile = newFile('/usr/share/fortune/humorists'\))
comment(// small files:)
ident(random) operator(=) keyword(new) pre_type(Random)operator(()(\))
ident(lines) operator(=) ident(testfile)operator(.)ident(readLines)operator(()(\))
-ident(println) ident(lines)operator([)ident(random)operator(.)ident(nextInt)operator(()ident(lines)operator(.)ident(size)operator(()(\)\)])
+ident(println) ident(lines)operator([)ident(random)operator(.)ident(nextInt)operator(()ident(lines)operator(.)ident(size)operator(()(\))(\))(])
comment(// streamed alternative)
ident(count) operator(=) integer(0)
@@ -4252,13 +4252,13 @@ comment(//----------------------------------------------------------------------
ident(desiredLine) operator(=) integer(235)
comment(// for small files)
ident(lines) operator(=) ident(testfile)operator(.)ident(readLines)operator(()(\))
-ident(println) string<delimiter(")content(Line )inline<inline_delimiter($)ident(desiredLine)>content(: )inline<inline_delimiter(${)ident(lines[desiredLine-1])inline_delimiter(})>delimiter(")>
+ident(println) string<delimiter(")content(Line )inline<inline_delimiter($)ident(desiredLine)>content(: )inline<inline_delimiter(${)ident(lines)operator([)ident(desiredLine)operator(-)integer(1)(])inline_delimiter(})>delimiter(")>
comment(// streaming solution)
ident(reader) operator(=) ident(testfile)operator(.)ident(newReader)operator(()(\))
ident(count) operator(=) integer(0)
keyword(def) ident(line)
-keyword(while) operator(()operator(()ident(line) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\)\))operator(!=) keyword(null)(\)) operator({)
+keyword(while) operator(()operator(()ident(line) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\))(\))operator(!=) keyword(null)(\)) operator({)
keyword(if) operator(()operator(++)ident(count) operator(==) ident(desiredLine)(\)) keyword(break)
(})
ident(println) string<delimiter(")content(Line )inline<inline_delimiter($)ident(desiredLine)>content(: )inline<inline_delimiter($)ident(line)>delimiter(")>
@@ -4276,7 +4276,7 @@ comment(// @@PLEAC@@_8.10)
comment(//----------------------------------------------------------------------------------)
ident(file) operator(=) keyword(new) pre_type(RandomAccessFile)operator(() ident(logfile)operator(,) string<delimiter(")content(rw)delimiter(")> (\))
type(long) ident(previous)operator(,) ident(lastpos) operator(=) integer(0)
-keyword(while)operator(() operator(()ident(line) operator(=) ident(file)operator(.)ident(readLine)operator(()(\)\)) operator(!=) keyword(null) (\)) operator({)
+keyword(while)operator(() operator(()ident(line) operator(=) ident(file)operator(.)ident(readLine)operator(()(\))(\)) operator(!=) keyword(null) (\)) operator({)
ident(previous) operator(=) ident(lastpos)
ident(lastpos) operator(=) ident(file)operator(.)ident(filePointer)
(})
@@ -4305,7 +4305,7 @@ ident(dumpStart)operator(()string<delimiter(')content(Pleac/classes/pleac8.class
comment(// => 202 254 186 190 0 0 0 47 2 20 (starting bytes in HEX: CAFEBABE\))
ident(binfile) operator(=) keyword(new) pre_type(File)operator(()string<delimiter(')content(Pleac/data/temp.bin)delimiter(')>(\))
-ident(binfile)operator(.)ident(withOutputStream)operator({) ident(stream) operator(->) operator(()integer(0)operator(..<)integer(20)(\))operator(.)ident(each)operator({) ident(stream)operator(.)ident(write)operator(()local_variable(it)(\)) (}})
+ident(binfile)operator(.)ident(withOutputStream)operator({) ident(stream) operator(->) operator(()integer(0)operator(..<)integer(20)(\))operator(.)ident(each)operator({) ident(stream)operator(.)ident(write)operator(()local_variable(it)(\)) (})(})
ident(binfile)operator(.)ident(eachByte)operator({) ident(print) local_variable(it) operator(+) string<delimiter(')content( )delimiter(')> (})operator(;) ident(println)operator(()(\))
comment(// => 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19)
comment(//----------------------------------------------------------------------------------)
@@ -4402,10 +4402,10 @@ ident(channel) operator(=) keyword(new) pre_type(FileInputStream)operator(()iden
ident(buf) operator(=) pre_type(ByteBuffer)operator(.)ident(allocate)operator(()integer(24)(\))
ident(channel)operator(.)ident(read)operator(()ident(buf)(\))
ident(buf)operator(.)ident(flip)operator(()(\))
-integer(3)operator(.)ident(times)operator({) ident(print) operator(()operator(()type(char)(\))ident(buf)operator(.)ident(get)operator(()(\)\)) (})
-ident(println) operator(()ident(buf)operator(.)ident(getDouble)operator(()(\)\))
-integer(5)operator(.)ident(times)operator({) ident(print) operator(()operator(()type(char)(\))ident(buf)operator(.)ident(get)operator(()(\)\)) (})
-ident(println) operator(()keyword(new) pre_type(Date)operator(()ident(buf)operator(.)ident(getLong)operator(()(\)\)\))
+integer(3)operator(.)ident(times)operator({) ident(print) operator(()operator(()type(char)(\))ident(buf)operator(.)ident(get)operator(()(\))(\)) (})
+ident(println) operator(()ident(buf)operator(.)ident(getDouble)operator(()(\))(\))
+integer(5)operator(.)ident(times)operator({) ident(print) operator(()operator(()type(char)(\))ident(buf)operator(.)ident(get)operator(()(\))(\)) (})
+ident(println) operator(()keyword(new) pre_type(Date)operator(()ident(buf)operator(.)ident(getLong)operator(()(\))(\))(\))
ident(channel)operator(.)ident(close)operator(()(\))
comment(// =>)
comment(// PI=3.141592653589793)
@@ -4415,9 +4415,9 @@ comment(// object-oriented streams)
ident(binfile)operator(.)ident(delete)operator(()(\))operator(;) ident(binfile)operator(.)ident(createNewFile)operator(()(\)) comment(// start from scratch)
type(class) class(Person) directive(implements) pre_type(Serializable) operator({) keyword(def) ident(name)operator(,) ident(age) (})
ident(binfile)operator(.)ident(withObjectOutputStream)operator({) ident(oos) operator(->)
- ident(oos)operator(.)ident(writeObject)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)string<delimiter(')content(Bernie)delimiter(')>operator(,)key(age)operator(:)integer(16)(\)\))
- ident(oos)operator(.)ident(writeObject)operator(()operator([)integer(1)operator(:)string<delimiter(')content(a)delimiter(')>operator(,) integer(2)operator(:)string<delimiter(')content(b)delimiter(')>(]\))
- ident(oos)operator(.)ident(writeObject)operator(()keyword(new) pre_type(Date)operator(()(\)\))
+ ident(oos)operator(.)ident(writeObject)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)string<delimiter(')content(Bernie)delimiter(')>operator(,)key(age)operator(:)integer(16)(\))(\))
+ ident(oos)operator(.)ident(writeObject)operator(()operator([)integer(1)operator(:)string<delimiter(')content(a)delimiter(')>operator(,) integer(2)operator(:)string<delimiter(')content(b)delimiter(')>(])(\))
+ ident(oos)operator(.)ident(writeObject)operator(()keyword(new) pre_type(Date)operator(()(\))(\))
(})
comment(// now read it back in)
ident(binfile)operator(.)ident(withObjectInputStream)operator({) ident(ois) operator(->)
@@ -4444,7 +4444,7 @@ comment(// user.name=me)
comment(// user.password=secret)
ident(props) operator(=) keyword(new) pre_type(Properties)operator(()(\))
ident(propsfile)operator(=)keyword(new) pre_type(File)operator(()string<delimiter(')content(Pleac/data/plain.properties)delimiter(')>(\))
-ident(props)operator(.)ident(load)operator(()ident(propsfile)operator(.)ident(newInputStream)operator(()(\)\))
+ident(props)operator(.)ident(load)operator(()ident(propsfile)operator(.)ident(newInputStream)operator(()(\))(\))
ident(props)operator(.)ident(list)operator(()pre_type(System)operator(.)ident(out)(\))
comment(// =>)
comment(// -- listing properties --)
@@ -4508,7 +4508,7 @@ comment(//----------------------------------------------------------------------
comment(// general purpose utility methods)
keyword(def) method(getString)operator(()ident(buf)operator(,)ident(size)(\))operator({)
comment(// consider get(buf[]\) instead of get(buf\) for efficiency)
- ident(b)operator(=)type([])operator(;) ident(size)operator(.)ident(times)operator({)ident(b)operator(+=)ident(buf)operator(.)ident(get)operator(()(\)})operator(;) keyword(new) pre_type(String)operator(()ident(b) keyword(as) type(byte)type([])(\))operator(.)ident(trim)operator(()(\))
+ ident(b)operator(=)type([])operator(;) ident(size)operator(.)ident(times)operator({)ident(b)operator(+=)ident(buf)operator(.)ident(get)operator(()(\))(})operator(;) keyword(new) pre_type(String)operator(()ident(b) keyword(as) type(byte)type([])(\))operator(.)ident(trim)operator(()(\))
(})
keyword(def) method(getInt)operator(()ident(buf)operator(,)ident(size)(\)) operator({)
comment(// normally in Java we would just use methods like getLong(\))
@@ -4528,7 +4528,7 @@ keyword(def) method(processWtmpRecords)operator(()ident(file)operator(,) ident(o
ident(channel)operator(.)ident(position)operator(()ident(origpos)(\))
ident(newpos) operator(=) ident(origpos)
ident(buf) operator(=) pre_type(ByteBuffer)operator(.)ident(allocate)operator(()ident(recsize)(\))
- keyword(while) operator(()operator(()ident(count) operator(=) ident(channel)operator(.)ident(read)operator(()ident(buf)(\)\)) operator(!=) operator(-)integer(1)(\)) operator({)
+ keyword(while) operator(()operator(()ident(count) operator(=) ident(channel)operator(.)ident(read)operator(()ident(buf)(\))(\)) operator(!=) operator(-)integer(1)(\)) operator({)
keyword(if) operator(()ident(count) operator(!=) ident(recsize)(\)) keyword(break)
ident(buf)operator(.)ident(flip)operator(()(\))
ident(print) ident(getInt)operator(()ident(buf)operator(,)integer(4)(\)) operator(+) string<delimiter(')content( )delimiter(')> comment(// type)
@@ -4538,7 +4538,7 @@ keyword(def) method(processWtmpRecords)operator(()ident(file)operator(,) ident(o
ident(print) ident(getString)operator(()ident(buf)operator(,)integer(32)(\)) operator(+) string<delimiter(')content( )delimiter(')> comment(// user)
ident(print) ident(getString)operator(()ident(buf)operator(,)integer(256)(\)) operator(+) string<delimiter(')content( )delimiter(')> comment(// hostname)
ident(buf)operator(.)ident(position)operator(()ident(buf)operator(.)ident(position)operator(()(\)) operator(+) integer(8)(\)) comment(// skip)
- ident(println) string<delimiter(")inline<inline_delimiter(${)ident(getDate(buf\))inline_delimiter(})>content( )delimiter(")> comment(// time)
+ ident(println) string<delimiter(")inline<inline_delimiter(${)ident(getDate)operator(()ident(buf)(\))inline_delimiter(})>content( )delimiter(")> comment(// time)
ident(buf)operator(.)ident(clear)operator(()(\))
ident(newpos) operator(=) ident(channel)operator(.)ident(position)operator(()(\))
(})
@@ -4598,10 +4598,10 @@ type(class) class(TeeTarget) operator({)
directive(private) ident(p)
ident(TeeTarget)operator(()pre_type(String) ident(name)operator(,) ident(append)operator(,) ident(buffered)operator(,) ident(ignore)(\)) operator({)
- keyword(if) operator(()ident(name)operator(.)ident(startsWith)operator(()string<delimiter(')content(>>)delimiter(')>(\)\)) operator({)
+ keyword(if) operator(()ident(name)operator(.)ident(startsWith)operator(()string<delimiter(')content(>>)delimiter(')>(\))(\)) operator({)
ident(createFileStream)operator(()ident(name)operator([)integer(2)operator(..)operator(-)integer(1)(])operator(,)keyword(true)operator(,)ident(buffered)operator(,)ident(ignore)(\))
- (}) keyword(else) keyword(if) operator(()ident(name)operator(.)ident(startsWith)operator(()string<delimiter(')content(|)delimiter(')>(\)\)) operator({)
- ident(createProcessReader)operator(()ident(name)operator([)integer(1)operator(..)operator(-)integer(1)(]\))
+ (}) keyword(else) keyword(if) operator(()ident(name)operator(.)ident(startsWith)operator(()string<delimiter(')content(|)delimiter(')>(\))(\)) operator({)
+ ident(createProcessReader)operator(()ident(name)operator([)integer(1)operator(..)operator(-)integer(1)(])(\))
(}) keyword(else) operator({)
ident(createFileStream)operator(()ident(name)operator(,)ident(append)operator(,)ident(buffered)operator(,)ident(ignore)(\))
(})
@@ -4623,12 +4623,12 @@ type(class) class(TeeTarget) operator({)
keyword(if) operator(()operator(!)ident(buffered)(\)) ident(stream) operator(=) ident(fos)
keyword(else) ident(stream) operator(=) keyword(new) pre_type(BufferedOutputStream)operator(()ident(fos)(\))
(})
- directive(private) ident(createWriter)operator(()ident(os)(\)) operator({)keyword(new) pre_type(PrintWriter)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()ident(os)(\)\)})
- directive(private) ident(createReader)operator(()ident(is)(\)) operator({)keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()ident(is)(\)\)})
+ directive(private) ident(createWriter)operator(()ident(os)(\)) operator({)keyword(new) pre_type(PrintWriter)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()ident(os)(\))(\))(})
+ directive(private) ident(createReader)operator(()ident(is)(\)) operator({)keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()ident(is)(\))(\))(})
directive(private) ident(createPiperThread)operator(()ident(br)operator(,) ident(pw)(\)) operator({)
pre_type(Thread)operator(.)ident(start)operator({)
keyword(def) ident(next)
- keyword(while)operator(()operator(()ident(next) operator(=) ident(br)operator(.)ident(readLine)operator(()(\)\))operator(!=)keyword(null)(\)) operator({)
+ keyword(while)operator(()operator(()ident(next) operator(=) ident(br)operator(.)ident(readLine)operator(()(\))(\))operator(!=)keyword(null)(\)) operator({)
ident(pw)operator(.)ident(println)operator(()ident(next)(\))
(})
ident(pw)operator(.)ident(flush)operator(()(\))operator(;) ident(pw)operator(.)ident(close)operator(()(\))
@@ -4637,7 +4637,7 @@ type(class) class(TeeTarget) operator({)
directive(private) ident(createProcessReader)operator(()ident(name)(\)) operator({)
keyword(def) ident(readFromStream) operator(=) keyword(new) pre_type(PipedInputStream)operator(()(\))
keyword(def) ident(r1) operator(=) ident(createReader)operator(()ident(readFromStream)(\))
- ident(stream) operator(=) keyword(new) pre_type(BufferedOutputStream)operator(()keyword(new) pre_type(PipedOutputStream)operator(()ident(readFromStream)(\)\))
+ ident(stream) operator(=) keyword(new) pre_type(BufferedOutputStream)operator(()keyword(new) pre_type(PipedOutputStream)operator(()ident(readFromStream)(\))(\))
ident(p) operator(=) pre_type(Runtime)operator(.)ident(runtime)operator(.)ident(exec)operator(()ident(name)(\))
keyword(def) ident(w1) operator(=) ident(createWriter)operator(()ident(p)operator(.)ident(outputStream)(\))
ident(createPiperThread)operator(()ident(r1)operator(,) ident(w1)(\))
@@ -4649,9 +4649,9 @@ type(class) class(TeeTarget) operator({)
ident(targets) operator(=) type([])
ident(append) operator(=) keyword(false)operator(;) ident(ignore) operator(=) keyword(false)operator(;) ident(includeStdout) operator(=) keyword(true)operator(;) ident(buffer) operator(=) keyword(true)
-operator(()integer(0)operator(..<)ident(args)operator(.)ident(size)operator(()(\)\))operator(.)ident(each)operator({)
+operator(()integer(0)operator(..<)ident(args)operator(.)ident(size)operator(()(\))(\))operator(.)ident(each)operator({)
ident(arg) operator(=) ident(args)operator([)local_variable(it)(])
- keyword(if) operator(()ident(arg)operator(.)ident(startsWith)operator(()string<delimiter(')content(-)delimiter(')>(\)\)) operator({)
+ keyword(if) operator(()ident(arg)operator(.)ident(startsWith)operator(()string<delimiter(')content(-)delimiter(')>(\))(\)) operator({)
keyword(switch) operator(()ident(arg)(\)) operator({)
keyword(case) string<delimiter(')content(-a)delimiter(')>operator(:) ident(append) operator(=) keyword(true)operator(;) keyword(break)
keyword(case) string<delimiter(')content(-i)delimiter(')>operator(:) ident(ignore) operator(=) keyword(true)operator(;) keyword(break)
@@ -4666,7 +4666,7 @@ operator(()integer(0)operator(..<)ident(args)operator(.)ident(size)operator(()(\
ident(targets) operator(=) ident(targets)operator(.)ident(collect)operator({) keyword(new) ident(TeeTarget)operator(()local_variable(it)operator(,) ident(append)operator(,) ident(buffer)operator(,) ident(ignore)(\)) (})
keyword(if) operator(()ident(includeStdout)(\)) ident(targets) operator(+=) keyword(new) ident(TeeTarget)operator(()pre_type(System)operator(.)ident(out)(\))
keyword(def) ident(tee) operator(=) keyword(new) ident(MultiStream)operator(()ident(targets)operator(,) ident(ignore)(\))
-keyword(while) operator(()ident(line) operator(=) pre_type(System)operator(.)ident(in)operator(.)ident(readLine)operator(()(\)\)) operator({)
+keyword(while) operator(()ident(line) operator(=) pre_type(System)operator(.)ident(in)operator(.)ident(readLine)operator(()(\))(\)) operator({)
ident(tee)operator(.)ident(println)operator(()ident(line)(\))
(})
ident(tee)operator(.)ident(close)operator(()(\))
@@ -4687,7 +4687,7 @@ ident(buf)operator(.)ident(flip)operator(()(\))
ident(date) operator(=) ident(getDate)operator(()ident(buf)(\))
ident(line) operator(=) ident(getString)operator(()ident(buf)operator(,)integer(32)(\))
ident(host) operator(=) ident(getString)operator(()ident(buf)operator(,)integer(256)(\))
-ident(println) string<delimiter(")content(User with uid )inline<inline_delimiter($)ident(uid)>content( last logged on )inline<inline_delimiter($)ident(date)>content( from )inline<inline_delimiter(${)ident(host?host:'unknown')inline_delimiter(})>content( on )inline<inline_delimiter($)ident(line)>delimiter(")>
+ident(println) string<delimiter(")content(User with uid )inline<inline_delimiter($)ident(uid)>content( last logged on )inline<inline_delimiter($)ident(date)>content( from )inline<inline_delimiter(${)ident(host)operator(?)ident(host)operator(:)string<delimiter(')content(unknown)delimiter(')>inline_delimiter(})>content( on )inline<inline_delimiter($)ident(line)>delimiter(")>
comment(// => User with uid 1000 last logged on Sat Jan 13 09:09:35 EST 2007 from unknown on :0)
comment(//----------------------------------------------------------------------------------)
@@ -4724,7 +4724,7 @@ comment(// in most situations)
comment(// File modification time (no exact equivalent of ctime - but you can)
comment(// call stat(\) using JNI or use exec(\) of dir or ls to get this kind of info\))
comment(// JSR 203 also plans to provide such info in Java 7.)
-ident(println) keyword(new) pre_type(Date)operator(()ident(entry)operator(.)ident(lastModified)operator(()(\)\))
+ident(println) keyword(new) pre_type(Date)operator(()ident(entry)operator(.)ident(lastModified)operator(()(\))(\))
comment(// => Wed Aug 04 07:00:00 EST 2004)
comment(// file size)
@@ -4765,7 +4765,7 @@ comment(// => Sun Jan 07 11:49:02 EST 2007)
ident(MILLIS_PER_WEEK) operator(=) integer(60) operator(*) integer(60) operator(*) integer(24) operator(*) integer(1000) operator(*) integer(7)
ident(file)operator(.)ident(setLastModified)operator(()ident(timeModified) operator(-) ident(MILLIS_PER_WEEK)(\))
-ident(println) keyword(new) pre_type(Date)operator(()ident(file)operator(.)ident(lastModified)operator(()(\)\))
+ident(println) keyword(new) pre_type(Date)operator(()ident(file)operator(.)ident(lastModified)operator(()(\))(\))
comment(// => Sun Dec 31 11:49:02 EST 2006)
comment(// Java currently doesn't provide access to other timestamps but)
@@ -4812,11 +4812,11 @@ ident(files)operator([)integer(0)operator(..)integer(1)(])operator(.)ident(each)
keyword(def) method(deleteFiles)operator(()ident(files)(\)) operator({)
keyword(def) ident(problemFileNames) operator(=) type([])
ident(files)operator(.)ident(each)operator({) ident(f) operator(->)
- keyword(if) operator(()operator(!)ident(f)operator(.)ident(delete)operator(()(\)\))
+ keyword(if) operator(()operator(!)ident(f)operator(.)ident(delete)operator(()(\))(\))
ident(problemFileNames) operator(+=) ident(f)operator(.)ident(name)
(})
keyword(def) ident(delCnt) operator(=) ident(files)operator(.)ident(size)operator(()(\)) operator(-) ident(problemFileNames)operator(.)ident(size)operator(()(\))
- ident(println) string<delimiter(")content(Successfully deleted )inline<inline_delimiter($)ident(delCnt)>content( of )inline<inline_delimiter(${)ident(files.size(\))inline_delimiter(})>content( file(s\))delimiter(")>
+ ident(println) string<delimiter(")content(Successfully deleted )inline<inline_delimiter($)ident(delCnt)>content( of )inline<inline_delimiter(${)ident(files)operator(.)ident(size)operator(()(\))inline_delimiter(})>content( file(s\))delimiter(")>
keyword(if) operator(()ident(problemFileNames)(\))
ident(println) string<delimiter(")content(Problems file(s\): )delimiter(")> operator(+) ident(problemFileNames)operator(.)ident(join)operator(()string<delimiter(')content(, )delimiter(')>(\))
(})
@@ -4932,7 +4932,7 @@ comment(// process only unique files)
ident(seen) operator(=) type([])
keyword(def) method(myProcessing)operator(()ident(file)(\)) operator({)
keyword(def) ident(path) operator(=) ident(file)operator(.)ident(canonicalPath)
- keyword(if) operator(()operator(!)ident(seen)operator(.)ident(contains)operator(()ident(path)(\)\)) operator({)
+ keyword(if) operator(()operator(!)ident(seen)operator(.)ident(contains)operator(()ident(path)(\))(\)) operator({)
ident(seen) operator(<)operator(<) ident(path)
comment(// do something with file because we haven't seen it before)
(})
@@ -4944,7 +4944,7 @@ ident(filenames) operator(=) operator([)string<delimiter(')content(/dummyfile1.t
ident(filenames)operator(.)ident(each)operator({) ident(filename) operator(->)
keyword(def) ident(file) operator(=) keyword(new) pre_type(File)operator(()ident(filename)(\))
keyword(def) ident(cpath) operator(=) ident(file)operator(.)ident(canonicalPath)
- keyword(if) operator(()operator(!)ident(seen)operator(.)ident(containsKey)operator(()ident(cpath)(\)\)) operator({)
+ keyword(if) operator(()operator(!)ident(seen)operator(.)ident(containsKey)operator(()ident(cpath)(\))(\)) operator({)
ident(seen)operator([)ident(cpath)(]) operator(=) type([])
(})
ident(seen)operator([)ident(cpath)(]) operator(+=) ident(file)operator(.)ident(absolutePath)
@@ -4964,11 +4964,11 @@ ident(basedir) operator(=) string<delimiter(')content(Pleac/src)delimiter(')>
comment(// process all files printing out full name (. and .. auto excluded\))
keyword(new) pre_type(File)operator(()ident(basedir)(\))operator(.)ident(eachFile)operator({) ident(f)operator(->)
- keyword(if) operator(()ident(f)operator(.)ident(isFile)operator(()(\)\)) ident(println) ident(f)operator(.)ident(canonicalPath)
+ keyword(if) operator(()ident(f)operator(.)ident(isFile)operator(()(\))(\)) ident(println) ident(f)operator(.)ident(canonicalPath)
(})
comment(// also remove dot files such as '.svn' and '.cvs' etc.)
keyword(new) pre_type(File)operator(()ident(basedir)(\))operator(.)ident(eachFileMatch)operator(()operator(~)string<delimiter(')content(^[^.].*)delimiter(')>(\))operator({) ident(f)operator(->)
- keyword(if) operator(()ident(f)operator(.)ident(isFile)operator(()(\)\)) ident(println) ident(f)operator(.)ident(canonicalPath)
+ keyword(if) operator(()ident(f)operator(.)ident(isFile)operator(()(\))(\)) ident(println) ident(f)operator(.)ident(canonicalPath)
(})
comment(//----------------------------------------------------------------------------------)
@@ -4977,13 +4977,13 @@ comment(//----------------------------------------------------------------------
comment(// Globbing via Apache Jakarta ORO)
keyword(import) include(org.apache.oro.io.GlobFilenameFilter)
ident(dir) operator(=) keyword(new) pre_type(File)operator(()ident(basedir)(\))
-ident(namelist) operator(=) ident(dir)operator(.)ident(list)operator(()keyword(new) ident(GlobFilenameFilter)operator(()string<delimiter(')content(*.c)delimiter(')>(\)\))
+ident(namelist) operator(=) ident(dir)operator(.)ident(list)operator(()keyword(new) ident(GlobFilenameFilter)operator(()string<delimiter(')content(*.c)delimiter(')>(\))(\))
ident(filelist) operator(=) ident(dir)operator(.)ident(listFiles)operator(()keyword(new) ident(GlobFilenameFilter)operator(()string<delimiter(')content(*.h)delimiter(')>(\)) keyword(as) pre_type(FilenameFilter)(\))
comment(// Built-in matching using regex's)
ident(files) operator(=) type([])
keyword(new) pre_type(File)operator(()ident(basedir)(\))operator(.)ident(eachFileMatch)operator(()operator(~)regexp<delimiter(/)content(\\.)content([ch])content($)delimiter(/)>(\))operator({) ident(f)operator(->)
- keyword(if) operator(()ident(f)operator(.)ident(isFile)operator(()(\)\)) ident(files) operator(+=) ident(f)
+ keyword(if) operator(()ident(f)operator(.)ident(isFile)operator(()(\))(\)) ident(files) operator(+=) ident(f)
(})
comment(// Using Ant's FileScanner (supports arbitrary nested levels using **\))
@@ -5023,19 +5023,19 @@ comment(// => Pleac/src contains 365676 bytes)
comment(// find biggest)
ident(biggest) operator(=) ident(files)operator(.)ident(max)operator({) local_variable(it)operator(.)ident(size)operator(()(\)) (})
-ident(println) string<delimiter(")content(Biggest file is )inline<inline_delimiter($)ident(biggest)>content(.name with )inline<inline_delimiter(${)ident(biggest.size(\))inline_delimiter(})>content( bytes)delimiter(")>
+ident(println) string<delimiter(")content(Biggest file is )inline<inline_delimiter($)ident(biggest)>content(.name with )inline<inline_delimiter(${)ident(biggest)operator(.)ident(size)operator(()(\))inline_delimiter(})>content( bytes)delimiter(")>
comment(// => Biggest file is pleac6.groovy with 42415 bytes)
comment(// find most recently modified)
ident(youngest) operator(=) ident(files)operator(.)ident(max)operator({) local_variable(it)operator(.)ident(lastModified)operator(()(\)) (})
-ident(println) string<delimiter(")content(Most recently modified is )inline<inline_delimiter($)ident(youngest)>content(.name, changed )inline<inline_delimiter(${)ident(new Date(youngest.lastModified(\)\))inline_delimiter(})>delimiter(")>
+ident(println) string<delimiter(")content(Most recently modified is )inline<inline_delimiter($)ident(youngest)>content(.name, changed )inline<inline_delimiter(${)keyword(new) pre_type(Date)operator(()ident(youngest)operator(.)ident(lastModified)operator(()(\))(\))inline_delimiter(})>delimiter(")>
comment(// => Most recently modified is pleac9.groovy, changed Tue Jan 09 07:35:39 EST 2007)
comment(// find all directories)
ident(dir)operator(.)ident(eachDir)operator({) ident(println) string<delimiter(')content(Found: )delimiter(')> operator(+) local_variable(it)operator(.)ident(name)(})
comment(// find all directories recursively)
-ident(dir)operator(.)ident(eachFileRecurse)operator({) ident(f) operator(->) keyword(if) operator(()ident(f)operator(.)ident(isDirectory)operator(()(\)\)) ident(println) string<delimiter(')content(Found: )delimiter(')> operator(+) ident(f)operator(.)ident(canonicalPath)(})
+ident(dir)operator(.)ident(eachFileRecurse)operator({) ident(f) operator(->) keyword(if) operator(()ident(f)operator(.)ident(isDirectory)operator(()(\))(\)) ident(println) string<delimiter(')content(Found: )delimiter(')> operator(+) ident(f)operator(.)ident(canonicalPath)(})
comment(//----------------------------------------------------------------------------------)
comment(// @@PLEAC@@_9.8)
@@ -5054,7 +5054,7 @@ comment(//----------------------------------------------------------------------
comment(// @@PLEAC@@_9.9)
comment(//----------------------------------------------------------------------------------)
ident(names) operator(=) operator([)string<delimiter(')content(Pleac/src/abc.java)delimiter(')>operator(,) string<delimiter(')content(Pleac/src/def.groovy)delimiter(')>(])
-ident(names)operator(.)ident(each)operator({) ident(name) operator(->) keyword(new) pre_type(File)operator(()ident(name)(\))operator(.)ident(renameTo)operator(()keyword(new) pre_type(File)operator(()ident(name) operator(+) string<delimiter(')content(.bak)delimiter(')>(\)\)) (})
+ident(names)operator(.)ident(each)operator({) ident(name) operator(->) keyword(new) pre_type(File)operator(()ident(name)(\))operator(.)ident(renameTo)operator(()keyword(new) pre_type(File)operator(()ident(name) operator(+) string<delimiter(')content(.bak)delimiter(')>(\))(\)) (})
comment(// The Groovy way of doing rename using an expr would be to use a closure)
comment(// for the expr:)
@@ -5067,7 +5067,7 @@ ident(files) operator(=) ident(args)operator([)integer(1)operator(..)operator(-)
ident(shell) operator(=) keyword(new) ident(GroovyShell)operator(()ident(binding)(\))
ident(files)operator(.)ident(each)operator({) ident(f) operator(->)
ident(newname) operator(=) ident(shell)operator(.)ident(evaluate)operator(()string<delimiter(")inline<inline_delimiter($)ident(op)>content((')inline<inline_delimiter($)ident(f)>content('\))delimiter(")>(\))
- keyword(new) pre_type(File)operator(()ident(f)(\))operator(.)ident(renameTo)operator(()keyword(new) pre_type(File)operator(()ident(newname)(\)\))
+ keyword(new) pre_type(File)operator(()ident(f)(\))operator(.)ident(renameTo)operator(()keyword(new) pre_type(File)operator(()ident(newname)(\))(\))
(})
comment(// this would allow processing such as:)
@@ -5085,7 +5085,7 @@ ident(sep) operator(=) pre_type(File)operator(.)ident(separator)
ident(ext) operator(=) operator({) string<delimiter(')content(.)delimiter(')> operator(+) local_variable(it)operator(.)ident(tokenize)operator(()string<delimiter(')content(.)delimiter(')>(\))operator([)operator(-)integer(1)(]) (})
ident(base) operator(=) operator({) keyword(new) pre_type(File)operator(()local_variable(it)(\))operator(.)ident(name) operator(-) ident(ext)operator(()local_variable(it)(\)) (})
ident(parent) operator(=) operator({) keyword(new) pre_type(File)operator(()local_variable(it)(\))operator(.)ident(parent) (})
-ident(lastModified) operator(=) operator({) keyword(new) pre_type(Date)operator(()keyword(new) pre_type(File)operator(()local_variable(it)(\))operator(.)ident(lastModified)operator(()(\)\)) (})
+ident(lastModified) operator(=) operator({) keyword(new) pre_type(Date)operator(()keyword(new) pre_type(File)operator(()local_variable(it)(\))operator(.)ident(lastModified)operator(()(\))(\)) (})
comment(// would then allow the following more succinct expressions:)
comment(//% rename "{ n -> parent(n\) + sep + base(n\).reverse(\) + ext(n\) }" files)
comment(// with param Pleac/src/pleac9.groovy => Pleac\\src\\9caelp.groovy)
@@ -5173,17 +5173,17 @@ ident(op)operator(.)ident(accepts)operator(() ident(SIZE_OPTION)operator(,) stri
ident(op)operator(.)ident(accepts)operator(() ident(HELP_OPTION)operator(,) string<delimiter(')content(display this message)delimiter(')> (\))
ident(options) operator(=) ident(op)operator(.)ident(parse)operator(()ident(args)(\))
-keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(HELP_OPTION) (\)\)) operator({)
+keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(HELP_OPTION) (\))(\)) operator({)
ident(op)operator(.)ident(printHelpOn)operator(() pre_type(System)operator(.)ident(out) (\))
(}) keyword(else) operator({)
ident(sort) operator(=) operator({)(})
ident(params) operator(=) ident(options)operator(.)ident(nonOptionArguments)operator(()(\))
ident(longFormat) operator(=) ident(options)operator(.)ident(wasDetected)operator(() ident(LONG_OPTION) (\))
ident(reversed) operator(=) ident(options)operator(.)ident(wasDetected)operator(() ident(REVERSE_OPTION) (\))
- keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(SIZE_OPTION) (\)\)) operator({)
- ident(sort) operator(=) operator({)ident(a)operator(,)ident(b) operator(->) ident(a)operator(.)ident(size)operator(()(\))operator(<=)operator(>)ident(b)operator(.)ident(size)operator(()(\)})
- (}) keyword(else) keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(MODIFY_OPTION) (\)\)) operator({)
- ident(sort) operator(=) operator({)ident(a)operator(,)ident(b) operator(->) ident(a)operator(.)ident(lastModified)operator(()(\))operator(<=)operator(>)ident(b)operator(.)ident(lastModified)operator(()(\)})
+ keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(SIZE_OPTION) (\))(\)) operator({)
+ ident(sort) operator(=) operator({)ident(a)operator(,)ident(b) operator(->) ident(a)operator(.)ident(size)operator(()(\))operator(<=>)ident(b)operator(.)ident(size)operator(()(\))(})
+ (}) keyword(else) keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(MODIFY_OPTION) (\))(\)) operator({)
+ ident(sort) operator(=) operator({)ident(a)operator(,)ident(b) operator(->) ident(a)operator(.)ident(lastModified)operator(()(\))operator(<=>)ident(b)operator(.)ident(lastModified)operator(()(\))(})
(})
ident(displayFiles)operator(()ident(params)operator(,) ident(longFormat)operator(,) ident(reversed)operator(,) ident(sort)(\))
(})
@@ -5200,7 +5200,7 @@ keyword(def) method(displayFiles)operator(()ident(params)operator(,) ident(longF
ident(print) operator(()ident(file)operator(.)ident(canWrite)operator(()(\)) operator(?) string<delimiter(')content(w )delimiter(')> operator(:) string<delimiter(')content(- )delimiter(')> (\))
comment(//print (file.canExecute(\) ? 'x' : '-' \) // Java 6)
ident(print) ident(file)operator(.)ident(size)operator(()(\))operator(.)ident(toString)operator(()(\))operator(.)ident(padLeft)operator(()integer(12)(\)) operator(+) string<delimiter(')content( )delimiter(')>
- ident(print) keyword(new) pre_type(Date)operator(()ident(file)operator(.)ident(lastModified)operator(()(\)\))operator(.)ident(toString)operator(()(\))operator(.)ident(padRight)operator(()integer(22)(\))
+ ident(print) keyword(new) pre_type(Date)operator(()ident(file)operator(.)ident(lastModified)operator(()(\))(\))operator(.)ident(toString)operator(()(\))operator(.)ident(padRight)operator(()integer(22)(\))
ident(println) string<delimiter(')content( )delimiter(')> operator(+) ident(file)
(}) keyword(else) operator({)
ident(println) ident(file)
@@ -5276,7 +5276,7 @@ keyword(assert) ident(toInteger)operator(()ident(nums)(\)) operator(==) operator
ident(orignums) operator(=) operator([)float(1.4)operator(,) float(3.5)operator(,) float(6.7)(])
keyword(def) method(truncMe)operator(()ident(n)(\)) operator({)
- operator(()integer(0)operator(..<)ident(n)operator(.)ident(size)operator(()(\)\))operator(.)ident(each)operator({) ident(idx) operator(->) ident(n)operator([)ident(idx)(]) operator(=) ident(n)operator([)ident(idx)(])operator(.)ident(toInteger)operator(()(\)) (})
+ operator(()integer(0)operator(..<)ident(n)operator(.)ident(size)operator(()(\))(\))operator(.)ident(each)operator({) ident(idx) operator(->) ident(n)operator([)ident(idx)(]) operator(=) ident(n)operator([)ident(idx)(])operator(.)ident(toInteger)operator(()(\)) (})
(})
ident(truncMe)operator(()ident(orignums)(\))
keyword(assert) ident(orignums) operator(==) operator([)integer(1)operator(,) integer(3)operator(,) integer(6)(])
@@ -5309,7 +5309,7 @@ keyword(def) method(saveArray)operator(()ident(ary)(\)) operator({)
ident(globalArray) operator(+=) ident(ary)
(})
-ident(saveArray)operator(()operator([)string<delimiter(')content(important)delimiter(')>(]\))
+ident(saveArray)operator(()operator([)string<delimiter(')content(important)delimiter(')>(])(\))
keyword(assert) ident(globalArray) operator(==) operator([)string<delimiter(")content(internal)delimiter(")>operator(,) string<delimiter(")content(important)delimiter(")>(])
comment(//----------------------------------------------------------------------------------)
@@ -5357,7 +5357,7 @@ keyword(def) method(myMethod)operator(()(\)) operator({)
(})
keyword(def) method(myMethod2)operator(()(\)) operator({)
ident(names) operator(=) pre_type(Thread)operator(.)ident(currentThread)operator(()(\))operator(.)ident(stackTrace)operator(*.)ident(methodName)
- ident(names) operator(=) ident(names)operator([)integer(3)operator(..<)ident(names)operator(.)ident(size)operator(()(\)]) comment(// skip call to dumpThread)
+ ident(names) operator(=) ident(names)operator([)integer(3)operator(..<)ident(names)operator(.)ident(size)operator(()(\))(]) comment(// skip call to dumpThread)
ident(println) ident(groovyUnwrap)operator(()ident(names)(\))
(})
keyword(def) method(groovyUnwrap)operator(()ident(names)(\)) operator({) ident(names)operator([)ident(names)operator(.)ident(indexOf)operator(()string<delimiter(')content(invoke0)delimiter(')>(\))operator(-)integer(1)(]) (})
@@ -5378,8 +5378,8 @@ comment(// no such problem, just call: arrayDiff(array1, array2\))
comment(// pairwise add (altered so it doesn't require equal sizes\))
keyword(def) method(pairWiseAdd)operator(()ident(a1)operator(,) ident(a2)(\)) operator({)
ident(s1) operator(=) ident(a1)operator(.)ident(size)operator(()(\))operator(;) ident(s2) operator(=) ident(a2)operator(.)ident(size)operator(()(\))
- operator(()integer(0)operator(..<)operator([)ident(s1)operator(,)ident(s2)(])operator(.)ident(max)operator(()(\)\))operator(.)ident(collect)operator({)
- local_variable(it) operator(>) ident(s1)operator(-)integer(1) operator(?) ident(a2)operator([)local_variable(it)(]) operator(:) operator(()local_variable(it) operator(>) ident(s2)operator(-)integer(1) operator(?) ident(a1)operator([)local_variable(it)(]) operator(:) ident(a1)operator([)local_variable(it)(]) operator(+) ident(a2)operator([)local_variable(it)(]\))
+ operator(()integer(0)operator(..<)operator([)ident(s1)operator(,)ident(s2)(])operator(.)ident(max)operator(()(\))(\))operator(.)ident(collect)operator({)
+ local_variable(it) operator(>) ident(s1)operator(-)integer(1) operator(?) ident(a2)operator([)local_variable(it)(]) operator(:) operator(()local_variable(it) operator(>) ident(s2)operator(-)integer(1) operator(?) ident(a1)operator([)local_variable(it)(]) operator(:) ident(a1)operator([)local_variable(it)(]) operator(+) ident(a2)operator([)local_variable(it)(])(\))
(})
(})
ident(a) operator(=) operator([)integer(1)operator(,) integer(2)(])
@@ -5414,10 +5414,10 @@ keyword(def) method(addValueOrSize)operator(()ident(a1)operator(,) ident(a2)(\))
ident(b2) operator(=) operator(()ident(a2) keyword(instanceof) pre_type(Number)(\)) operator(?) ident(a2) operator(:) ident(a2)operator(.)ident(size)operator(()(\))
ident(b1) operator(+) ident(b2)
(})
-keyword(assert) operator(()ident(addValueOrSize)operator(()integer(10)operator(,) string<delimiter(')content(abcd)delimiter(')>(\)\)) operator(==) integer(14)
-keyword(assert) operator(()ident(addValueOrSize)operator(()integer(10)operator(,) operator([)integer(25)operator(,) integer(50)(]\)\)) operator(==) integer(12)
-keyword(assert) operator(()ident(addValueOrSize)operator(()string<delimiter(')content(abc)delimiter(')>operator(,) operator([)integer(25)operator(,) integer(50)(]\)\)) operator(==) integer(5)
-keyword(assert) operator(()ident(addValueOrSize)operator(()integer(25)operator(,) integer(50)(\)\)) operator(==) integer(75)
+keyword(assert) operator(()ident(addValueOrSize)operator(()integer(10)operator(,) string<delimiter(')content(abcd)delimiter(')>(\))(\)) operator(==) integer(14)
+keyword(assert) operator(()ident(addValueOrSize)operator(()integer(10)operator(,) operator([)integer(25)operator(,) integer(50)(])(\))(\)) operator(==) integer(12)
+keyword(assert) operator(()ident(addValueOrSize)operator(()string<delimiter(')content(abc)delimiter(')>operator(,) operator([)integer(25)operator(,) integer(50)(])(\))(\)) operator(==) integer(5)
+keyword(assert) operator(()ident(addValueOrSize)operator(()integer(25)operator(,) integer(50)(\))(\)) operator(==) integer(75)
comment(// Of course, a key feature of many OO languages including Groovy is)
comment(// method overloading so that responding to dofferent parameters has)
@@ -5427,14 +5427,14 @@ type(class) class(MakeBiggerHelper) operator({)
keyword(def) method(triple)operator(()type(int) ident(i)(\)) operator({) ident(i) operator(*) integer(3) (})
(})
ident(mbh) operator(=) keyword(new) ident(MakeBiggerHelper)operator(()(\))
-keyword(assert) ident(mbh)operator(.)ident(triple)operator(()operator([)integer(4)operator(,) integer(5)(]\)) operator(==) operator([)integer(12)operator(,) integer(15)(])
+keyword(assert) ident(mbh)operator(.)ident(triple)operator(()operator([)integer(4)operator(,) integer(5)(])(\)) operator(==) operator([)integer(12)operator(,) integer(15)(])
keyword(assert) ident(mbh)operator(.)ident(triple)operator(()integer(4)(\)) operator(==) integer(12)
comment(// Of course with duck typing, we can rely on dynamic typing if we want)
keyword(def) method(directTriple)operator(()ident(arg)(\)) operator({)
operator(()ident(arg) keyword(instanceof) pre_type(Number)(\)) operator(?) ident(arg) operator(*) integer(3) operator(:) ident(arg)operator(.)ident(collect)operator({) local_variable(it) operator(*) integer(3) (})
(})
-keyword(assert) ident(directTriple)operator(()operator([)integer(4)operator(,) integer(5)(]\)) operator(==) operator([)integer(12)operator(,) integer(15)(])
+keyword(assert) ident(directTriple)operator(()operator([)integer(4)operator(,) integer(5)(])(\)) operator(==) operator([)integer(12)operator(,) integer(15)(])
keyword(assert) ident(directTriple)operator(()integer(4)(\)) operator(==) integer(12)
comment(//----------------------------------------------------------------------------------)
@@ -5452,7 +5452,7 @@ keyword(def) method(thefunc)operator(()pre_type(Map) ident(args)(\)) operator({)
comment(// positional arguments with defaults)
keyword(def) method(thefunc)operator(()ident(start)operator(=)integer(0)operator(,) ident(end)operator(=)integer(30)operator(,) ident(step)operator(=)integer(10)(\)) operator({)
- operator(()operator(()ident(start)operator(..)ident(end)(\))operator(.)ident(step)operator(()ident(step)(\)\))
+ operator(()operator(()ident(start)operator(..)ident(end)(\))operator(.)ident(step)operator(()ident(step)(\))(\))
(})
keyword(assert) ident(thefunc)operator(()(\)) operator(==) operator([)integer(0)operator(,) integer(10)operator(,) integer(20)operator(,) integer(30)(])
@@ -5489,9 +5489,9 @@ comment(// just use a holder class, array or collection. There are no limitation
comment(// on returning arbitrary nested values using this technique.)
keyword(def) method(getInfo)operator(()(\)) operator({)
keyword(def) ident(system) operator(=) operator([)key(millis)operator(:)pre_type(System)operator(.)ident(currentTimeMillis)operator(()(\))operator(,)
- key(version)operator(:)pre_type(System)operator(.)ident(getProperty)operator(()string<delimiter(')content(java.vm.version)delimiter(')>(\)])
+ key(version)operator(:)pre_type(System)operator(.)ident(getProperty)operator(()string<delimiter(')content(java.vm.version)delimiter(')>(\))(])
keyword(def) ident(runtime) operator(=) operator([)key(freemem)operator(:)pre_type(Runtime)operator(.)ident(runtime)operator(.)ident(freeMemory)operator(()(\))operator(,)
- key(maxmem)operator(:)pre_type(Runtime)operator(.)ident(runtime)operator(.)ident(maxMemory)operator(()(\)])
+ key(maxmem)operator(:)pre_type(Runtime)operator(.)ident(runtime)operator(.)ident(maxMemory)operator(()(\))(])
keyword(return) operator([)key(system)operator(:)ident(system)operator(,) key(runtime)operator(:)ident(runtime)(])
(})
ident(println) ident(info)operator(.)ident(runtime)operator(.)ident(maxmem) comment(// => 66650112 (info automatically calls getInfo(\) here\))
@@ -5511,7 +5511,7 @@ keyword(def) method(check)operator(()ident(thing)(\)) operator({)
ident(println) operator(()ident(result) operator(?) string<delimiter(")content(Worked with result: )inline<inline_delimiter($)ident(result)>delimiter(")> operator(:) string<delimiter(')content(Failed)delimiter(')>(\))
(})
ident(check)operator(()integer(4)(\))
-ident(check)operator(()operator([)integer(1)operator(,) integer(2)(]\))
+ident(check)operator(()operator([)integer(1)operator(,) integer(2)(])(\))
ident(check)operator(()string<delimiter(')content(abc)delimiter(')>(\))
comment(// =>)
comment(// Failed)
@@ -5668,7 +5668,7 @@ type(class) class(FontHelper) operator({)
(})
comment(// but this method will catch any undefined ones)
keyword(def) method(invokeMethod)operator(()pre_type(String) ident(name)operator(,) pre_type(Object) ident(args)(\)) operator({)
- ident(buildFont)operator(()ident(name)operator(,) ident(args)operator(.)ident(join)operator(()string<delimiter(')content( and )delimiter(')>(\)\))
+ ident(buildFont)operator(()ident(name)operator(,) ident(args)operator(.)ident(join)operator(()string<delimiter(')content( and )delimiter(')>(\))(\))
(})
keyword(def) method(buildFont)operator(()ident(name)operator(,) ident(info)(\)) operator({)
string<delimiter(")content(<FONT COLOR=')inline<inline_delimiter($)ident(name)>content('>)delimiter(")> operator(+) ident(info) operator(+) string<delimiter(")content(</FONT>)delimiter(")>
@@ -5700,8 +5700,8 @@ doctype(#!/usr/bin/groovy)
keyword(import) include(javax.mail.*)
comment(// solution using mstor package (mstor.sf.net\))
-ident(session) operator(=) ident(Session)operator(.)ident(getDefaultInstance)operator(()keyword(new) pre_type(Properties)operator(()(\)\))
-ident(store) operator(=) ident(session)operator(.)ident(getStore)operator(()keyword(new) ident(URLName)operator(()string<delimiter(')content(mstor:/path_to_your_mbox_directory)delimiter(')>(\)\))
+ident(session) operator(=) ident(Session)operator(.)ident(getDefaultInstance)operator(()keyword(new) pre_type(Properties)operator(()(\))(\))
+ident(store) operator(=) ident(session)operator(.)ident(getStore)operator(()keyword(new) ident(URLName)operator(()string<delimiter(')content(mstor:/path_to_your_mbox_directory)delimiter(')>(\))(\))
ident(store)operator(.)ident(connect)operator(()(\))
comment(// read messages from Inbox)
@@ -5715,7 +5715,7 @@ ident(subjectExcludingReplyPrefix) operator(=) operator({) ident(m) operator(->)
ident(date) operator(=) operator({) ident(m) operator(->) ident(d) operator(=) ident(m)operator(.)ident(sentDate)operator(;) keyword(new) pre_type(Date)operator(()ident(d)operator(.)ident(year)operator(,) ident(d)operator(.)ident(month)operator(,) ident(d)operator(.)ident(date)(\)) (}) comment(// ignore time fields)
comment(// sort by subject excluding 'Re:' prefixs then print subject for first 6)
-ident(println) ident(messages)operator(.)ident(sort)operator({)ident(subjectExcludingReplyPrefix)operator(()local_variable(it)(\)})operator([)integer(0)operator(..)integer(5)(])operator(*.)ident(subject)operator(.)ident(join)operator(()string<delimiter(')content(\\n)delimiter(')>(\))
+ident(println) ident(messages)operator(.)ident(sort)operator({)ident(subjectExcludingReplyPrefix)operator(()local_variable(it)(\))(})operator([)integer(0)operator(..)integer(5)(])operator(*.)ident(subject)operator(.)ident(join)operator(()string<delimiter(')content(\\n)delimiter(')>(\))
comment(// =>)
comment(// Additional Resources for JDeveloper 10g (10.1.3\))
comment(// Amazon Web Services Developer Connection Newsletter #18)
@@ -5727,8 +5727,8 @@ comment(// BigPond Account Notification)
comment(// sort by date then subject (print first 6 entries\))
ident(sorted) operator(=) ident(messages)operator(.)ident(sort)operator({) ident(a)operator(,)ident(b) operator(->)
ident(date)operator(()ident(a)(\)) operator(==) ident(date)operator(()ident(b)(\)) operator(?)
- ident(subjectExcludingReplyPrefix)operator(()ident(a)(\)) operator(<=)operator(>) ident(subjectExcludingReplyPrefix)operator(()ident(b)(\)) operator(:)
- ident(date)operator(()ident(a)(\)) operator(<=)operator(>) ident(date)operator(()ident(b)(\))
+ ident(subjectExcludingReplyPrefix)operator(()ident(a)(\)) operator(<=>) ident(subjectExcludingReplyPrefix)operator(()ident(b)(\)) operator(:)
+ ident(date)operator(()ident(a)(\)) operator(<=>) ident(date)operator(()ident(b)(\))
(})
ident(sorted)operator([)integer(0)operator(..)integer(5)(])operator(.)ident(each)operator({) ident(m) operator(->) ident(println) string<delimiter(")inline<inline_delimiter($)ident(m)>content(.sentDate: )inline<inline_delimiter($)ident(m)>content(.subject)delimiter(")> (})
comment(// =>)
@@ -5811,7 +5811,7 @@ ident(println) ident(implicitCreation)operator([)operator(-)integer(1)(])
comment(//=> 10)
comment(// And if you were looping through (and not using a list closure operator\))
-operator(()integer(0)operator(..<)ident(aref)operator(.)ident(size)operator(()(\)\))operator(.)ident(each)operator({) comment(/* do something */) (})
+operator(()integer(0)operator(..<)ident(aref)operator(.)ident(size)operator(()(\))(\))operator(.)ident(each)operator({) comment(/* do something */) (})
ident(numItems) operator(=) ident(aref)operator(.)ident(size)operator(()(\))
@@ -5832,7 +5832,7 @@ ident(println) ident(anonList)operator([)integer(4)(]) comment(// refers to the
comment(// The following two statements are equivalent and return up to 3 elements)
comment(// at indices 3, 4, and 5 (if they exist\).)
ident(x) operator(=) ident(anonList)operator([)integer(3)operator(..)integer(5)(])
-ident(x) operator(=) ident(anonList)operator([)operator(()integer(3)operator(..)integer(5)(\))operator(.)ident(step)operator(()integer(1)(\)])
+ident(x) operator(=) ident(anonList)operator([)operator(()integer(3)operator(..)integer(5)(\))operator(.)ident(step)operator(()integer(1)(\))(])
comment(// This will insert 3 elements, overwriting elements at indices 3,4, or 5 - if they exist.)
ident(anonList)operator([)integer(3)operator(..)integer(5)(]) operator(=) operator([)string<delimiter(")content(blackberry)delimiter(")>operator(,) string<delimiter(")content(blueberry)delimiter(")>operator(,) string<delimiter(")content(pumpkin)delimiter(")>(])
@@ -5842,8 +5842,8 @@ keyword(for) operator(()ident(item) keyword(in) ident(anonList)(\)) ident(printl
ident(anonList)operator(.)ident(each)operator({) ident(println) local_variable(it) (})
comment(// index-based looping)
-operator(()integer(0)operator(..<)ident(anonList)operator(.)ident(size)operator(()(\)\))operator(.)ident(each)operator({) ident(idx) operator(->) ident(println) ident(anonList)operator([)ident(idx)(]) (})
-keyword(for) operator(()ident(idx) keyword(in) integer(0)operator(..<)ident(anonList)operator(.)ident(size)operator(()(\)\)) ident(println) ident(anonList)operator([)ident(idx)(])
+operator(()integer(0)operator(..<)ident(anonList)operator(.)ident(size)operator(()(\))(\))operator(.)ident(each)operator({) ident(idx) operator(->) ident(println) ident(anonList)operator([)ident(idx)(]) (})
+keyword(for) operator(()ident(idx) keyword(in) integer(0)operator(..<)ident(anonList)operator(.)ident(size)operator(()(\))(\)) ident(println) ident(anonList)operator([)ident(idx)(])
comment(//----------------------------------------------------------------------------------)
@@ -5896,7 +5896,7 @@ comment(// a key => [3, 4, 5, 6])
ident(values) operator(=) operator([)string<delimiter(')content(key1)delimiter(')>operator(,)string<delimiter(')content(key2)delimiter(')>(])operator(.)ident(collect)operator({) ident(myHash)operator([)local_variable(it)(]) (})
ident(println) ident(values) comment(// => [100, 200])
-keyword(for) operator(()ident(key) keyword(in) operator([)string<delimiter(")content(key1)delimiter(")>operator(,) string<delimiter(")content(key2)delimiter(")>(]\)) operator({)
+keyword(for) operator(()ident(key) keyword(in) operator([)string<delimiter(")content(key1)delimiter(")>operator(,) string<delimiter(")content(key2)delimiter(")>(])(\)) operator({)
ident(myHash)operator([)ident(key)(]) operator(+=) integer(7)
(})
ident(println) ident(myHash) comment(// => ["key1":107, "key2":207])
@@ -5917,7 +5917,7 @@ ident(commands) operator(=) operator([)key(happy)operator(:) local_variable(this
ident(print) string<delimiter(")content(How are you?)delimiter(")>
ident(cmd) operator(=) pre_type(System)operator(.)ident(in)operator(.)ident(readLine)operator(()(\))
-keyword(if) operator(()ident(cmd) keyword(in) ident(commands)operator(.)ident(keySet)operator(()(\)\)) ident(commands)operator([)ident(cmd)(])operator(()(\))
+keyword(if) operator(()ident(cmd) keyword(in) ident(commands)operator(.)ident(keySet)operator(()(\))(\)) ident(commands)operator([)ident(cmd)(])operator(()(\))
keyword(else) ident(println) string<delimiter(")content(No such command: )inline<inline_delimiter($)ident(cmd)>delimiter(")>
@@ -5929,13 +5929,13 @@ keyword(def) method(counterMaker)operator(()(\))operator({)
(})
ident(counter) operator(=) ident(counterMaker)operator(()(\))
-integer(5)operator(.)ident(times)operator({) ident(print) string<delimiter(")inline<inline_delimiter(${)ident(counter(\))inline_delimiter(})>content( )delimiter(")> (})operator(;) ident(println)operator(()(\))
+integer(5)operator(.)ident(times)operator({) ident(print) string<delimiter(")inline<inline_delimiter(${)ident(counter)operator(()(\))inline_delimiter(})>content( )delimiter(")> (})operator(;) ident(println)operator(()(\))
ident(counter1) operator(=) ident(counterMaker)operator(()(\))
ident(counter2) operator(=) ident(counterMaker)operator(()(\))
-integer(5)operator(.)ident(times)operator({) ident(println) string<delimiter(")inline<inline_delimiter(${)ident(counter1(\))inline_delimiter(})>content( )delimiter(")> (})
-ident(println) string<delimiter(")inline<inline_delimiter(${)ident(counter1(\))inline_delimiter(})>content( )inline<inline_delimiter(${)ident(counter2(\))inline_delimiter(})>delimiter(")>
+integer(5)operator(.)ident(times)operator({) ident(println) string<delimiter(")inline<inline_delimiter(${)ident(counter1)operator(()(\))inline_delimiter(})>content( )delimiter(")> (})
+ident(println) string<delimiter(")inline<inline_delimiter(${)ident(counter1)operator(()(\))inline_delimiter(})>content( )inline<inline_delimiter(${)ident(counter2)operator(()(\))inline_delimiter(})>delimiter(")>
comment(//=> 0)
comment(//=> 1)
comment(//=> 2)
@@ -5952,8 +5952,8 @@ ident(early) operator(=) ident(timestamp)operator(()(\))
comment(//sleep(10000\))
ident(later) operator(=) ident(timestamp)operator(()(\))
ident(sleep)operator(()integer(2000)(\))
-ident(println) string<delimiter(")content(It's been )inline<inline_delimiter(${)ident(early(\))inline_delimiter(})>content( seconds since early.)delimiter(")>
-ident(println) string<delimiter(")content(It's been )inline<inline_delimiter(${)ident(later(\))inline_delimiter(})>content( seconds since later.)delimiter(")>
+ident(println) string<delimiter(")content(It's been )inline<inline_delimiter(${)ident(early)operator(()(\))inline_delimiter(})>content( seconds since early.)delimiter(")>
+ident(println) string<delimiter(")content(It's been )inline<inline_delimiter(${)ident(later)operator(()(\))inline_delimiter(})>content( seconds since later.)delimiter(")>
comment(//=> It's been 12 seconds since early.)
comment(//=> It's been 2 seconds since later.)
comment(//----------------------------------------------------------------------------------)
@@ -5967,7 +5967,7 @@ comment(// Some operations produce new objects.)
comment(// 15 is an Integer which is an immutable object.)
comment(// passing 15 to a method passes a reference to the Integer object.)
-keyword(def) method(print)operator(()ident(n)(\)) operator({) ident(println) string<delimiter(")inline<inline_delimiter(${)ident(n.toString(\))inline_delimiter(})>delimiter(")> (})
+keyword(def) method(print)operator(()ident(n)(\)) operator({) ident(println) string<delimiter(")inline<inline_delimiter(${)ident(n)operator(.)ident(toString)operator(()(\))inline_delimiter(})>delimiter(")> (})
ident(print)operator(()integer(15)(\)) comment(// no need to create any kind of explicit reference)
comment(// even though Integers are immutable, references to them are not)
@@ -5987,7 +5987,7 @@ ident(print) ident(list) comment(//=> [[1] 1 s])
ident(list) operator(=) ident(list)operator(.)ident(collect)operator({) local_variable(it) operator(+) integer(1) (})
ident(print) ident(list) comment(//=> [[1, 1], 2, s1])
-ident(list) operator(=) operator([)operator([)string<delimiter(')content(Z)delimiter(')>operator(,) string<delimiter(')content(Y)delimiter(')>operator(,) string<delimiter(')content(X)delimiter(')>(])operator(,) operator([)string<delimiter(')content(C)delimiter(')>operator(,) string<delimiter(')content(B)delimiter(')>operator(,) string<delimiter(')content(A)delimiter(')>(])operator(,) operator([)integer(5)operator(,) integer(3)operator(,) integer(1)(]])
+ident(list) operator(=) operator([)operator([)string<delimiter(')content(Z)delimiter(')>operator(,) string<delimiter(')content(Y)delimiter(')>operator(,) string<delimiter(')content(X)delimiter(')>(])operator(,) operator([)string<delimiter(')content(C)delimiter(')>operator(,) string<delimiter(')content(B)delimiter(')>operator(,) string<delimiter(')content(A)delimiter(')>(])operator(,) operator([)integer(5)operator(,) integer(3)operator(,) integer(1)(])(])
ident(list)operator(.)ident(each)operator({) local_variable(it)operator(.)ident(sort)operator(()(\)) (}) comment(// sort operation operates inline)
ident(println) ident(list) comment(// => [["X", "Y", "Z"], ["A", "B", "C"], [1, 3, 5]])
comment(//----------------------------------------------------------------------------------)
@@ -5999,7 +5999,7 @@ comment(// As indicated by the previous section, everything is referenced, so)
comment(// just create a list as normal, and beware that augmented assignment)
comment(// works differently with immutable objects to mutable ones and depends)
comment(// on the semantics of the particular operation invoked:)
-ident(mylist) operator(=) operator([)integer(1)operator(,) string<delimiter(")content(s)delimiter(")>operator(,) operator([)integer(1)(]])
+ident(mylist) operator(=) operator([)integer(1)operator(,) string<delimiter(")content(s)delimiter(")>operator(,) operator([)integer(1)(])(])
ident(print) ident(mylist)
comment(//=> [1, s, [1]])
@@ -6035,23 +6035,23 @@ keyword(def) method(mkcounter)operator(()ident(count)(\)) operator({)
ident(c1) operator(=) ident(mkcounter)operator(()integer(20)(\))
ident(c2) operator(=) ident(mkcounter)operator(()integer(77)(\))
-ident(println) string<delimiter(")content(next c1: )inline<inline_delimiter(${)ident(c1["NEXT"](\))inline_delimiter(})>delimiter(")> comment(// 21)
-ident(println) string<delimiter(")content(next c2: )inline<inline_delimiter(${)ident(c2["NEXT"](\))inline_delimiter(})>delimiter(")> comment(// 78)
-ident(println) string<delimiter(")content(next c1: )inline<inline_delimiter(${)ident(c1["NEXT"](\))inline_delimiter(})>delimiter(")> comment(// 22)
-ident(println) string<delimiter(")content(last c1: )inline<inline_delimiter(${)ident(c1["PREV"](\))inline_delimiter(})>delimiter(")> comment(// 21)
-ident(println) string<delimiter(")content(last c1: )inline<inline_delimiter(${)ident(c1["LAST"](\))inline_delimiter(})>delimiter(")> comment(// 20)
-ident(println) string<delimiter(")content(old c2: )inline<inline_delimiter(${)ident(c2["RESET"](\))inline_delimiter(})>delimiter(")> comment(// 77)
+ident(println) string<delimiter(")content(next c1: )inline<inline_delimiter(${)ident(c1)operator([)string<delimiter(")content(NEXT)delimiter(")>(])operator(()(\))inline_delimiter(})>delimiter(")> comment(// 21)
+ident(println) string<delimiter(")content(next c2: )inline<inline_delimiter(${)ident(c2)operator([)string<delimiter(")content(NEXT)delimiter(")>(])operator(()(\))inline_delimiter(})>delimiter(")> comment(// 78)
+ident(println) string<delimiter(")content(next c1: )inline<inline_delimiter(${)ident(c1)operator([)string<delimiter(")content(NEXT)delimiter(")>(])operator(()(\))inline_delimiter(})>delimiter(")> comment(// 22)
+ident(println) string<delimiter(")content(last c1: )inline<inline_delimiter(${)ident(c1)operator([)string<delimiter(")content(PREV)delimiter(")>(])operator(()(\))inline_delimiter(})>delimiter(")> comment(// 21)
+ident(println) string<delimiter(")content(last c1: )inline<inline_delimiter(${)ident(c1)operator([)string<delimiter(")content(LAST)delimiter(")>(])operator(()(\))inline_delimiter(})>delimiter(")> comment(// 20)
+ident(println) string<delimiter(")content(old c2: )inline<inline_delimiter(${)ident(c2)operator([)string<delimiter(")content(RESET)delimiter(")>(])operator(()(\))inline_delimiter(})>delimiter(")> comment(// 77)
comment(//----------------------------------------------------------------------------------)
comment(// @@PLEAC@@_11.8)
comment(//----------------------------------------------------------------------------------)
keyword(def) method(addAndMultiply)operator(()ident(a)operator(,) ident(b)(\)) operator({)
- ident(println) string<delimiter(")inline<inline_delimiter(${)ident(a+b)inline_delimiter(})>content( )inline<inline_delimiter(${)ident(a*b)inline_delimiter(})>delimiter(")>
+ ident(println) string<delimiter(")inline<inline_delimiter(${)ident(a)operator(+)ident(b)inline_delimiter(})>content( )inline<inline_delimiter(${)ident(a)operator(*)ident(b)inline_delimiter(})>delimiter(")>
(})
ident(methRef) operator(=) local_variable(this)operator(.)operator(&)ident(addAndMultiply)
comment(// or use direct closure)
-ident(multiplyAndAdd) operator(=) operator({) ident(a)operator(,)ident(b) operator(->) ident(println) string<delimiter(")inline<inline_delimiter(${)ident(a*b)inline_delimiter(})>content( )inline<inline_delimiter(${)ident(a+b)inline_delimiter(})>delimiter(")> (})
+ident(multiplyAndAdd) operator(=) operator({) ident(a)operator(,)ident(b) operator(->) ident(println) string<delimiter(")inline<inline_delimiter(${)ident(a)operator(*)ident(b)inline_delimiter(})>content( )inline<inline_delimiter(${)ident(a)operator(+)ident(b)inline_delimiter(})>delimiter(")> (})
comment(// later ...)
ident(methRef)operator(()integer(2)operator(,)integer(3)(\)) comment(// => 5 6)
ident(multiplyAndAdd)operator(()integer(2)operator(,)integer(3)(\)) comment(// => 6 5)
@@ -6068,28 +6068,28 @@ ident(record) operator(=) operator([)
string<delimiter(")content(salary)delimiter(")>operator(:) integer(37000)operator(,)
string<delimiter(")content(pals)delimiter(")>operator(:) operator([)string<delimiter(")content(Norbert)delimiter(")>operator(,) string<delimiter(")content(Rhys)delimiter(")>operator(,) string<delimiter(")content(Phineas)delimiter(")>(])operator(,)
(])
-ident(println) string<delimiter(")content(I am )inline<inline_delimiter(${)ident(record.'name')inline_delimiter(})>content(, and my pals are )inline<inline_delimiter(${)ident(record.'pals'.join(', '\))inline_delimiter(})>content(.)delimiter(")>
+ident(println) string<delimiter(")content(I am )inline<inline_delimiter(${)ident(record)operator(.)string<delimiter(')content(name)delimiter(')>inline_delimiter(})>content(, and my pals are )inline<inline_delimiter(${)ident(record)operator(.)string<delimiter(')content(pals)delimiter(')>operator(.)ident(join)operator(()string<delimiter(')content(, )delimiter(')>(\))inline_delimiter(})>content(.)delimiter(")>
comment(// => I am Jason, and my pals are Norbert, Rhys, Phineas.)
ident(byname) operator(=) operator([)operator(:)(])
-ident(byname)operator([)ident(record)operator([)string<delimiter(")content(name)delimiter(")>(]]) operator(=) ident(record)
+ident(byname)operator([)ident(record)operator([)string<delimiter(")content(name)delimiter(")>(])(]) operator(=) ident(record)
ident(rp) operator(=) ident(byname)operator(.)ident(get)operator(()string<delimiter(")content(Aron)delimiter(")>(\))
-keyword(if) operator(()ident(rp)(\)) ident(println) string<delimiter(")content(Aron is employee )inline<inline_delimiter(${)ident(rp["empno"])inline_delimiter(})>content(.)delimiter(")>
+keyword(if) operator(()ident(rp)(\)) ident(println) string<delimiter(")content(Aron is employee )inline<inline_delimiter(${)ident(rp)operator([)string<delimiter(")content(empno)delimiter(")>(])inline_delimiter(})>content(.)delimiter(")>
ident(byname)operator([)string<delimiter(")content(Jason)delimiter(")>(])operator([)string<delimiter(")content(pals)delimiter(")>(]) operator(+=) string<delimiter(")content(Theodore)delimiter(")>
-ident(println) string<delimiter(")content(Jason now has )inline<inline_delimiter(${)ident(byname['Jason']['pals'].size(\))inline_delimiter(})>content( pals.)delimiter(")>
+ident(println) string<delimiter(")content(Jason now has )inline<inline_delimiter(${)ident(byname)operator([)string<delimiter(')content(Jason)delimiter(')>(])operator([)string<delimiter(')content(pals)delimiter(')>(])operator(.)ident(size)operator(()(\))inline_delimiter(})>content( pals.)delimiter(")>
ident(byname)operator(.)ident(each)operator({) ident(name)operator(,) ident(record) operator(->)
- ident(println) string<delimiter(")inline<inline_delimiter($)ident(name)>content( is employee number )inline<inline_delimiter(${)ident(record['empno'])inline_delimiter(})>content(.)delimiter(")>
+ ident(println) string<delimiter(")inline<inline_delimiter($)ident(name)>content( is employee number )inline<inline_delimiter(${)ident(record)operator([)string<delimiter(')content(empno)delimiter(')>(])inline_delimiter(})>content(.)delimiter(")>
(})
ident(employees) operator(=) operator([)operator(:)(])
-ident(employees)operator([)ident(record)operator([)string<delimiter(")content(empno)delimiter(")>(]]) operator(=) ident(record)
+ident(employees)operator([)ident(record)operator([)string<delimiter(")content(empno)delimiter(")>(])(]) operator(=) ident(record)
comment(// lookup by id)
ident(rp) operator(=) ident(employees)operator([)integer(132)(])
-keyword(if) operator(()ident(rp)(\)) ident(println) string<delimiter(")content(Employee number 132 is )inline<inline_delimiter(${)ident(rp.'name')inline_delimiter(})>content(.)delimiter(")>
+keyword(if) operator(()ident(rp)(\)) ident(println) string<delimiter(")content(Employee number 132 is )inline<inline_delimiter(${)ident(rp)operator(.)string<delimiter(')content(name)delimiter(')>inline_delimiter(})>content(.)delimiter(")>
ident(byname)operator([)string<delimiter(")content(Jason)delimiter(")>(])operator([)string<delimiter(")content(salary)delimiter(")>(]) operator(*=) float(1.035)
ident(println) ident(record)
@@ -6104,17 +6104,17 @@ keyword(assert) ident(tsevens)operator(.)ident(size)operator(()(\)) operator(==)
comment(// Go through all records)
ident(println) string<delimiter(')content(Names are: )delimiter(')> operator(+) ident(employees)operator(.)ident(values)operator(()(\))operator(.)ident(collect)operator({)ident(r)operator(->)ident(r)operator(.)string<delimiter(')content(name)delimiter(')>(})operator(.)ident(join)operator(()string<delimiter(')content(, )delimiter(')>(\))
-ident(byAge) operator(=) operator({)ident(a)operator(,)ident(b)operator(->) ident(a)operator(.)ident(value)operator(()(\))operator(.)string<delimiter(')content(age)delimiter(')> operator(<=)operator(>) ident(b)operator(.)ident(value)operator(()(\))operator(.)string<delimiter(')content(age)delimiter(')>(})
+ident(byAge) operator(=) operator({)ident(a)operator(,)ident(b)operator(->) ident(a)operator(.)ident(value)operator(()(\))operator(.)string<delimiter(')content(age)delimiter(')> operator(<=>) ident(b)operator(.)ident(value)operator(()(\))operator(.)string<delimiter(')content(age)delimiter(')>(})
ident(employees)operator(.)ident(values)operator(()(\))operator(.)ident(sort)operator({)ident(byAge)(})operator(.)ident(each)operator({) ident(r)operator(->)
- ident(println) string<delimiter(")inline<inline_delimiter(${)ident(r.'name')inline_delimiter(})>content( is )inline<inline_delimiter(${)ident(r.'age')inline_delimiter(})>delimiter(")>
+ ident(println) string<delimiter(")inline<inline_delimiter(${)ident(r)operator(.)string<delimiter(')content(name)delimiter(')>inline_delimiter(})>content( is )inline<inline_delimiter(${)ident(r)operator(.)string<delimiter(')content(age)delimiter(')>inline_delimiter(})>delimiter(")>
(})
comment(// byage, a hash: age => list of records)
ident(byage) operator(=) operator([)operator(:)(])
-ident(byage)operator([)ident(record)operator([)string<delimiter(")content(age)delimiter(")>(]]) operator(=) ident(byage)operator(.)ident(get)operator(()ident(record)operator([)string<delimiter(")content(age)delimiter(")>(])operator(,) type([])(\)) operator(+) operator([)ident(record)(])
+ident(byage)operator([)ident(record)operator([)string<delimiter(")content(age)delimiter(")>(])(]) operator(=) ident(byage)operator(.)ident(get)operator(()ident(record)operator([)string<delimiter(")content(age)delimiter(")>(])operator(,) type([])(\)) operator(+) operator([)ident(record)(])
ident(byage)operator(.)ident(each)operator({) ident(age)operator(,) ident(list) operator(->)
- ident(println) string<delimiter(")content(Age )inline<inline_delimiter($)ident(age)>content(: )inline<inline_delimiter(${)ident(list.collect{it.'name')inline_delimiter(})>content(.join(', '\)})delimiter(")>
+ ident(println) string<delimiter(")content(Age )inline<inline_delimiter($)ident(age)>content(: )inline<inline_delimiter(${)ident(list)operator(.)ident(collect)operator({)local_variable(it)operator(.)string<delimiter(')content(name)delimiter(')>(})operator(.)ident(join)operator(()string<delimiter(')content(, )delimiter(')>(\))inline_delimiter(})>delimiter(")>
(})
comment(//----------------------------------------------------------------------------------)
@@ -6142,11 +6142,11 @@ comment(//----------------------------------------------------------------------
comment(// @@PLEAC@@_11.11)
comment(//----------------------------------------------------------------------------------)
comment(// Groovy automatically does pretty printing for some of the key types, e.g.)
-ident(mylist) operator(=) operator([)operator([)integer(1)operator(,)integer(2)operator(,)integer(3)(])operator(,) operator([)integer(4)operator(,) operator([)integer(5)operator(,)integer(6)operator(,)integer(7)(])operator(,) integer(8)operator(,)integer(9)operator(,) operator([)integer(0)operator(,)integer(3)operator(,)integer(5)(]])operator(,) integer(7)operator(,) integer(8)(])
+ident(mylist) operator(=) operator([)operator([)integer(1)operator(,)integer(2)operator(,)integer(3)(])operator(,) operator([)integer(4)operator(,) operator([)integer(5)operator(,)integer(6)operator(,)integer(7)(])operator(,) integer(8)operator(,)integer(9)operator(,) operator([)integer(0)operator(,)integer(3)operator(,)integer(5)(])(])operator(,) integer(7)operator(,) integer(8)(])
ident(println) ident(mylist)
comment(// => [[1, 2, 3], [4, [5, 6, 7], 8, 9, [0, 3, 5]], 7, 8])
-ident(mydict) operator(=) operator([)string<delimiter(")content(abc)delimiter(")>operator(:) string<delimiter(")content(def)delimiter(")>operator(,) string<delimiter(")content(ghi)delimiter(")>operator(:)operator([)integer(1)operator(,)integer(2)operator(,)integer(3)(]])
+ident(mydict) operator(=) operator([)string<delimiter(")content(abc)delimiter(")>operator(:) string<delimiter(")content(def)delimiter(")>operator(,) string<delimiter(")content(ghi)delimiter(")>operator(:)operator([)integer(1)operator(,)integer(2)operator(,)integer(3)(])(])
ident(println) ident(mydict)
comment(// => ["abc":"def", "ghi":[1, 2, 3]])
@@ -6156,7 +6156,7 @@ type(class) class(PetLover) operator({)
keyword(def) ident(age)
keyword(def) ident(pets)
(})
-ident(p) operator(=) keyword(new) ident(PetLover)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)string<delimiter(')content(Rover)delimiter(')>operator(,)key(cat)operator(:)string<delimiter(')content(Garfield)delimiter(')>(]\))
+ident(p) operator(=) keyword(new) ident(PetLover)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)string<delimiter(')content(Rover)delimiter(')>operator(,)key(cat)operator(:)string<delimiter(')content(Garfield)delimiter(')>(])(\))
ident(println) ident(p)
comment(// => PetLover@b957ea)
ident(println) ident(p)operator(.)ident(dump)operator(()(\))
@@ -6167,7 +6167,7 @@ comment(// or Jakarta Commons Lang *ToStringBuilders (jakarta.apache.org/commons
comment(// Here's an example of Boost, just extend the supplied Primordial class)
keyword(import) include(au.net.netstorm.boost.primordial.Primordial)
type(class) class(PetLover2) directive(extends) ident(Primordial) operator({) keyword(def) ident(name)operator(,) ident(age)operator(,) ident(pets) (})
-ident(println) keyword(new) ident(PetLover2)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)string<delimiter(')content(Rover)delimiter(')>operator(,)key(cat)operator(:)string<delimiter(')content(Garfield)delimiter(')>(]\))
+ident(println) keyword(new) ident(PetLover2)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)string<delimiter(')content(Rover)delimiter(')>operator(,)key(cat)operator(:)string<delimiter(')content(Garfield)delimiter(')>(])(\))
comment(// =>)
comment(// PetLover2[)
comment(// name=Jason)
@@ -6184,14 +6184,14 @@ type(class) class(PetLover3) operator({)
ident(ReflectionToStringBuilder)operator(.)ident(toString)operator(()local_variable(this)(\))
(})
(})
-ident(println) keyword(new) ident(PetLover3)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)string<delimiter(')content(Rover)delimiter(')>operator(,)key(cat)operator(:)string<delimiter(')content(Garfield)delimiter(')>(]\))
+ident(println) keyword(new) ident(PetLover3)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(23)operator(,) key(pets)operator(:)operator([)key(dog)operator(:)string<delimiter(')content(Rover)delimiter(')>operator(,)key(cat)operator(:)string<delimiter(')content(Garfield)delimiter(')>(])(\))
comment(// => PetLover3@196e136[name=Jason,age=23,pets={cat=Garfield, dog=Rover}])
comment(// using Commons Lang ToStringBuilder if you want a custom format)
type(class) class(PetLover4) operator({)
keyword(def) ident(name)operator(,) ident(dob)operator(,) ident(pets)
pre_type(String) ident(toString)operator(()(\)) operator({)
- keyword(def) ident(d1) operator(=) ident(dob)operator(.)ident(time)operator(;) keyword(def) ident(d2) operator(=) operator(()keyword(new) pre_type(Date)operator(()(\)\))operator(.)ident(time)
+ keyword(def) ident(d1) operator(=) ident(dob)operator(.)ident(time)operator(;) keyword(def) ident(d2) operator(=) operator(()keyword(new) pre_type(Date)operator(()(\))(\))operator(.)ident(time)
type(int) ident(age) operator(=) operator(()ident(d2) operator(-) ident(d1)(\))operator(/)integer(1000)operator(/)integer(60)operator(/)integer(60)operator(/)integer(24)operator(/)integer(365) comment(// close approx good enough here)
keyword(return) keyword(new) ident(ToStringBuilder)operator(()local_variable(this)(\))operator(.)
ident(append)operator(()string<delimiter(")content(Pet Lover's name)delimiter(")>operator(,) ident(name)(\))operator(.)
@@ -6199,7 +6199,7 @@ type(class) class(PetLover4) operator({)
ident(append)operator(()string<delimiter(')content(Age)delimiter(')>operator(,) ident(age)(\))
(})
(})
-ident(println) keyword(new) ident(PetLover4)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(dob)operator(:)keyword(new) pre_type(Date)operator(()integer(83)operator(,)oct(03)operator(,)oct(04)(\))operator(,) key(pets)operator(:)operator([)key(dog)operator(:)string<delimiter(')content(Rover)delimiter(')>operator(,)key(cat)operator(:)string<delimiter(')content(Garfield)delimiter(')>(]\))
+ident(println) keyword(new) ident(PetLover4)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(dob)operator(:)keyword(new) pre_type(Date)operator(()integer(83)operator(,)oct(03)operator(,)oct(04)(\))operator(,) key(pets)operator(:)operator([)key(dog)operator(:)string<delimiter(')content(Rover)delimiter(')>operator(,)key(cat)operator(:)string<delimiter(')content(Garfield)delimiter(')>(])(\))
comment(// => PetLover4@fdfc58[Pet Lover's name=Jason,Pets={cat=Garfield, dog=Rover},Age=23])
comment(//----------------------------------------------------------------------------------)
@@ -6237,7 +6237,7 @@ keyword(def) method(deepcopy)operator(()ident(orig)(\)) operator({)
ident(bos) operator(=) keyword(new) pre_type(ByteArrayOutputStream)operator(()(\))
ident(oos) operator(=) keyword(new) pre_type(ObjectOutputStream)operator(()ident(bos)(\))
ident(oos)operator(.)ident(writeObject)operator(()ident(orig)(\))operator(;) ident(oos)operator(.)ident(flush)operator(()(\))
- ident(bin) operator(=) keyword(new) pre_type(ByteArrayInputStream)operator(()ident(bos)operator(.)ident(toByteArray)operator(()(\)\))
+ ident(bin) operator(=) keyword(new) pre_type(ByteArrayInputStream)operator(()ident(bos)operator(.)ident(toByteArray)operator(()(\))(\))
ident(ois) operator(=) keyword(new) pre_type(ObjectInputStream)operator(()ident(bin)(\))
keyword(return) ident(ois)operator(.)ident(readObject)operator(()(\))
(})
@@ -6293,7 +6293,7 @@ type(class) class(StoreTransaction) directive(implements) ident(Transaction) ope
ident(StoreTransaction)operator(()ident(val)(\)) operator({) local_variable(this)operator(.)ident(val) operator(=) ident(val) (})
type(void) ident(executeOn)operator(()ident(prevayler)operator(,) pre_type(Date) ident(ignored)(\)) operator({) ident(prevayler)operator(.)ident(putAt)operator(()ident(val)operator(,)ident(val)operator(*)integer(2)(\)) (})
(})
-keyword(def) method(save)operator(()ident(n)(\))operator({) ident(store)operator(.)ident(execute)operator(()keyword(new) ident(StoreTransaction)operator(()ident(n)(\)\)) (})
+keyword(def) method(save)operator(()ident(n)(\))operator({) ident(store)operator(.)ident(execute)operator(()keyword(new) ident(StoreTransaction)operator(()ident(n)(\))(\)) (})
ident(store) operator(=) ident(PrevaylerFactory)operator(.)ident(createPrevayler)operator(()keyword(new) ident(ImportantHash)operator(()(\))operator(,) string<delimiter(")content(pleac11)delimiter(")>(\))
ident(hash) operator(=) ident(store)operator(.)ident(prevalentSystem)operator(()(\))
keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..)integer(1000)(\)) operator({)
@@ -6389,7 +6389,7 @@ comment(// first generate 20 random inserts)
ident(test) operator(=) keyword(new) ident(BinaryTree)operator(()integer(500)(\))
ident(rand) operator(=) keyword(new) pre_type(Random)operator(()(\))
integer(20)operator(.)ident(times)operator({)
- ident(test)operator(.)ident(insert)operator(()ident(rand)operator(.)ident(nextInt)operator(()integer(1000)(\)\))
+ ident(test)operator(.)ident(insert)operator(()ident(rand)operator(.)ident(nextInt)operator(()integer(1000)(\))(\))
(})
comment(// now dump out the tree all three ways)
@@ -6398,8 +6398,8 @@ ident(print) string<delimiter(")content(In order: )delimiter(")>operator(;) id
ident(print) string<delimiter(")content(Post order: )delimiter(")>operator(;) ident(test)operator(.)ident(postOrder)operator(()(\))operator(;) ident(println) string<delimiter(")delimiter(")>
ident(println) string<delimiter(")char(\\n)content(Search?)delimiter(")>
-keyword(while) operator(()operator(()ident(item) operator(=) pre_type(System)operator(.)ident(in)operator(.)ident(readLine)operator(()(\))operator(?)operator(.)ident(trim)operator(()(\)\)) operator(!=) keyword(null)(\)) operator({)
- ident(println) ident(test)operator(.)ident(search)operator(()ident(item)operator(.)ident(toInteger)operator(()(\)\))
+keyword(while) operator(()operator(()ident(item) operator(=) pre_type(System)operator(.)ident(in)operator(.)ident(readLine)operator(()(\))operator(?)operator(.)ident(trim)operator(()(\))(\)) operator(!=) keyword(null)(\)) operator({)
+ ident(println) ident(test)operator(.)ident(search)operator(()ident(item)operator(.)ident(toInteger)operator(()(\))(\))
ident(println) string<delimiter(")char(\\n)content(Search?)delimiter(")>
(})
comment(// Randomly produces a tree such as:)
@@ -6488,7 +6488,7 @@ comment(// using the normal exception handling mechanisms.)
comment(// attempt to load an unknown resource or script:)
keyword(try) operator({)
- ident(evaluate)operator(()keyword(new) pre_type(File)operator(()string<delimiter(')content(doesnotexist.groovy)delimiter(')>(\)\))
+ ident(evaluate)operator(()keyword(new) pre_type(File)operator(()string<delimiter(')content(doesnotexist.groovy)delimiter(')>(\))(\))
(}) keyword(catch) operator(()pre_type(Exception) pre_type(FileNotFoundException)(\)) operator({)
ident(println) string<delimiter(')content(File not found, skipping ...)delimiter(')>
(})
@@ -6927,9 +6927,9 @@ ident(pazzi) operator(=) keyword(new) ident(Person)operator(()integer(40)operato
comment(// Calling a class method)
ident(println) string<delimiter(")content(There are )inline<inline_delimiter($)ident(Person)>content(.numberOfPeople Person objects.)delimiter(")>
-ident(println) string<delimiter(")inline<inline_delimiter($)ident(pazzi)>content(.name is )inline<inline_delimiter(${)ident(pazzi.alive ? 'alive' : 'dead')inline_delimiter(})>content(.)delimiter(")>
+ident(println) string<delimiter(")inline<inline_delimiter($)ident(pazzi)>content(.name is )inline<inline_delimiter(${)ident(pazzi)operator(.)ident(alive) operator(?) string<delimiter(')content(alive)delimiter(')> operator(:) string<delimiter(')content(dead)delimiter(')>inline_delimiter(})>content(.)delimiter(")>
ident(lecter)operator(.)ident(kill)operator(()ident(pazzi)(\))
-ident(println) string<delimiter(")inline<inline_delimiter($)ident(pazzi)>content(.name is )inline<inline_delimiter(${)ident(pazzi.isStillAlive(\) ? 'alive' : 'dead')inline_delimiter(})>content(.)delimiter(")>
+ident(println) string<delimiter(")inline<inline_delimiter($)ident(pazzi)>content(.name is )inline<inline_delimiter(${)ident(pazzi)operator(.)ident(isStillAlive)operator(()(\)) operator(?) string<delimiter(')content(alive)delimiter(')> operator(:) string<delimiter(')content(dead)delimiter(')>inline_delimiter(})>content(.)delimiter(")>
ident(println) string<delimiter(")inline<inline_delimiter($)ident(starling)>content(.name was born in )inline<inline_delimiter($)ident(starling)>content(.yearOfBirth.)delimiter(")>
comment(//----------------------------------------------------------------------------------)
@@ -6976,7 +6976,7 @@ comment(// on your class, e.g. close(\).)
type(class) class(MyClass4)operator({)
type(void) ident(finalize)operator(()(\)) operator({)
- ident(println) string<delimiter(")content(Object [internal id=)inline<inline_delimiter(${)ident(hashCode(\))inline_delimiter(})>content(] is dying at )inline<inline_delimiter(${)ident(new Date(\))inline_delimiter(})>delimiter(")>
+ ident(println) string<delimiter(")content(Object [internal id=)inline<inline_delimiter(${)ident(hashCode)operator(()(\))inline_delimiter(})>content(] is dying at )inline<inline_delimiter(${)keyword(new) pre_type(Date)operator(()(\))inline_delimiter(})>delimiter(")>
(})
(})
@@ -7042,7 +7042,7 @@ ident(people) operator(=) type([])
integer(10)operator(.)ident(times) operator({)
ident(people) operator(+=) keyword(new) ident(Person5)operator(()(\))
(})
-ident(println) string<delimiter(")content(There are )inline<inline_delimiter(${)ident(Person5.population)inline_delimiter(})>content( people alive)delimiter(")>
+ident(println) string<delimiter(")content(There are )inline<inline_delimiter(${)ident(Person5)operator(.)ident(population)inline_delimiter(})>content( people alive)delimiter(")>
comment(// => There are 10 people alive)
ident(alpha) operator(=) keyword(new) ident(FixedArray)operator(()(\))
@@ -7076,27 +7076,27 @@ ident(p) operator(=) keyword(new) ident(DynamicPerson)operator(()(\))
ident(p)operator(.)ident(name) operator(=) string<delimiter(")content(Jason Smythe)delimiter(")>
ident(p)operator(.)ident(age) operator(=) integer(13)
ident(p)operator(.)ident(peers) operator(=) operator([)string<delimiter(")content(Wilbur)delimiter(")>operator(,) string<delimiter(")content(Ralph)delimiter(")>operator(,) string<delimiter(")content(Fred)delimiter(")>(])
-ident(p)operator(.)ident(setPeers)operator(()operator([)string<delimiter(")content(Wilbur)delimiter(")>operator(,) string<delimiter(")content(Ralph)delimiter(")>operator(,) string<delimiter(")content(Fred)delimiter(")>(]\)) comment(// alternative using implicit setter)
+ident(p)operator(.)ident(setPeers)operator(()operator([)string<delimiter(")content(Wilbur)delimiter(")>operator(,) string<delimiter(")content(Ralph)delimiter(")>operator(,) string<delimiter(")content(Fred)delimiter(")>(])(\)) comment(// alternative using implicit setter)
ident(p)operator([)string<delimiter(")content(peers)delimiter(")>(]) operator(=) operator([)string<delimiter(")content(Wilbur)delimiter(")>operator(,) string<delimiter(")content(Ralph)delimiter(")>operator(,) string<delimiter(")content(Fred)delimiter(")>(]) comment(// alternative access using name of field)
-ident(println) string<delimiter(")content(At age )inline<inline_delimiter($)ident(p)>content(.age, )inline<inline_delimiter($)ident(p)>content(.name's first friend is )inline<inline_delimiter(${)ident(p.peers[0])inline_delimiter(})>delimiter(")>
+ident(println) string<delimiter(")content(At age )inline<inline_delimiter($)ident(p)>content(.age, )inline<inline_delimiter($)ident(p)>content(.name's first friend is )inline<inline_delimiter(${)ident(p)operator(.)ident(peers)operator([)integer(0)(])inline_delimiter(})>delimiter(")>
comment(// => At age 13, Jason Smythe's first friend is Wilbur)
comment(// The fields of this struct-like class are statically typed)
type(class) class(StaticPerson) operator({) pre_type(String) ident(name)operator(;) type(int) ident(age)operator(;) pre_type(List) ident(peers) (})
-ident(p) operator(=) keyword(new) ident(StaticPerson)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(14)operator(,) key(peers)operator(:)operator([)string<delimiter(')content(Fred)delimiter(')>operator(,)string<delimiter(')content(Wilbur)delimiter(')>operator(,)string<delimiter(')content(Ralph)delimiter(')>(]\))
-ident(println) string<delimiter(")content(At age )inline<inline_delimiter($)ident(p)>content(.age, )inline<inline_delimiter($)ident(p)>content(.name's first friend is )inline<inline_delimiter(${)ident(p.peers[0])inline_delimiter(})>delimiter(")>
+ident(p) operator(=) keyword(new) ident(StaticPerson)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(14)operator(,) key(peers)operator(:)operator([)string<delimiter(')content(Fred)delimiter(')>operator(,)string<delimiter(')content(Wilbur)delimiter(')>operator(,)string<delimiter(')content(Ralph)delimiter(')>(])(\))
+ident(println) string<delimiter(")content(At age )inline<inline_delimiter($)ident(p)>content(.age, )inline<inline_delimiter($)ident(p)>content(.name's first friend is )inline<inline_delimiter(${)ident(p)operator(.)ident(peers)operator([)integer(0)(])inline_delimiter(})>delimiter(")>
comment(// => At age 14, Jason's first friend is Fred)
type(class) class(Family) operator({) keyword(def) ident(head)operator(,) ident(address)operator(,) ident(members) (})
-ident(folks) operator(=) keyword(new) ident(Family)operator(()key(head)operator(:)keyword(new) ident(DynamicPerson)operator(()key(name)operator(:)string<delimiter(')content(John)delimiter(')>operator(,)key(age)operator(:)integer(34)(\)\))
+ident(folks) operator(=) keyword(new) ident(Family)operator(()key(head)operator(:)keyword(new) ident(DynamicPerson)operator(()key(name)operator(:)string<delimiter(')content(John)delimiter(')>operator(,)key(age)operator(:)integer(34)(\))(\))
comment(// supply of own accessor method for the struct for error checking)
type(class) class(ValidatingPerson) operator({)
directive(private) ident(age)
keyword(def) method(printAge)operator(()(\)) operator({) ident(println) string<delimiter(')content(Age=)delimiter(')> operator(+) ident(age) (})
keyword(def) method(setAge)operator(()ident(value)(\)) operator({)
- keyword(if) operator(()operator(!)operator(()ident(value) keyword(instanceof) pre_type(Integer)(\)\))
+ keyword(if) operator(()operator(!)operator(()ident(value) keyword(instanceof) pre_type(Integer)(\))(\))
keyword(throw) keyword(new) pre_type(IllegalArgumentException)operator(()string<delimiter(")content(Argument ')inline<inline_delimiter(${)ident(value)inline_delimiter(})>content(' isn't an Integer)delimiter(")>(\))
keyword(if) operator(()ident(value) operator(>) integer(150)(\))
keyword(throw) keyword(new) pre_type(IllegalArgumentException)operator(()string<delimiter(")content(Age )inline<inline_delimiter(${)ident(value)inline_delimiter(})>content( is unreasonable)delimiter(")>(\))
@@ -7266,7 +7266,7 @@ type(class) class(Person8) operator({)
ident(dad) operator(=) keyword(new) ident(Person8)operator(()key(name)operator(:)string<delimiter(')content(Jason)delimiter(')>operator(,) key(age)operator(:)integer(23)(\))
ident(kid) operator(=) ident(dad)operator(.)ident(newChild)operator(()key(name)operator(:)string<delimiter(')content(Rachel)delimiter(')>operator(,) key(age)operator(:)integer(2)(\))
-ident(println) string<delimiter(")content(Kid's parent is )inline<inline_delimiter(${)ident(kid.parent.name)inline_delimiter(})>delimiter(")>
+ident(println) string<delimiter(")content(Kid's parent is )inline<inline_delimiter(${)ident(kid)operator(.)ident(parent)operator(.)ident(name)inline_delimiter(})>delimiter(")>
comment(// => Kid's parent is Jason)
comment(// additional fields ...)
@@ -7303,7 +7303,7 @@ comment(// You can test it with this code:)
type(class) class(Person9) operator({)
keyword(def) ident(friend)
type(void) ident(finalize)operator(()(\)) operator({)
- ident(println) string<delimiter(")content(Object [internal id=)inline<inline_delimiter(${)ident(hashCode(\))inline_delimiter(})>content(] is dying at )inline<inline_delimiter(${)ident(new Date(\))inline_delimiter(})>delimiter(")>
+ ident(println) string<delimiter(")content(Object [internal id=)inline<inline_delimiter(${)ident(hashCode)operator(()(\))inline_delimiter(})>content(] is dying at )inline<inline_delimiter(${)keyword(new) pre_type(Date)operator(()(\))inline_delimiter(})>delimiter(")>
(})
(})
@@ -7337,11 +7337,11 @@ comment(// Suppose we have a class with a compareTo operator, such as:)
type(class) class(Person10) directive(implements) pre_type(Comparable) operator({)
keyword(def) ident(firstname)operator(,) ident(initial)operator(,) ident(surname)
ident(Person10)operator(()ident(f)operator(,)ident(i)operator(,)ident(s)(\)) operator({) ident(firstname) operator(=) ident(f)operator(;) ident(initial) operator(=) ident(i)operator(;) ident(surname) operator(=) ident(s) (})
- type(int) ident(compareTo)operator(()ident(other)(\)) operator({) ident(firstname) operator(<=)operator(>) ident(other)operator(.)ident(firstname) (})
+ type(int) ident(compareTo)operator(()ident(other)(\)) operator({) ident(firstname) operator(<=>) ident(other)operator(.)ident(firstname) (})
(})
ident(a) operator(=) keyword(new) ident(Person10)operator(()string<delimiter(')content(James)delimiter(')>operator(,) string<delimiter(')content(T)delimiter(')>operator(,) string<delimiter(')content(Kirk)delimiter(')>(\))
ident(b) operator(=) keyword(new) ident(Person10)operator(()string<delimiter(')content(Samuel)delimiter(')>operator(,) string<delimiter(')content(L)delimiter(')>operator(,) string<delimiter(')content(Jackson)delimiter(')>(\))
-ident(println) ident(a) operator(<=)operator(>) ident(b)
+ident(println) ident(a) operator(<=>) ident(b)
comment(// => -1)
comment(// we can override the existing Person10's <=> operator as below)
@@ -7349,12 +7349,12 @@ comment(// so that now comparisons are made using the middle initial)
comment(// instead of the fisrtname:)
type(class) class(Person11) directive(extends) ident(Person10) operator({)
ident(Person11)operator(()ident(f)operator(,)ident(i)operator(,)ident(s)(\)) operator({) local_variable(super)operator(()ident(f)operator(,)ident(i)operator(,)ident(s)(\)) (})
- type(int) ident(compareTo)operator(()ident(other)(\)) operator({) ident(initial) operator(<=)operator(>) ident(other)operator(.)ident(initial) (})
+ type(int) ident(compareTo)operator(()ident(other)(\)) operator({) ident(initial) operator(<=>) ident(other)operator(.)ident(initial) (})
(})
ident(a) operator(=) keyword(new) ident(Person11)operator(()string<delimiter(')content(James)delimiter(')>operator(,) string<delimiter(')content(T)delimiter(')>operator(,) string<delimiter(')content(Kirk)delimiter(')>(\))
ident(b) operator(=) keyword(new) ident(Person11)operator(()string<delimiter(')content(Samuel)delimiter(')>operator(,) string<delimiter(')content(L)delimiter(')>operator(,) string<delimiter(')content(Jackson)delimiter(')>(\))
-ident(println) ident(a) operator(<=)operator(>) ident(b)
+ident(println) ident(a) operator(<=>) ident(b)
comment(// => 1)
comment(// we could also in general use Groovy's categories to extend class functionality.)
@@ -7415,7 +7415,7 @@ ident(x) operator(=) string<delimiter(")content(Red)delimiter(")>operator(;) ide
ident(z) operator(=) ident(x)operator(+)ident(y)
ident(r) operator(=) ident(z)operator(*)integer(3) comment(// r is "RedBlackRedBlackRedBlack")
ident(println) string<delimiter(")content(values are )inline<inline_delimiter($)ident(x)>content(, )inline<inline_delimiter($)ident(y)>content(, )inline<inline_delimiter($)ident(z)>content(, and )inline<inline_delimiter($)ident(r)>delimiter(")>
-ident(println) string<delimiter(")inline<inline_delimiter($)ident(x)>content( is )inline<inline_delimiter(${)ident(x < y ? 'LT' : 'GE')inline_delimiter(})>content( )inline<inline_delimiter($)ident(y)>delimiter(")>
+ident(println) string<delimiter(")inline<inline_delimiter($)ident(x)>content( is )inline<inline_delimiter(${)ident(x) operator(<) ident(y) operator(?) string<delimiter(')content(LT)delimiter(')> operator(:) string<delimiter(')content(GE)delimiter(')>inline_delimiter(})>content( )inline<inline_delimiter($)ident(y)>delimiter(")>
comment(// prints:)
comment(// values are Red, Black, RedBlack, and RedBlackRedBlackRedBlack)
comment(// Red is GE Black)
@@ -7441,15 +7441,15 @@ type(class) class(FixNum) operator({)
(})
keyword(def) method(plus)operator(()ident(other)(\)) operator({)
- keyword(new) ident(FixNum)operator(()ident(value) operator(+) ident(other)operator(.)ident(value)operator(,) operator([)ident(places)operator(,) ident(other)operator(.)ident(places)(])operator(.)ident(max)operator(()(\)\))
+ keyword(new) ident(FixNum)operator(()ident(value) operator(+) ident(other)operator(.)ident(value)operator(,) operator([)ident(places)operator(,) ident(other)operator(.)ident(places)(])operator(.)ident(max)operator(()(\))(\))
(})
keyword(def) method(multiply)operator(()ident(other)(\)) operator({)
- keyword(new) ident(FixNum)operator(()ident(value) operator(*) ident(other)operator(.)ident(value)operator(,) operator([)ident(places)operator(,) ident(other)operator(.)ident(places)(])operator(.)ident(max)operator(()(\)\))
+ keyword(new) ident(FixNum)operator(()ident(value) operator(*) ident(other)operator(.)ident(value)operator(,) operator([)ident(places)operator(,) ident(other)operator(.)ident(places)(])operator(.)ident(max)operator(()(\))(\))
(})
keyword(def) method(div)operator(()ident(other)(\)) operator({)
- ident(println) string<delimiter(")content(DEUG: Divide = )inline<inline_delimiter(${)ident(value/other.value)inline_delimiter(})>delimiter(")>
+ ident(println) string<delimiter(")content(DEUG: Divide = )inline<inline_delimiter(${)ident(value)operator(/)ident(other)operator(.)ident(value)inline_delimiter(})>delimiter(")>
keyword(def) ident(result) operator(=) keyword(new) ident(FixNum)operator(()ident(value)operator(/)ident(other)operator(.)ident(value)(\))
ident(result)operator(.)ident(places) operator(=) operator([)ident(places)operator(,)ident(other)operator(.)ident(places)(])operator(.)ident(max)operator(()(\))
ident(result)
@@ -7464,8 +7464,8 @@ type(class) class(FixNum) operator({)
ident(x) operator(=) keyword(new) ident(FixNum)operator(()integer(40)(\))
ident(y) operator(=) keyword(new) ident(FixNum)operator(()integer(12)operator(,) integer(0)(\))
-ident(println) string<delimiter(")content(sum of )inline<inline_delimiter($)ident(x)>content( and )inline<inline_delimiter($)ident(y)>content( is )inline<inline_delimiter(${)ident(x+y)inline_delimiter(})>delimiter(")>
-ident(println) string<delimiter(")content(product of )inline<inline_delimiter($)ident(x)>content( and )inline<inline_delimiter($)ident(y)>content( is )inline<inline_delimiter(${)ident(x*y)inline_delimiter(})>delimiter(")>
+ident(println) string<delimiter(")content(sum of )inline<inline_delimiter($)ident(x)>content( and )inline<inline_delimiter($)ident(y)>content( is )inline<inline_delimiter(${)ident(x)operator(+)ident(y)inline_delimiter(})>delimiter(")>
+ident(println) string<delimiter(")content(product of )inline<inline_delimiter($)ident(x)>content( and )inline<inline_delimiter($)ident(y)>content( is )inline<inline_delimiter(${)ident(x)operator(*)ident(y)inline_delimiter(})>delimiter(")>
ident(z) operator(=) ident(x)operator(/)ident(y)
ident(println) string<delimiter(")inline<inline_delimiter($)ident(z)>content( has )inline<inline_delimiter($)ident(z)>content(.places places)delimiter(")>
@@ -7473,7 +7473,7 @@ ident(z)operator(.)ident(places) operator(=) integer(2)
ident(println) string<delimiter(")inline<inline_delimiter($)ident(z)>content( now has )inline<inline_delimiter($)ident(z)>content(.places places)delimiter(")>
ident(println) string<delimiter(")content(div of )inline<inline_delimiter($)ident(x)>content( by )inline<inline_delimiter($)ident(y)>content( is )inline<inline_delimiter($)ident(z)>delimiter(")>
-ident(println) string<delimiter(")content(square of that is )inline<inline_delimiter(${)ident(z*z)inline_delimiter(})>delimiter(")>
+ident(println) string<delimiter(")content(square of that is )inline<inline_delimiter(${)ident(z)operator(*)ident(z)inline_delimiter(})>delimiter(")>
comment(// =>)
comment(// sum of STRFixNum: 40 and STRFixNum: 12 is STRFixNum: 52)
comment(// product of STRFixNum: 40 and STRFixNum: 12 is STRFixNum: 480)
@@ -7498,7 +7498,7 @@ type(class) class(ValueRing) operator({)
keyword(return) ident(head)
(})
(})
-ident(ring) operator(=) keyword(new) ident(ValueRing)operator(()key(values)operator(:)operator([)string<delimiter(')content(red)delimiter(')>operator(,) string<delimiter(')content(blue)delimiter(')>(]\))
+ident(ring) operator(=) keyword(new) ident(ValueRing)operator(()key(values)operator(:)operator([)string<delimiter(')content(red)delimiter(')>operator(,) string<delimiter(')content(blue)delimiter(')>(])(\))
keyword(def) method(getColor)operator(()(\)) operator({) ident(ring)operator(.)ident(next)operator(()(\)) (})
type(void) ident(setProperty)operator(()pre_type(String) ident(n)operator(,) ident(v)(\)) operator({)
keyword(if) operator(()ident(n) operator(==) string<delimiter(')content(color)delimiter(')>(\)) operator({) ident(ring)operator(.)ident(add)operator(()ident(v)(\))operator(;) keyword(return) (})
@@ -7575,10 +7575,10 @@ comment(// 26)
comment(// Autoappending hash:)
type(class) class(AutoMap) directive(extends) pre_type(HashMap) operator({)
type(void) ident(setProperty)operator(()pre_type(String) ident(name)operator(,) ident(v)(\)) operator({)
- keyword(if) operator(()ident(containsKey)operator(()ident(name)(\)\)) operator({)
+ keyword(if) operator(()ident(containsKey)operator(()ident(name)(\))(\)) operator({)
ident(put)operator(()ident(name)operator(,) ident(get)operator(()ident(name)(\)) operator(+) ident(v)(\))
(}) keyword(else) operator({)
- ident(put)operator(()ident(name)operator(,) operator([)ident(v)(]\))
+ ident(put)operator(()ident(name)operator(,) operator([)ident(v)(])(\))
(})
(})
(})
@@ -7595,7 +7595,7 @@ type(class) class(FoldedMap) directive(extends) pre_type(HashMap) operator({)
ident(put)operator(()ident(name)operator(.)ident(toLowerCase)operator(()(\))operator(,) ident(v)(\))
(})
keyword(def) method(getProperty)operator(()pre_type(String) ident(name)(\)) operator({)
- ident(get)operator(()ident(name)operator(.)ident(toLowerCase)operator(()(\)\))
+ ident(get)operator(()ident(name)operator(.)ident(toLowerCase)operator(()(\))(\))
(})
(})
ident(tab) operator(=) keyword(new) ident(FoldedMap)operator(()(\))
@@ -7608,7 +7608,7 @@ comment(// => ["heroine":"red riding hood", "villain":"big bad wolf"])
comment(// Hash That "Allows Look-Ups by Key or Value":)
type(class) class(RevMap) directive(extends) pre_type(HashMap) operator({)
type(void) ident(setProperty)operator(()pre_type(String) ident(n)operator(,) ident(v)(\)) operator({) ident(put)operator(()ident(n)operator(,)ident(v)(\))operator(;) ident(put)operator(()ident(v)operator(,)ident(n)(\)) (})
- type(void) ident(remove)operator(()ident(n)(\)) operator({) local_variable(super)operator(.)ident(remove)operator(()ident(get)operator(()ident(n)(\)\))operator(;) local_variable(super)operator(.)ident(remove)operator(()ident(n)(\)) (})
+ type(void) ident(remove)operator(()ident(n)(\)) operator({) local_variable(super)operator(.)ident(remove)operator(()ident(get)operator(()ident(n)(\))(\))operator(;) local_variable(super)operator(.)ident(remove)operator(()ident(n)(\)) (})
(})
ident(rev) operator(=) keyword(new) ident(RevMap)operator(()(\))
ident(rev)operator(.)ident(Rojo) operator(=) string<delimiter(')content(Red)delimiter(')>
@@ -7629,14 +7629,14 @@ comment(// Multiple Strrams scenario:)
type(class) class(MultiStream) directive(extends) pre_type(PrintStream) operator({)
keyword(def) ident(streams)
ident(MultiStream)operator(()pre_type(List) ident(streams)(\)) operator({)
- local_variable(super)operator(()ident(streams)operator([)integer(0)(]\))
+ local_variable(super)operator(()ident(streams)operator([)integer(0)(])(\))
local_variable(this)operator(.)ident(streams) operator(=) ident(streams)
(})
keyword(def) method(println)operator(()pre_type(String) ident(x)(\)) operator({)
ident(streams)operator(.)ident(each)operator({) local_variable(it)operator(.)ident(println)operator(()ident(x)(\)) (})
(})
(})
-ident(tee) operator(=) keyword(new) ident(MultiStream)operator(()operator([)pre_type(System)operator(.)ident(out)operator(,) pre_type(System)operator(.)ident(err)(]\))
+ident(tee) operator(=) keyword(new) ident(MultiStream)operator(()operator([)pre_type(System)operator(.)ident(out)operator(,) pre_type(System)operator(.)ident(err)(])(\))
ident(tee)operator(.)ident(println) operator(()string<delimiter(')content(This goes two places)delimiter(')>(\))
comment(// =>)
comment(// This goes two places)
@@ -7686,8 +7686,8 @@ ident(myDbConfig) operator(=) keyword(new) ident(DatabaseConfig)operator(()(\))
ident(myDbConfig)operator(.)ident(setAllowCreate)operator(()keyword(true)(\))
ident(myDb) operator(=) ident(myEnv)operator(.)ident(openDatabase)operator(()ident(tx)operator(,) string<delimiter(")content(vendorDB)delimiter(")>operator(,) ident(myDbConfig)(\))
-ident(theKey) operator(=) keyword(new) ident(DatabaseEntry)operator(()string<delimiter(")content(key)delimiter(")>operator(.)ident(getBytes)operator(()string<delimiter(")content(UTF-8)delimiter(")>(\)\))
-ident(theData) operator(=) keyword(new) ident(DatabaseEntry)operator(()string<delimiter(")content(data)delimiter(")>operator(.)ident(getBytes)operator(()string<delimiter(")content(UTF-8)delimiter(")>(\)\))
+ident(theKey) operator(=) keyword(new) ident(DatabaseEntry)operator(()string<delimiter(")content(key)delimiter(")>operator(.)ident(getBytes)operator(()string<delimiter(")content(UTF-8)delimiter(")>(\))(\))
+ident(theData) operator(=) keyword(new) ident(DatabaseEntry)operator(()string<delimiter(")content(data)delimiter(")>operator(.)ident(getBytes)operator(()string<delimiter(")content(UTF-8)delimiter(")>(\))(\))
ident(myDb)operator(.)ident(put)operator(()ident(tx)operator(,) ident(theKey)operator(,) ident(theData)(\))
keyword(if) operator(()ident(myDb)operator(.)ident(get)operator(()ident(tx)operator(,) ident(theKey)operator(,) ident(theData)operator(,) ident(LockMode)operator(.)ident(DEFAULT)(\)) operator(==) ident(OperationStatus)operator(.)ident(SUCCESS)(\)) operator({)
ident(key) operator(=) keyword(new) pre_type(String)operator(()ident(theKey)operator(.)ident(data)operator(,) string<delimiter(")content(UTF-8)delimiter(")>(\))
@@ -7716,12 +7716,12 @@ type(class) class(LoginInfo) directive(implements) ident(Persistent) operator({)
(})
keyword(def) method(printAllUsers)operator(()ident(store)(\)) operator({)
- ident(printUsers)operator(()ident(store)operator(,) ident(store)operator(.)ident(select)operator(()ident(LoginInfo)operator(.)ident(class)(\))operator(.)ident(collect)operator({)local_variable(it)operator(.)ident(name)(})operator(.)ident(sort)operator(()(\)\))
+ ident(printUsers)operator(()ident(store)operator(,) ident(store)operator(.)ident(select)operator(()ident(LoginInfo)operator(.)ident(class)(\))operator(.)ident(collect)operator({)local_variable(it)operator(.)ident(name)(})operator(.)ident(sort)operator(()(\))(\))
(})
keyword(def) method(printUsers)operator(()ident(store)operator(,) ident(list)(\)) operator({)
ident(list)operator(.)ident(each)operator({)
- ident(println) string<delimiter(")inline<inline_delimiter($)local_variable(it)>content( )inline<inline_delimiter(${)ident(store.selectSingle(LoginInfo.class, 'name', it\).loginCount)inline_delimiter(})>delimiter(")>
+ ident(println) string<delimiter(")inline<inline_delimiter($)local_variable(it)>content( )inline<inline_delimiter(${)ident(store)operator(.)ident(selectSingle)operator(()ident(LoginInfo)operator(.)ident(class)operator(,) string<delimiter(')content(name)delimiter(')>operator(,) local_variable(it)(\))operator(.)ident(loginCount)inline_delimiter(})>delimiter(")>
(})
(})
@@ -7734,7 +7734,7 @@ keyword(def) method(addUsers)operator(()ident(store)(\)) operator({)
ident(item)operator(.)ident(loginCount)operator(++)
ident(store)operator(.)ident(save)operator(()ident(item)(\))
(}) keyword(else) operator({)
- ident(store)operator(.)ident(insert)operator(()keyword(new) ident(LoginInfo)operator(()ident(name)(\)\))
+ ident(store)operator(.)ident(insert)operator(()keyword(new) ident(LoginInfo)operator(()ident(name)(\))(\))
(})
(})
(})
@@ -7746,7 +7746,7 @@ ident(ds)operator(.)ident(password) operator(=) string<delimiter(')delimiter(')>
ident(store) operator(=) keyword(new) ident(Store)operator(()ident(ds)(\))
keyword(if) operator(()ident(args)operator(.)ident(size)operator(()(\)) operator(==) integer(0)(\)) operator({)
ident(addUsers)operator(()ident(store)(\))
-(}) keyword(else) keyword(if) operator(()ident(args) operator(==) operator([)string<delimiter(')content(ALL)delimiter(')>(]\)) operator({)
+(}) keyword(else) keyword(if) operator(()ident(args) operator(==) operator([)string<delimiter(')content(ALL)delimiter(')>(])(\)) operator({)
ident(printAllUsers)operator(()ident(store)(\))
(}) keyword(else) operator({)
ident(printUsers)operator(()ident(store)operator(,) ident(args)(\))
@@ -7769,8 +7769,8 @@ ident(myDbConfig) operator(=) keyword(new) ident(DatabaseConfig)operator(()(\))
ident(myDbConfig)operator(.)ident(setAllowCreate)operator(()keyword(true)(\))
ident(myDb) operator(=) ident(myEnv)operator(.)ident(openDatabase)operator(()ident(tx)operator(,) string<delimiter(")content(vendorDB)delimiter(")>operator(,) ident(myDbConfig)(\))
-ident(theKey) operator(=) keyword(new) ident(DatabaseEntry)operator(()string<delimiter(")content(key)delimiter(")>operator(.)ident(getBytes)operator(()string<delimiter(")content(UTF-8)delimiter(")>(\)\))
-ident(theData) operator(=) keyword(new) ident(DatabaseEntry)operator(()string<delimiter(")content(data)delimiter(")>operator(.)ident(getBytes)operator(()string<delimiter(")content(UTF-8)delimiter(")>(\)\))
+ident(theKey) operator(=) keyword(new) ident(DatabaseEntry)operator(()string<delimiter(")content(key)delimiter(")>operator(.)ident(getBytes)operator(()string<delimiter(")content(UTF-8)delimiter(")>(\))(\))
+ident(theData) operator(=) keyword(new) ident(DatabaseEntry)operator(()string<delimiter(")content(data)delimiter(")>operator(.)ident(getBytes)operator(()string<delimiter(")content(UTF-8)delimiter(")>(\))(\))
ident(myDb)operator(.)ident(put)operator(()ident(tx)operator(,) ident(theKey)operator(,) ident(theData)(\))
ident(myDb)operator(.)ident(close)operator(()(\))
comment(// clear out database)
@@ -7804,8 +7804,8 @@ type(class) class(Person) directive(implements) ident(Persistent) operator({)
(})
comment(// populate with test data)
-ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)string<delimiter(')content(Tom Christiansen)delimiter(')>operator(,) key(does)operator(:)string<delimiter(')content(book author)delimiter(')>operator(,) key(email)operator(:)string<delimiter(')content(tchrist@perl.com)delimiter(')>(\)\))
-ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)string<delimiter(')content(Tom Boutell)delimiter(')>operator(,) key(does)operator(:)string<delimiter(')content(Poet Programmer)delimiter(')>operator(,) key(email)operator(:)string<delimiter(')content(boutell@boutell.com)delimiter(')>(\)\))
+ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)string<delimiter(')content(Tom Christiansen)delimiter(')>operator(,) key(does)operator(:)string<delimiter(')content(book author)delimiter(')>operator(,) key(email)operator(:)string<delimiter(')content(tchrist@perl.com)delimiter(')>(\))(\))
+ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)string<delimiter(')content(Tom Boutell)delimiter(')>operator(,) key(does)operator(:)string<delimiter(')content(Poet Programmer)delimiter(')>operator(,) key(email)operator(:)string<delimiter(')content(boutell@boutell.com)delimiter(')>(\))(\))
ident(people) operator(=) ident(store)operator(.)ident(select)operator(()ident(Person)operator(.)ident(class)(\))
@@ -7901,8 +7901,8 @@ comment(//----------------------------------------------------------------------
ident(use)operator(()ident(ArrayListCategory)(\)) operator({)
ident(println) string<delimiter(")content(ORIGINAL)delimiter(")>
- keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(lines)operator(.)ident(size)operator(()(\)\))
- ident(println) string<delimiter(")inline<inline_delimiter(${)ident(i)inline_delimiter(})>content(: )inline<inline_delimiter(${)ident(lines[i])inline_delimiter(})>delimiter(")>
+ keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(lines)operator(.)ident(size)operator(()(\))(\))
+ ident(println) string<delimiter(")inline<inline_delimiter(${)ident(i)inline_delimiter(})>content(: )inline<inline_delimiter(${)ident(lines)operator([)ident(i)(])inline_delimiter(})>delimiter(")>
ident(a) operator(=) ident(lines)operator([)operator(-)integer(1)(])
ident(lines)operator([)operator(-)integer(1)(]) operator(=) string<delimiter(")content(last)delimiter(")>
@@ -7919,7 +7919,7 @@ comment(//----------------------------------------------------------------------
ident(println) string<delimiter(")content(REVERSE)delimiter(")>
operator(()ident(lines)operator(.)ident(size)operator(()(\)) operator(-) integer(1)(\))operator(.)ident(downto)operator(()integer(0)(\))operator({) ident(i) operator(->)
- ident(println) string<delimiter(")inline<inline_delimiter(${)ident(i)inline_delimiter(})>content(: )inline<inline_delimiter(${)ident(lines[i])inline_delimiter(})>delimiter(")>
+ ident(println) string<delimiter(")inline<inline_delimiter(${)ident(i)inline_delimiter(})>content(: )inline<inline_delimiter(${)ident(lines)operator([)ident(i)(])inline_delimiter(})>delimiter(")>
(})
ident(lines)operator(.)ident(save)operator(()(\))
(})
@@ -7961,8 +7961,8 @@ type(class) class(Person) directive(implements) ident(Persistent) operator({)
ident(name1) operator(=) string<delimiter(')content(Tom Christiansen)delimiter(')>
ident(name2) operator(=) string<delimiter(')content(Tom Boutell)delimiter(')>
-ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)ident(name1)operator(,) key(does)operator(:)string<delimiter(')content(book author)delimiter(')>operator(,) key(email)operator(:)string<delimiter(')content(tchrist@perl.com)delimiter(')>(\)\))
-ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)ident(name2)operator(,) key(does)operator(:)string<delimiter(')content(shareware author)delimiter(')>operator(,) key(email)operator(:)string<delimiter(')content(boutell@boutell.com)delimiter(')>(\)\))
+ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)ident(name1)operator(,) key(does)operator(:)string<delimiter(')content(book author)delimiter(')>operator(,) key(email)operator(:)string<delimiter(')content(tchrist@perl.com)delimiter(')>(\))(\))
+ident(store)operator(.)ident(insert)operator(()keyword(new) ident(Person)operator(()key(name)operator(:)ident(name2)operator(,) key(does)operator(:)string<delimiter(')content(shareware author)delimiter(')>operator(,) key(email)operator(:)string<delimiter(')content(boutell@boutell.com)delimiter(')>(\))(\))
ident(tom1) operator(=) ident(store)operator(.)ident(selectSingle)operator(()ident(Person)operator(.)ident(class)operator(,) string<delimiter(')content(name)delimiter(')>operator(,) ident(name1)(\))
ident(tom2) operator(=) ident(store)operator(.)ident(selectSingle)operator(()ident(Person)operator(.)ident(class)operator(,) string<delimiter(')content(name)delimiter(')>operator(,) ident(name2)(\))
@@ -8042,17 +8042,17 @@ ident(tables)operator(.)ident(each)operator({) ident(table) operator(->)
keyword(if) operator(()ident(options)operator(.)ident(c)(\)) ident(url) operator(=) ident(url)operator(.)ident(tokenize)operator(()string<delimiter(')content(?)delimiter(')>(\))operator([)integer(0)(])
keyword(if) operator(()operator(!)ident(regex) operator(||) ident(url) operator(=~) ident(regex)(\)) operator({)
keyword(if) operator(()operator(!)ident(options)operator(.)ident(e) operator(||) ident(row)operator(.)ident(getValue)operator(()string<delimiter(')content(Hidden)delimiter(')>(\)) operator(!=) string<delimiter(')content(1)delimiter(')>(\)) operator({)
- ident(println) string<delimiter(")inline<inline_delimiter($)ident(url)>char(\\n)content( Last Visited: )inline<inline_delimiter(${)ident(date(row,'LastVisitDate'\))inline_delimiter(})>delimiter(")>
+ ident(println) string<delimiter(")inline<inline_delimiter($)ident(url)>char(\\n)content( Last Visited: )inline<inline_delimiter(${)ident(date)operator(()ident(row)operator(,)string<delimiter(')content(LastVisitDate)delimiter(')>(\))inline_delimiter(})>delimiter(")>
keyword(if) operator(()ident(options)operator(.)ident(v)(\)) operator({)
- ident(println) string<delimiter(")content( First Visited: )inline<inline_delimiter(${)ident(date(row,'FirstVisitDate'\))inline_delimiter(})>delimiter(")>
- ident(println) string<delimiter(")content( Referrer: )inline<inline_delimiter(${)ident(row.getValue('Referrer'\))inline_delimiter(})>delimiter(")>
+ ident(println) string<delimiter(")content( First Visited: )inline<inline_delimiter(${)ident(date)operator(()ident(row)operator(,)string<delimiter(')content(FirstVisitDate)delimiter(')>(\))inline_delimiter(})>delimiter(")>
+ ident(println) string<delimiter(")content( Referrer: )inline<inline_delimiter(${)ident(row)operator(.)ident(getValue)operator(()string<delimiter(')content(Referrer)delimiter(')>(\))inline_delimiter(})>delimiter(")>
(})
(})
(})
(})
(})
keyword(def) method(date)operator(()ident(row)operator(,) ident(key)(\)) operator({)
- keyword(return) keyword(new) pre_type(Date)operator(()operator(()type(long)(\))operator(()ident(row)operator(.)ident(getValue)operator(()ident(key)(\))operator(.)ident(toLong)operator(()(\))operator(/)integer(1000)(\)\))
+ keyword(return) keyword(new) pre_type(Date)operator(()operator(()type(long)(\))operator(()ident(row)operator(.)ident(getValue)operator(()ident(key)(\))operator(.)ident(toLong)operator(()(\))operator(/)integer(1000)(\))(\))
(})
comment(// $ groovy gfh -ev oracle' =>)
comment(// http://www.oracle.com/technology/products/jdev/index.html)
@@ -8084,7 +8084,7 @@ keyword(if) operator(()ident(options)operator(.)ident(v)(\)) comment(// ...)
keyword(if) operator(()ident(options)operator(.)ident(D)(\)) ident(println) string<delimiter(')content(Debugging info available)delimiter(')>
keyword(if) operator(()ident(options)operator(.)ident(o)(\)) operator({)
ident(println) string<delimiter(')content(Output file flag was specified)delimiter(')>
- ident(println) string<delimiter(")content(Output file is )inline<inline_delimiter(${)ident(options.o)inline_delimiter(})>delimiter(")>
+ ident(println) string<delimiter(")content(Output file is )inline<inline_delimiter(${)ident(options)operator(.)ident(o)inline_delimiter(})>delimiter(")>
(})
comment(// ...)
@@ -8092,9 +8092,9 @@ comment(// ...)
comment(// jopt-simple example 1 (short form\))
ident(cli) operator(=) keyword(new) ident(joptsimple)operator(.)ident(OptionParser)operator(()string<delimiter(")content(vDo::)delimiter(")>(\))
ident(options) operator(=) ident(cli)operator(.)ident(parse)operator(()ident(args)(\))
-keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(()string<delimiter(')content(o)delimiter(')>(\)\)) operator({)
+keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(()string<delimiter(')content(o)delimiter(')>(\))(\)) operator({)
ident(println) string<delimiter(')content(Output file flag was specified.)delimiter(')>
- ident(println) string<delimiter(")content(Output file is )inline<inline_delimiter(${)ident(options.argumentsOf('o'\))inline_delimiter(})>delimiter(")>
+ ident(println) string<delimiter(")content(Output file is )inline<inline_delimiter(${)ident(options)operator(.)ident(argumentsOf)operator(()string<delimiter(')content(o)delimiter(')>(\))inline_delimiter(})>delimiter(")>
(})
comment(// ...)
@@ -8107,7 +8107,7 @@ ident(OUTPUT) operator(=) string<delimiter(')content(o)delimiter(')>operator(;)
ident(describedAs)operator(() string<delimiter(")content(file)delimiter(")> (\))operator(.)ident(ofType)operator(() pre_type(File)operator(.)ident(class) (\))
ident(options) operator(=) ident(op)operator(.)ident(parse)operator(()ident(args)(\))
ident(params) operator(=) ident(options)operator(.)ident(nonOptionArguments)operator(()(\))
-keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(DEBUG) (\)\)) ident(println) string<delimiter(')content(Debugging info available)delimiter(')>
+keyword(if) operator(()ident(options)operator(.)ident(wasDetected)operator(() ident(DEBUG) (\))(\)) ident(println) string<delimiter(')content(Debugging info available)delimiter(')>
comment(// ...)
comment(//----------------------------------------------------------------------------------)
@@ -8169,7 +8169,7 @@ ident(values) operator(=) operator(()integer(1)operator(..)integer(5)(\))operato
ident(max) operator(=) ident(values)operator(.)ident(max)operator(()(\))
ident(ratio) operator(=) operator(()ident(numCols) operator(-) integer(12)(\))operator(/)ident(max)
ident(values)operator(.)ident(each)operator({) ident(i) operator(->)
- ident(printf)operator(()string<delimiter(')content(%8.1f %s)content(\\n)delimiter(')>operator(,) operator([)ident(i) keyword(as) type(double)operator(,) string<delimiter(")content(*)delimiter(")> operator(*) ident(ratio) operator(*) ident(i)(]\))
+ ident(printf)operator(()string<delimiter(')content(%8.1f %s\\n)delimiter(')>operator(,) operator([)ident(i) keyword(as) type(double)operator(,) string<delimiter(")content(*)delimiter(")> operator(*) ident(ratio) operator(*) ident(i)(])(\))
(})
comment(// gives, for example:)
@@ -8190,7 +8190,7 @@ comment(// Note: Run examples using these libraries from command line not inside
comment(// If you are using a terminal/console that understands ANSI codes)
comment(// (excludes WinNT derivatives\) you can just print the ANSI codes)
-ident(ESC) operator(=) string<delimiter(")inline<inline_delimiter(${)ident((char\)27)inline_delimiter(})>delimiter(")>
+ident(ESC) operator(=) string<delimiter(")inline<inline_delimiter(${)operator(()type(char)(\))integer(27)inline_delimiter(})>delimiter(")>
ident(redOnBlack) operator(=) ident(ESC) operator(+) string<delimiter(')content([31;40m)delimiter(')>
ident(reset) operator(=) ident(ESC) operator(+) string<delimiter(')content([0m)delimiter(')>
ident(println) operator(()ident(redOnBlack) operator(+) string<delimiter(')content(Danger, Will Robinson!)delimiter(')> operator(+) ident(reset)(\))
@@ -8235,7 +8235,7 @@ comment(// Default Java libraries buffer System.in by default.)
comment(// Using JavaCurses:)
keyword(import) include(jcurses.system.Toolkit)
ident(print) string<delimiter(')content(Press a key: )delimiter(')>
-ident(println) string<delimiter(")char(\\n)content(You pressed the ')inline<inline_delimiter(${)ident(Toolkit.readCharacter(\).character)inline_delimiter(})>content(' key)delimiter(")>
+ident(println) string<delimiter(")char(\\n)content(You pressed the ')inline<inline_delimiter(${)pre_type(Toolkit)operator(.)ident(readCharacter)operator(()(\))operator(.)ident(character)inline_delimiter(})>content(' key)delimiter(")>
comment(// Also works for special keys:)
keyword(import) include(jcurses.system.InputChar)
@@ -8250,10 +8250,10 @@ comment(//----------------------------------------------------------------------
comment(// @@PLEAC@@_15.7)
comment(//----------------------------------------------------------------------------------)
-ident(print) string<delimiter(")inline<inline_delimiter(${)ident((char\)7)inline_delimiter(})>delimiter(")>
+ident(print) string<delimiter(")inline<inline_delimiter(${)operator(()type(char)(\))integer(7)inline_delimiter(})>delimiter(")>
comment(// Using jline constant)
-ident(print) string<delimiter(")inline<inline_delimiter(${)ident(jline.ConsoleOperations.KEYBOARD_BELL)inline_delimiter(})>delimiter(")>
+ident(print) string<delimiter(")inline<inline_delimiter(${)ident(jline)operator(.)ident(ConsoleOperations)operator(.)ident(KEYBOARD_BELL)inline_delimiter(})>delimiter(")>
comment(// Also available through ConsoleReader.beep(\))
comment(// Using JavaCurses (Works only with terminals that support 'beeps'\))
@@ -8285,7 +8285,7 @@ comment(// @@PLEAC@@_15.10)
comment(//----------------------------------------------------------------------------------)
comment(// If using Java 6, use Console.readPassword(\))
comment(// Otherwise use jline (use 0 instead of mask character '*' for no echo\):)
-ident(password) operator(=) keyword(new) ident(jline)operator(.)ident(ConsoleReader)operator(()(\))operator(.)ident(readLine)operator(()keyword(new) pre_type(Character)operator(()string<delimiter(')content(*)delimiter(')>(\)\))
+ident(password) operator(=) keyword(new) ident(jline)operator(.)ident(ConsoleReader)operator(()(\))operator(.)ident(readLine)operator(()keyword(new) pre_type(Character)operator(()string<delimiter(')content(*)delimiter(')>(\))(\))
comment(//----------------------------------------------------------------------------------)
@@ -8319,8 +8319,8 @@ ident(refresh) operator(=) keyword(false)
ident(waittime) operator(=) integer(8000)
ident(oldlines) operator(=) type([])
keyword(def) method(fade)operator(()ident(line)operator(,) ident(row)operator(,) ident(colorList)(\)) operator({)
- keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(colorList)operator(.)ident(size)operator(()(\)\)) operator({)
- pre_type(Toolkit)operator(.)ident(printString)operator(()ident(line)operator(,) integer(0)operator(,) ident(row)operator(,) keyword(new) ident(CharColor)operator(()ident(CharColor)operator(.)ident(BLACK)operator(,) ident(colorList)operator([)ident(i)(]\)\))
+ keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(colorList)operator(.)ident(size)operator(()(\))(\)) operator({)
+ pre_type(Toolkit)operator(.)ident(printString)operator(()ident(line)operator(,) integer(0)operator(,) ident(row)operator(,) keyword(new) ident(CharColor)operator(()ident(CharColor)operator(.)ident(BLACK)operator(,) ident(colorList)operator([)ident(i)(])(\))(\))
ident(sleep) integer(10)
(})
(})
@@ -8329,10 +8329,10 @@ keyword(while)operator(()operator(!)ident(done)(\)) operator({)
ident(proc) operator(=) ident(args)operator([)integer(0)(])operator(.)ident(execute)operator(()(\))
ident(lines) operator(=) ident(proc)operator(.)ident(text)operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))
keyword(for) operator(()ident(r) keyword(in) integer(0)operator(..<)ident(maxrow)(\)) operator({)
- keyword(if) operator(()ident(r) operator(>=) ident(lines)operator(.)ident(size)operator(()(\)) operator(||) ident(r) operator(>) ident(oldlines)operator(.)ident(size)operator(()(\)) operator(||) ident(lines)operator([)ident(r)(]) operator(!=) ident(oldlines)operator([)ident(r)(]\)) operator({)
+ keyword(if) operator(()ident(r) operator(>=) ident(lines)operator(.)ident(size)operator(()(\)) operator(||) ident(r) operator(>) ident(oldlines)operator(.)ident(size)operator(()(\)) operator(||) ident(lines)operator([)ident(r)(]) operator(!=) ident(oldlines)operator([)ident(r)(])(\)) operator({)
keyword(if) operator(()ident(oldlines) operator(!=) type([])(\))
ident(fade)operator(()ident(r) operator(<) ident(oldlines)operator(.)ident(size)operator(()(\)) operator(?) ident(oldlines)operator([)ident(r)(]) operator(:) string<delimiter(')content( )delimiter(')> operator(*) ident(maxcol)operator(,) ident(r)operator(,) ident(colors)(\))
- ident(fade)operator(()ident(r) operator(<) ident(lines)operator(.)ident(size)operator(()(\)) operator(?) ident(lines)operator([)ident(r)(]) operator(:) string<delimiter(')content( )delimiter(')> operator(*) ident(maxcol)operator(,) ident(r)operator(,) ident(colors)operator(.)ident(reverse)operator(()(\)\))
+ ident(fade)operator(()ident(r) operator(<) ident(lines)operator(.)ident(size)operator(()(\)) operator(?) ident(lines)operator([)ident(r)(]) operator(:) string<delimiter(')content( )delimiter(')> operator(*) ident(maxcol)operator(,) ident(r)operator(,) ident(colors)operator(.)ident(reverse)operator(()(\))(\))
(})
(})
ident(oldlines) operator(=) ident(lines)
@@ -8366,7 +8366,7 @@ ident(command)operator(.)ident(expect)operator(()string<delimiter(')content(Pass
comment(// expectj doesn't support regular expressions, but see readUntil)
comment(// in recipe 18.6 for how to manually code this)
ident(command)operator(.)ident(expect)operator(()string<delimiter(')content(invalid)delimiter(')>(\))
-ident(command)operator(.)ident(send)operator(()string<delimiter(')content(Hello, world)content(\\r)delimiter(')>(\))
+ident(command)operator(.)ident(send)operator(()string<delimiter(')content(Hello, world\\r)delimiter(')>(\))
comment(// kill spawned process)
ident(command)operator(.)ident(stop)operator(()(\))
@@ -8389,7 +8389,7 @@ ident(frame) operator(=) keyword(new) ident(SwingBuilder)operator(()(\))operator
ident(menuItem) operator(()key(actionPerformed)operator(:)local_variable(this)operator(.)operator(&)ident(print)operator(,) string<delimiter(')content(Print)delimiter(')>(\))
ident(separator)operator(()(\))
ident(menuItem) operator(()key(actionPerformed)operator(:)local_variable(this)operator(.)operator(&)ident(save)operator(,) string<delimiter(')content(Save)delimiter(')>(\))
- ident(menuItem) operator(()key(actionPerformed)operator(:)operator({)pre_type(System)operator(.)ident(exit)operator(()integer(0)(\)})operator(,) string<delimiter(')content(Quit immediately)delimiter(')>(\))
+ ident(menuItem) operator(()key(actionPerformed)operator(:)operator({)pre_type(System)operator(.)ident(exit)operator(()integer(0)(\))(})operator(,) string<delimiter(')content(Quit immediately)delimiter(')>(\))
(})
ident(menu)operator(()key(mnemonic)operator(:)string<delimiter(')content(O)delimiter(')>operator(,) string<delimiter(')content(Options)delimiter(')>(\)) operator({)
ident(checkBoxMenuItem) operator(()string<delimiter(')content(Create Debugging Info)delimiter(')>operator(,) key(state)operator(:)keyword(true)(\))
@@ -8463,7 +8463,7 @@ ident(frame) operator(=) ident(swing)operator(.)ident(frame)operator(()key(title
ident(panel) operator({)
ident(button)operator(()key(actionPerformed)operator(:)local_variable(this)operator(.)operator(&)ident(dialog)operator(,) string<delimiter(')content(Click Here For Registration Form)delimiter(')>(\))
ident(glue)operator(()(\))
- ident(button)operator(()key(actionPerformed)operator(:)operator({)pre_type(System)operator(.)ident(exit)operator(()integer(0)(\)})operator(,) string<delimiter(')content(Quit)delimiter(')>(\))
+ ident(button)operator(()key(actionPerformed)operator(:)operator({)pre_type(System)operator(.)ident(exit)operator(()integer(0)(\))(})operator(,) string<delimiter(')content(Quit)delimiter(')>(\))
(})
(})
ident(frame)operator(.)ident(pack)operator(()(\))
@@ -8498,7 +8498,7 @@ ident(frame) operator(=) ident(swing)operator(.)ident(frame)operator(()key(title
(})
ident(hbox) operator({)
ident(button)operator(()string<delimiter(')content(Calculate)delimiter(')>operator(,) key(actionPerformed)operator(:)local_variable(this)operator(.)operator(&)ident(calculate)(\))
- ident(button)operator(()string<delimiter(')content(Quit)delimiter(')>operator(,) key(actionPerformed)operator(:)operator({)pre_type(System)operator(.)ident(exit)operator(()integer(0)(\)}\))
+ ident(button)operator(()string<delimiter(')content(Quit)delimiter(')>operator(,) key(actionPerformed)operator(:)operator({)pre_type(System)operator(.)ident(exit)operator(()integer(0)(\))(})(\))
(})
(})
(})
@@ -8551,7 +8551,7 @@ ident(ch) operator(=) keyword(null)
keyword(def) method(nextChar)operator(()(\))operator({)
ident(ch) operator(=) ident(chars)operator([)integer(0)(])
ident(chars) operator(=) ident(chars)operator([)integer(1)operator(..)operator(-)integer(1)(]) operator(+) ident(chars)operator([)integer(0)(])
- ident(color) operator(=) keyword(new) ident(CharColor)operator(()ident(CharColor)operator(.)ident(BLACK)operator(,) ident(colors)operator([)integer(0)(]\))
+ ident(color) operator(=) keyword(new) ident(CharColor)operator(()ident(CharColor)operator(.)ident(BLACK)operator(,) ident(colors)operator([)integer(0)(])(\))
ident(colors) operator(=) ident(colors)operator([)integer(1)operator(..)operator(-)integer(1)(]) operator(+) ident(colors)operator([)integer(0)(])
(})
ident(nextChar)operator(()(\))
@@ -8560,8 +8560,8 @@ keyword(while)operator(()keyword(true)(\)) operator({)
ident(sleep) ident(delay)
ident(row) operator(=) ident(row) operator(+) ident(rowinc)
ident(col) operator(=) ident(col) operator(+) ident(colinc)
- keyword(if) operator(()ident(row) keyword(in) operator([)integer(0)operator(,) ident(maxrow)(]\)) operator({) ident(nextChar)operator(()(\))operator(;) ident(rowinc) operator(=) operator(-)ident(rowinc) (})
- keyword(if) operator(()ident(col) keyword(in) operator([)integer(0)operator(,) ident(maxcol)(]\)) operator({) ident(nextChar)operator(()(\))operator(;) ident(colinc) operator(=) operator(-)ident(colinc) (})
+ keyword(if) operator(()ident(row) keyword(in) operator([)integer(0)operator(,) ident(maxrow)(])(\)) operator({) ident(nextChar)operator(()(\))operator(;) ident(rowinc) operator(=) operator(-)ident(rowinc) (})
+ keyword(if) operator(()ident(col) keyword(in) operator([)integer(0)operator(,) ident(maxcol)(])(\)) operator({) ident(nextChar)operator(()(\))operator(;) ident(colinc) operator(=) operator(-)ident(colinc) (})
(})
comment(//----------------------------------------------------------------------------------)
@@ -8588,7 +8588,7 @@ type(class) class(DragDropList) directive(extends) pre_type(JList) directive(imp
directive(public) ident(DragDropList)operator(()ident(model)(\)) operator({)
local_variable(super)operator(()(\))
ident(setModel)operator(()ident(model)(\))
- ident(setCellRenderer)operator(()keyword(new) ident(DragDropCellRenderer)operator(()local_variable(this)(\)\))
+ ident(setCellRenderer)operator(()keyword(new) ident(DragDropCellRenderer)operator(()local_variable(this)(\))(\))
ident(dragSource) operator(=) keyword(new) pre_type(DragSource)operator(()(\))
ident(dragSource)operator(.)ident(createDefaultDragGestureRecognizer)operator(()local_variable(this)operator(,) pre_type(DnDConstants)operator(.)ident(ACTION_MOVE)operator(,) local_variable(this)(\))
ident(dropTarget) operator(=) keyword(new) pre_type(DropTarget)operator(()local_variable(this)operator(,) local_variable(this)(\))
@@ -8662,7 +8662,7 @@ type(class) class(CustomTransferable) directive(implements) pre_type(Transferabl
(})
directive(public) pre_type(Object) ident(getTransferData)operator(()pre_type(DataFlavor) ident(df)(\)) operator({)
- keyword(if) operator(()ident(isDataFlavorSupported)operator(()ident(df)(\)\)) keyword(return) ident(object)
+ keyword(if) operator(()ident(isDataFlavorSupported)operator(()ident(df)(\))(\)) keyword(return) ident(object)
(})
directive(public) type(boolean) ident(isDataFlavorSupported)operator(()pre_type(DataFlavor) ident(df)(\)) operator({)
@@ -8748,7 +8748,7 @@ comment(//----------------------------------------------------------------------
comment(// sending text to the input of another process)
ident(proc) operator(=) string<delimiter(')content(groovy -e "print System.in.text.toUpperCase(\)")delimiter(')>operator(.)ident(execute)operator(()(\))
pre_type(Thread)operator(.)ident(start)operator({)
- keyword(def) ident(writer) operator(=) keyword(new) pre_type(PrintWriter)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()ident(proc)operator(.)ident(out)(\)\))
+ keyword(def) ident(writer) operator(=) keyword(new) pre_type(PrintWriter)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()ident(proc)operator(.)ident(out)(\))(\))
ident(writer)operator(.)ident(println)operator(()string<delimiter(')content(Hello)delimiter(')>(\))
ident(writer)operator(.)ident(close)operator(()(\))
(})
@@ -8765,11 +8765,11 @@ comment(//----------------------------------------------------------------------
comment(// filter your own output)
ident(keep) operator(=) pre_type(System)operator(.)ident(out)
ident(pipe) operator(=) keyword(new) pre_type(PipedInputStream)operator(()(\))
-ident(reader) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()ident(pipe)(\)\))
-pre_type(System)operator(.)ident(setOut)operator(()keyword(new) pre_type(PrintStream)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()keyword(new) pre_type(PipedOutputStream)operator(()ident(pipe)(\)\)\)\))
+ident(reader) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()ident(pipe)(\))(\))
+pre_type(System)operator(.)ident(setOut)operator(()keyword(new) pre_type(PrintStream)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()keyword(new) pre_type(PipedOutputStream)operator(()ident(pipe)(\))(\))(\))(\))
type(int) ident(numlines) operator(=) integer(2)
pre_type(Thread)operator(.)ident(start)operator({)
- keyword(while)operator(()operator(()ident(next) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\)\)) operator(!=) keyword(null)(\)) operator({)
+ keyword(while)operator(()operator(()ident(next) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\))(\)) operator(!=) keyword(null)(\)) operator({)
keyword(if) operator(()ident(numlines)operator(--) operator(>) integer(0)(\)) ident(keep)operator(.)ident(println)operator(()ident(next)(\))
(})
(})
@@ -8793,12 +8793,12 @@ type(class) class(FilterOutput) directive(extends) pre_type(Thread) operator({)
local_variable(this)operator(.)ident(c) operator(=) ident(c)
ident(orig) operator(=) pre_type(System)operator(.)ident(out)
keyword(def) ident(pipe) operator(=) keyword(new) pre_type(PipedInputStream)operator(()(\))
- ident(reader) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()ident(pipe)(\)\))
- pre_type(System)operator(.)ident(setOut)operator(()keyword(new) pre_type(PrintStream)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()keyword(new) pre_type(PipedOutputStream)operator(()ident(pipe)(\)\)\)\))
+ ident(reader) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()ident(pipe)(\))(\))
+ pre_type(System)operator(.)ident(setOut)operator(()keyword(new) pre_type(PrintStream)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()keyword(new) pre_type(PipedOutputStream)operator(()ident(pipe)(\))(\))(\))(\))
(})
type(void) ident(run)operator(()(\)) operator({)
keyword(def) ident(next)
- keyword(while)operator(()operator(()ident(next) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\)\)) operator(!=) keyword(null)(\)) operator({)
+ keyword(while)operator(()operator(()ident(next) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\))(\)) operator(!=) keyword(null)(\)) operator({)
ident(c)operator(()ident(orig)operator(,) ident(next)(\))
(})
(})
@@ -8829,7 +8829,7 @@ ident(input) operator(=) keyword(new) pre_type(URL)operator(()ident(address)(\))
comment(// ... process 'input' stream)
comment(// process compressed file)
-ident(input) operator(=) keyword(new) pre_type(GZIPInputStream)operator(()keyword(new) pre_type(FileInputStream)operator(()string<delimiter(')content(source.gzip)delimiter(')>(\)\))
+ident(input) operator(=) keyword(new) pre_type(GZIPInputStream)operator(()keyword(new) pre_type(FileInputStream)operator(()string<delimiter(')content(source.gzip)delimiter(')>(\))(\))
comment(// ... process 'input' stream)
comment(//----------------------------------------------------------------------------------)
@@ -8843,7 +8843,7 @@ ident(println) ident(proc)operator(.)ident(err)operator(.)ident(text)
comment(// => Caught: java.lang.ArrayIndexOutOfBoundsException: 0 ...)
comment(// To redirect your STDERR to a file)
-pre_type(System)operator(.)ident(setErr)operator(()keyword(new) pre_type(PrintStream)operator(()keyword(new) pre_type(FileOutputStream)operator(()string<delimiter(")content(error.txt)delimiter(")>(\)\)\))
+pre_type(System)operator(.)ident(setErr)operator(()keyword(new) pre_type(PrintStream)operator(()keyword(new) pre_type(FileOutputStream)operator(()string<delimiter(")content(error.txt)delimiter(")>(\))(\))(\))
comment(//----------------------------------------------------------------------------------)
@@ -8876,9 +8876,9 @@ comment(// Simplist approach is to just link streams:)
ident(proc1) operator(=) string<delimiter(')content(groovy -e "println args[0]" Hello)delimiter(')>operator(.)ident(execute)operator(()(\))
ident(proc2) operator(=) string<delimiter(')content(groovy -e "print System.in.text.toUpperCase(\)")delimiter(')>operator(.)ident(execute)operator(()(\))
pre_type(Thread)operator(.)ident(start)operator({)
- keyword(def) ident(reader) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()ident(proc1)operator(.)ident(in)(\)\))
- keyword(def) ident(writer) operator(=) keyword(new) pre_type(PrintWriter)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()ident(proc2)operator(.)ident(out)(\)\))
- keyword(while) operator(()operator(()ident(next) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\)\)) operator(!=) keyword(null)(\)) operator({)
+ keyword(def) ident(reader) operator(=) keyword(new) pre_type(BufferedReader)operator(()keyword(new) pre_type(InputStreamReader)operator(()ident(proc1)operator(.)ident(in)(\))(\))
+ keyword(def) ident(writer) operator(=) keyword(new) pre_type(PrintWriter)operator(()keyword(new) pre_type(BufferedOutputStream)operator(()ident(proc2)operator(.)ident(out)(\))(\))
+ keyword(while) operator(()operator(()ident(next) operator(=) ident(reader)operator(.)ident(readLine)operator(()(\))(\)) operator(!=) keyword(null)(\)) operator({)
ident(writer)operator(.)ident(println)operator(()ident(next)(\))
(})
ident(writer)operator(.)ident(close)operator(()(\))
@@ -8962,7 +8962,7 @@ ident(name) operator(=) ident(args)operator([)integer(0)(])
ident(rand) operator(=) keyword(new) pre_type(Random)operator(()(\))
operator(()integer(0)operator(..)integer(99)(\))operator(.)ident(each) operator({)
ident(mutex)operator(.)ident(lock)operator(()(\))
- ident(buffer)operator(.)ident(set)operator(()string<delimiter(")inline<inline_delimiter($)ident(name)>content( )inline<inline_delimiter($)local_variable(it)>delimiter(")>operator(.)ident(toString)operator(()(\)\))
+ ident(buffer)operator(.)ident(set)operator(()string<delimiter(")inline<inline_delimiter($)ident(name)>content( )inline<inline_delimiter($)local_variable(it)>delimiter(")>operator(.)ident(toString)operator(()(\))(\))
ident(mutex)operator(.)ident(unlock)operator(()(\))
ident(sleep) integer(200) operator(+) ident(rand)operator(.)ident(nextInt)operator(()integer(500)(\))
(})
@@ -9023,7 +9023,7 @@ USR1 USR2 CHLD PWR WINCH URG POLL STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU
XFSZ WAITING LWP AIO IO INFO THR BREAK FREEZE THAW CANCEL EMT
)delimiter(''')>
-ident(sigs)operator(.)ident(tokenize)operator(()string<delimiter(')content( )content(\\n)delimiter(')>(\))operator(.)ident(each)operator({)
+ident(sigs)operator(.)ident(tokenize)operator(()string<delimiter(')content( \\n)delimiter(')>(\))operator(.)ident(each)operator({)
keyword(try) operator({)
ident(print) string<delimiter(')content( )delimiter(')> operator(+) keyword(new) ident(sun)operator(.)ident(misc)operator(.)ident(Signal)operator(()local_variable(it)(\))
(}) keyword(catch)operator(()pre_type(IllegalArgumentException) ident(iae)(\)) operator({)(})
@@ -9036,7 +9036,7 @@ comment(//----------------------------------------------------------------------
comment(// @@PLEAC@@_16.14)
comment(//----------------------------------------------------------------------------------)
comment(// To send a signal to your process:)
-ident(Signal)operator(.)ident(raise)operator(()keyword(new) ident(Signal)operator(()string<delimiter(")content(INT)delimiter(")>(\)\))
+ident(Signal)operator(.)ident(raise)operator(()keyword(new) ident(Signal)operator(()string<delimiter(")content(INT)delimiter(")>(\))(\))
comment(//----------------------------------------------------------------------------------)
@@ -9082,7 +9082,7 @@ type(class) class(DiagSignalHandler) directive(implements) ident(SignalHandler)
type(int) ident(numThreads) operator(=) pre_type(Thread)operator(.)ident(enumerate)operator(()ident(threadArray)(\))
ident(println)operator(()string<delimiter(")content(Current threads:)delimiter(")>(\))
keyword(for) operator(()ident(i) keyword(in) integer(0)operator(..<)ident(numThreads)(\)) operator({)
- ident(println)operator(()string<delimiter(")content( )delimiter(")>operator(+)ident(threadArray)operator([)ident(i)(]\))
+ ident(println)operator(()string<delimiter(")content( )delimiter(")>operator(+)ident(threadArray)operator([)ident(i)(])(\))
(})
comment(// Chain back to previous handler, if one exists)
@@ -9092,7 +9092,7 @@ type(class) class(DiagSignalHandler) directive(implements) ident(SignalHandler)
(})
(})
comment(// install using:)
-ident(DiagSignalHandler)operator(.)ident(install)operator(()keyword(new) ident(Signal)operator(()string<delimiter(")content(INT)delimiter(")>(\)\))
+ident(DiagSignalHandler)operator(.)ident(install)operator(()keyword(new) ident(Signal)operator(()string<delimiter(")content(INT)delimiter(")>(\))(\))
comment(//----------------------------------------------------------------------------------)
@@ -9178,12 +9178,12 @@ Comments on data are usually much more helpful than on algorithms.
Programs that write programs are the happiest programs in the world.
--Andrew Hume
)delimiter(''')>operator(.)ident(trim)operator(()(\))operator(.)ident(split)operator(()regexp<delimiter(/)char(\\n)content(%%)char(\\n)delimiter(/)>(\))
-ident(name) operator(=) string<delimiter(')content(me@somewhere.org)content(\\n)delimiter(')>
+ident(name) operator(=) string<delimiter(')content(me@somewhere.org\\n)delimiter(')>
ident(file) operator(=) keyword(new) pre_type(File)operator(()pre_type(System)operator(.)ident(getProperty)operator(()string<delimiter(')content(user.home)delimiter(')>(\)) operator(+) pre_type(File)operator(.)ident(separator) operator(+) string<delimiter(')content(.signature)delimiter(')>(\))
ident(rand) operator(=) keyword(new) pre_type(Random)operator(()(\))
keyword(while)operator(()integer(1)(\)) operator({)
ident(file)operator(.)ident(delete)operator(()(\))
- ident(file) operator(<)operator(<) ident(name) operator(+) ident(sigs)operator([)ident(rand)operator(.)ident(nextInt)operator(()ident(sigs)operator(.)ident(size)operator(()(\)\)])
+ ident(file) operator(<)operator(<) ident(name) operator(+) ident(sigs)operator([)ident(rand)operator(.)ident(nextInt)operator(()ident(sigs)operator(.)ident(size)operator(()(\))(\))(])
ident(sleep) integer(10000)
(})
@@ -9234,7 +9234,7 @@ comment(// a web server as a script (extension to cookbook\))
ident(output)operator(.)ident(withWriter) operator({) ident(writer) operator(->)
ident(writer) operator(<)operator(<) string<delimiter(")content(HTTP/1.1 200 OK)char(\\n)delimiter(")>
ident(writer) operator(<)operator(<) string<delimiter(")content(Content-Type: text/html)char(\\n)char(\\n)delimiter(")>
- ident(writer) operator(<)operator(<) string<delimiter(")content(<html><body>Hello World! It's )inline<inline_delimiter(${)ident(new Date(\))inline_delimiter(})>content(</body></html>)char(\\n)delimiter(")>
+ ident(writer) operator(<)operator(<) string<delimiter(")content(<html><body>Hello World! It's )inline<inline_delimiter(${)keyword(new) pre_type(Date)operator(()(\))inline_delimiter(})>content(</body></html>)char(\\n)delimiter(")>
(})
(})
(})
@@ -9429,7 +9429,7 @@ keyword(import) include(org.xbill.DNS.*)
pre_type(System)operator(.)ident(setProperty)operator(()string<delimiter(")content(sun.net.spi.nameservice.provider.1)delimiter(")>operator(,)string<delimiter(")content(dns,dnsjava)delimiter(")>(\))
ident(Lookup) ident(lookup) operator(=) keyword(new) ident(Lookup)operator(()string<delimiter(')content(cnn.com)delimiter(')>operator(,) pre_type(Type)operator(.)ident(ANY)(\))
ident(records) operator(=) ident(lookup)operator(.)ident(run)operator(()(\))
-ident(println) string<delimiter(")inline<inline_delimiter(${)ident(records?.size(\))inline_delimiter(})>content( record(s\) found)delimiter(")>
+ident(println) string<delimiter(")inline<inline_delimiter(${)ident(records)operator(?)operator(.)ident(size)operator(()(\))inline_delimiter(})>content( record(s\) found)delimiter(")>
ident(records)operator(.)ident(each)operator({) ident(println) local_variable(it) (})
comment(// =>)
comment(// 17 record(s\) found)
@@ -9505,7 +9505,7 @@ ident(files) operator(=) ident(ftp)operator(.)ident(listFiles)operator(()(\))
ident(println) string<delimiter(")content(Number of files in dir: )inline<inline_delimiter($)ident(files)>content(.length)delimiter(")>
ident(df) operator(=) pre_type(DateFormat)operator(.)ident(getDateInstance)operator(() pre_type(DateFormat)operator(.)ident(SHORT) (\))
ident(files)operator(.)ident(each)operator({) ident(file) operator(->)
- ident(println) string<delimiter(")inline<inline_delimiter(${)ident(df.format(file.timestamp.time\))inline_delimiter(})>char(\\t)content( )inline<inline_delimiter($)ident(file)>content(.name)delimiter(")>
+ ident(println) string<delimiter(")inline<inline_delimiter(${)ident(df)operator(.)ident(format)operator(()ident(file)operator(.)ident(timestamp)operator(.)ident(time)(\))inline_delimiter(})>char(\\t)content( )inline<inline_delimiter($)ident(file)>content(.name)delimiter(")>
(})
comment(// Logout from the FTP Server and disconnect)
@@ -9604,10 +9604,10 @@ ident(postingPerm) operator(=) operator([)string<delimiter(')content(Unknown)del
ident(client) operator(=) keyword(new) ident(NNTPClient)operator(()(\))
ident(client)operator(.)ident(connect)operator(()string<delimiter(")content(news.example.com)delimiter(")>(\))
ident(list) operator(=) ident(client)operator(.)ident(listNewsgroups)operator(()(\))
-ident(println) string<delimiter(")content(Found )inline<inline_delimiter(${)ident(list.size(\))inline_delimiter(})>content( newsgroups)delimiter(")>
-ident(aList) operator(=) ident(list)operator([)keyword(new) pre_type(Random)operator(()(\))operator(.)ident(nextInt)operator(()ident(list)operator(.)ident(size)operator(()(\)\)])
+ident(println) string<delimiter(")content(Found )inline<inline_delimiter(${)ident(list)operator(.)ident(size)operator(()(\))inline_delimiter(})>content( newsgroups)delimiter(")>
+ident(aList) operator(=) ident(list)operator([)keyword(new) pre_type(Random)operator(()(\))operator(.)ident(nextInt)operator(()ident(list)operator(.)ident(size)operator(()(\))(\))(])
ident(println) string<delimiter(")inline<inline_delimiter($)ident(aList)>content(.newsgroup has )inline<inline_delimiter($)ident(aList)>content(.articleCount articles)delimiter(")>
-ident(println) string<delimiter(")content(PostingPermission = )inline<inline_delimiter(${)ident(postingPerm[aList.postingPermission])inline_delimiter(})>delimiter(")>
+ident(println) string<delimiter(")content(PostingPermission = )inline<inline_delimiter(${)ident(postingPerm)operator([)ident(aList)operator(.)ident(postingPermission)(])inline_delimiter(})>delimiter(")>
ident(first) operator(=) ident(aList)operator(.)ident(firstArticle)
ident(println) string<delimiter(")content(First=)inline<inline_delimiter($)ident(first)>content(, Last=)inline<inline_delimiter($)ident(aList)>content(.lastArticle)delimiter(")>
ident(client)operator(.)ident(retrieveArticle)operator(()ident(first)(\))operator(?)operator(.)ident(eachLine)operator({) ident(println) local_variable(it) (})
@@ -9618,7 +9618,7 @@ ident(writer) operator(=) ident(client)operator(.)ident(postArticle)operator(()(
comment(// ... use writer ...)
ident(writer)operator(.)ident(close)operator(()(\))
ident(client)operator(.)ident(logout)operator(()(\))
-keyword(if) operator(()ident(client)operator(.)ident(isConnected)operator(()(\)\)) ident(client)operator(.)ident(disconnect)operator(()(\))
+keyword(if) operator(()ident(client)operator(.)ident(isConnected)operator(()(\))(\)) ident(client)operator(.)ident(disconnect)operator(()(\))
comment(// =>)
comment(// Found 37025 newsgroups)
comment(// alt.comp.sys.palmtops.pilot has 730 articles)
@@ -9642,8 +9642,8 @@ keyword(def) method(printMessageInfo)operator(()ident(reader)operator(,) ident(i
keyword(def) ident(from)operator(,) ident(subject)
ident(reader)operator(.)ident(eachLine)operator({) ident(line) operator(->)
ident(lower) operator(=) ident(line)operator(.)ident(toLowerCase)operator(()(\))
- keyword(if) operator(()ident(lower)operator(.)ident(startsWith)operator(()string<delimiter(")content(from: )delimiter(")>(\)\)) ident(from) operator(=) ident(line)operator([)integer(6)operator(..)operator(-)integer(1)(])operator(.)ident(trim)operator(()(\))
- keyword(else) keyword(if) operator(()ident(lower)operator(.)ident(startsWith)operator(()string<delimiter(")content(subject: )delimiter(")>(\)\)) ident(subject) operator(=) ident(line)operator([)integer(9)operator(..)operator(-)integer(1)(])operator(.)ident(trim)operator(()(\))
+ keyword(if) operator(()ident(lower)operator(.)ident(startsWith)operator(()string<delimiter(")content(from: )delimiter(")>(\))(\)) ident(from) operator(=) ident(line)operator([)integer(6)operator(..)operator(-)integer(1)(])operator(.)ident(trim)operator(()(\))
+ keyword(else) keyword(if) operator(()ident(lower)operator(.)ident(startsWith)operator(()string<delimiter(")content(subject: )delimiter(")>(\))(\)) ident(subject) operator(=) ident(line)operator([)integer(9)operator(..)operator(-)integer(1)(])operator(.)ident(trim)operator(()(\))
(})
ident(println) string<delimiter(")inline<inline_delimiter($)ident(id)>content( From: )inline<inline_delimiter($)ident(from)>content(, Subject: )inline<inline_delimiter($)ident(subject)>delimiter(")>
(})
@@ -9652,7 +9652,7 @@ ident(pop3) operator(=) keyword(new) ident(POP3Client)operator(()(\))
ident(pop3)operator(.)ident(setDefaultTimeout)operator(()ident(timeoutMillis)(\))
ident(pop3)operator(.)ident(connect)operator(()ident(server)(\))
-keyword(if) operator(()operator(!)ident(pop3)operator(.)ident(login)operator(()ident(username)operator(,) ident(password)(\)\)) operator({)
+keyword(if) operator(()operator(!)ident(pop3)operator(.)ident(login)operator(()ident(username)operator(,) ident(password)(\))(\)) operator({)
pre_type(System)operator(.)ident(err)operator(.)ident(println)operator(()string<delimiter(")content(Could not login to server. Check password.)delimiter(")>(\))
ident(pop3)operator(.)ident(disconnect)operator(()(\))
pre_type(System)operator(.)ident(exit)operator(()integer(1)(\))
@@ -9687,9 +9687,9 @@ keyword(import) include(org.apache.commons.net.telnet.TelnetClient)
keyword(def) method(readUntil)operator(() ident(pattern) (\)) operator({)
ident(sb) operator(=) keyword(new) pre_type(StringBuffer)operator(()(\))
- keyword(while) operator(()operator(()ident(ch) operator(=) ident(reader)operator(.)ident(read)operator(()(\)\)) operator(!=) operator(-)integer(1)(\)) operator({)
+ keyword(while) operator(()operator(()ident(ch) operator(=) ident(reader)operator(.)ident(read)operator(()(\))(\)) operator(!=) operator(-)integer(1)(\)) operator({)
ident(sb) operator(<)operator(<) operator(()type(char)(\)) ident(ch)
- keyword(if) operator(()ident(sb)operator(.)ident(toString)operator(()(\))operator(.)ident(endsWith)operator(()ident(pattern)(\)\)) operator({)
+ keyword(if) operator(()ident(sb)operator(.)ident(toString)operator(()(\))operator(.)ident(endsWith)operator(()ident(pattern)(\))(\)) operator({)
keyword(def) ident(found) operator(=) ident(sb)operator(.)ident(toString)operator(()(\))
ident(sb) operator(=) keyword(new) pre_type(StringBuffer)operator(()(\))
keyword(return) ident(found)
@@ -9713,7 +9713,7 @@ ident(writer)operator(.)ident(println)operator(()string<delimiter(")content(10)d
ident(readUntil)operator(() string<delimiter(")content(Selection:)delimiter(")> (\))
ident(writer)operator(.)ident(println)operator(()string<delimiter(")content(3)delimiter(")>(\))
ident(x) operator(=) ident(readUntil)operator(() string<delimiter(")content(Return)delimiter(")> (\))
-keyword(while) operator(()operator(!)ident(x)operator(.)ident(contains)operator(()string<delimiter(')content(SYDNEY)delimiter(')>(\)\)) operator({)
+keyword(while) operator(()operator(!)ident(x)operator(.)ident(contains)operator(()string<delimiter(')content(SYDNEY)delimiter(')>(\))(\)) operator({)
ident(writer)operator(.)ident(println)operator(()(\))
ident(x) operator(=) ident(readUntil)operator(() string<delimiter(")content(Return)delimiter(")> (\))
(})
@@ -9811,22 +9811,22 @@ ident(builder)operator(.)ident(html) operator({)
ident(title) string<delimiter(')content(Howdy there!)delimiter(')>
(})
ident(body) operator({)
- ident(p)operator(()string<delimiter(')content(You typed: )delimiter(')> operator(+) ident(request)operator(.)ident(getParameter)operator(()string<delimiter(')content(PARAM_NAME)delimiter(')>(\)\))
+ ident(p)operator(()string<delimiter(')content(You typed: )delimiter(')> operator(+) ident(request)operator(.)ident(getParameter)operator(()string<delimiter(')content(PARAM_NAME)delimiter(')>(\))(\))
(})
(})
ident(println) ident(writer)operator(.)ident(toString)operator(()(\))
comment(// as a GSP page:)
operator(<)ident(html)operator(>)operator(<)ident(head)operator(>)
-operator(<)ident(title)operator(>)ident(Howdy) ident(there)operator(!)operator(<)regexp<delimiter(/)content(title>)>error()
-operator(<)regexp<delimiter(/)content(head>)>error()
-operator(<)ident(body)operator(>)
+operator(<)ident(title)operator(>)ident(Howdy) ident(there)operator(!)operator(<)regexp<delimiter(/)content(title>)>error(
+)operator(<)regexp<delimiter(/)content(head>)>error(
+)operator(<)ident(body)operator(>)
operator(<)ident(p)operator(>)
-ident(You) key(typed)operator(:) error($)operator({)ident(request)operator(.)ident(getParameter)operator(()string<delimiter(')content(PARAM_NAME)delimiter(')>(\)})
-operator(<)regexp<delimiter(/)content(p>)>error()
-operator(<)regexp<delimiter(/)content(body>)>error()
-operator(<)regexp<delimiter(/)content(html>)>error()
-
+ident(You) key(typed)operator(:) error($)operator({)ident(request)operator(.)ident(getParameter)operator(()string<delimiter(')content(PARAM_NAME)delimiter(')>(\))(})
+operator(<)regexp<delimiter(/)content(p>)>error(
+)operator(<)regexp<delimiter(/)content(body>)>error(
+)operator(<)regexp<delimiter(/)content(html>)>error(
+)
comment(// Request parameters are often encoded by the browser before)
comment(// sending to the server and usually can be printed out as is.)
comment(// If you need to convert, use commons lang StringEscapeUtils#escapeHtml(\))
@@ -9854,14 +9854,14 @@ comment(// web server log.)
comment(// To send errors to custom HTML pages, update the web.xml deployment)
comment(// descriptor to include one or more <error-page> elements, e.g.:)
operator(<)ident(error)operator(-)ident(page)operator(>)
- operator(<)ident(error)operator(-)ident(code)operator(>)integer(404)operator(<)regexp<delimiter(/)content(error-code>)>error()
- operator(<)ident(location)operator(>)regexp<delimiter(/)content(404.html<)delimiter(/)>ident(location)operator(>)
-operator(<)regexp<delimiter(/)content(error-page>)>error()
-operator(<)ident(error)operator(-)ident(page)operator(>)
- operator(<)ident(exception)operator(-)ident(type)operator(>)ident(java)operator(.)ident(lang)operator(.)ident(NullPointerException)operator(<)regexp<delimiter(/)content(exception-type>)>error()
- operator(<)ident(location)operator(>)regexp<delimiter(/)content(NpeError.gsp<)delimiter(/)>ident(location)operator(>)
-operator(<)regexp<delimiter(/)content(error-page>)>error()
-
+ operator(<)ident(error)operator(-)ident(code)operator(>)integer(404)operator(<)regexp<delimiter(/)content(error-code>)>error(
+) operator(<)ident(location)operator(>)regexp<delimiter(/)content(404.html<)delimiter(/)>ident(location)operator(>)
+operator(<)regexp<delimiter(/)content(error-page>)>error(
+)operator(<)ident(error)operator(-)ident(page)operator(>)
+ operator(<)ident(exception)operator(-)ident(type)operator(>)ident(java)operator(.)ident(lang)operator(.)ident(NullPointerException)operator(<)regexp<delimiter(/)content(exception-type>)>error(
+) operator(<)ident(location)operator(>)regexp<delimiter(/)content(NpeError.gsp<)delimiter(/)>ident(location)operator(>)
+operator(<)regexp<delimiter(/)content(error-page>)>error(
+)
comment(// Another trick is to catch an exception within the servlet/gsp code)
comment(// and print it out into the HTML as a comment.)
comment(//----------------------------------------------------------------------------------)
@@ -10077,7 +10077,7 @@ ident(menu) operator(=) operator([)
(])
ident(page) operator(=) string<delimiter(')content(a/aportraitofj.randomhacker.html)delimiter(')>
ident(menu)operator(.)ident(each)operator({)
- keyword(if) operator(()ident(agent) operator(=~) local_variable(it)operator([)integer(0)(]\)) ident(page) operator(=) local_variable(it)operator([)integer(1)(])
+ keyword(if) operator(()ident(agent) operator(=~) local_variable(it)operator([)integer(0)(])(\)) ident(page) operator(=) local_variable(it)operator([)integer(1)(])
(})
ident(response)operator(.)ident(sendRedirect)operator(()string<delimiter(")inline<inline_delimiter($)ident(dir)>content(/)inline<inline_delimiter($)ident(page)>delimiter(")>(\))
@@ -10235,7 +10235,7 @@ comment(// kicking off processing)
ident(html)operator({)
ident(head)operator({) ident(title)operator(()string<delimiter(')content(chemiserie store)delimiter(')>(\)) (})
ident(body) operator({)
- keyword(if) operator(()ident(states)operator([)ident(page)(]\)) ident(process)operator(()ident(page)(\))
+ keyword(if) operator(()ident(states)operator([)ident(page)(])(\)) ident(process)operator(()ident(page)(\))
keyword(else) ident(noSuchPage)operator(()(\))
(})
(})
@@ -10285,7 +10285,7 @@ ident(b) operator(=) keyword(new) ident(MarkupBuilder)operator(()ident(writer)(\
ident(b)operator(.)ident(html)operator({)
ident(head)operator({) ident(title)operator(()string<delimiter(')content(chemiserie store)delimiter(')>(\)) (})
ident(body) operator({)
- keyword(if) operator(()ident(states)operator([)ident(page)(]\)) ident(process)operator(()ident(page)(\))
+ keyword(if) operator(()ident(states)operator([)ident(page)(])(\)) ident(process)operator(()ident(page)(\))
keyword(else) ident(noSuchPage)operator(()(\))
(})
(})
@@ -10327,8 +10327,8 @@ keyword(def) method(shirt)operator(()ident(active)(\)) operator({)
keyword(def) ident(size) operator(=) ident(param)operator(()string<delimiter(')content(shirt_size)delimiter(')>(\))
comment(// sanity check)
keyword(if) operator(()ident(count)(\)) operator({)
- keyword(if) operator(()operator(!)operator(()ident(color) keyword(in) ident(colors)(\)\)) ident(color) operator(=) ident(colors)operator([)integer(0)(])
- keyword(if) operator(()operator(!)operator(()ident(size) keyword(in) ident(sizes)(\)\)) ident(size) operator(=) ident(sizes)operator([)integer(0)(])
+ keyword(if) operator(()operator(!)operator(()ident(color) keyword(in) ident(colors)(\))(\)) ident(color) operator(=) ident(colors)operator([)integer(0)(])
+ keyword(if) operator(()operator(!)operator(()ident(size) keyword(in) ident(sizes)(\))(\)) ident(size) operator(=) ident(sizes)operator([)integer(0)(])
(})
keyword(if) operator(()operator(!)ident(active)(\)) operator({)
keyword(if) operator(()ident(size)(\)) ident(hidden)operator(()string<delimiter(")content(shirt_size)delimiter(")>operator(,) ident(size)(\))
@@ -10339,7 +10339,7 @@ keyword(def) method(shirt)operator(()ident(active)(\)) operator({)
ident(b)operator(.)ident(h1) string<delimiter(')content(T-Shirt)delimiter(')>
ident(b)operator(.)ident(p) string<delimiter(''')content(What a shirt! This baby is decked out with all the options.
It comes with full luxury interior, cotton trim, and a collar
- to make your eyes water! Unit price: )content($)content(33.00)delimiter(''')>
+ to make your eyes water! Unit price: $33.00)delimiter(''')>
ident(b)operator(.)ident(h2) string<delimiter(')content(Options)delimiter(')>
ident(label)operator(()string<delimiter(")content(How Many?)delimiter(")>(\))operator(;) ident(textfield)operator(()string<delimiter(")content(shirt_count)delimiter(")>(\))
ident(label)operator(()string<delimiter(")content(Size?)delimiter(")>(\))operator(;) ident(dropDown)operator(()string<delimiter(")content(shirt_size)delimiter(")>operator(,) ident(sizes)(\))
@@ -10355,8 +10355,8 @@ keyword(def) method(sweater)operator(()ident(active)(\)) operator({)
keyword(def) ident(size) operator(=) ident(param)operator(()string<delimiter(')content(sweater_size)delimiter(')>(\))
comment(// sanity check)
keyword(if) operator(()ident(count)(\)) operator({)
- keyword(if) operator(()operator(!)operator(()ident(color) keyword(in) ident(colors)(\)\)) ident(color) operator(=) ident(colors)operator([)integer(0)(])
- keyword(if) operator(()operator(!)operator(()ident(size) keyword(in) ident(sizes)(\)\)) ident(size) operator(=) ident(sizes)operator([)integer(0)(])
+ keyword(if) operator(()operator(!)operator(()ident(color) keyword(in) ident(colors)(\))(\)) ident(color) operator(=) ident(colors)operator([)integer(0)(])
+ keyword(if) operator(()operator(!)operator(()ident(size) keyword(in) ident(sizes)(\))(\)) ident(size) operator(=) ident(sizes)operator([)integer(0)(])
(})
keyword(if) operator(()operator(!)ident(active)(\)) operator({)
keyword(if) operator(()ident(size)(\)) ident(hidden)operator(()string<delimiter(")content(sweater_size)delimiter(")>operator(,) ident(size)(\))
@@ -10422,17 +10422,17 @@ keyword(def) method(orderText)operator(()(\)) operator({)
keyword(def) ident(shirts) operator(=) ident(param)operator(()string<delimiter(')content(shirt_count)delimiter(')>(\))
keyword(def) ident(sweaters) operator(=) ident(param)operator(()string<delimiter(')content(sweater_count)delimiter(')>(\))
keyword(if) operator(()ident(shirts)(\)) operator({)
- ident(b)operator(.)ident(p)operator(()string<delimiter(""")content(You have ordered )inline<inline_delimiter(${)ident(param('shirt_count'\))inline_delimiter(})>content(
- shirts of size )inline<inline_delimiter(${)ident(param('shirt_size'\))inline_delimiter(})>content(
- and color )inline<inline_delimiter(${)ident(param("shirt_color"\))inline_delimiter(})>content(.)delimiter(""")>(\))
+ ident(b)operator(.)ident(p)operator(()string<delimiter(""")content(You have ordered )inline<inline_delimiter(${)ident(param)operator(()string<delimiter(')content(shirt_count)delimiter(')>(\))inline_delimiter(})>content(
+ shirts of size )inline<inline_delimiter(${)ident(param)operator(()string<delimiter(')content(shirt_size)delimiter(')>(\))inline_delimiter(})>content(
+ and color )inline<inline_delimiter(${)ident(param)operator(()string<delimiter(")content(shirt_color)delimiter(")>(\))inline_delimiter(})>content(.)delimiter(""")>(\))
(})
keyword(if) operator(()ident(sweaters)(\)) operator({)
- ident(b)operator(.)ident(p)operator(()string<delimiter(""")content(You have ordered )inline<inline_delimiter(${)ident(param('sweater_count'\))inline_delimiter(})>content(
- sweaters of size )inline<inline_delimiter(${)ident(param('sweater_size'\))inline_delimiter(})>content(
- and color )inline<inline_delimiter(${)ident(param('sweater_color'\))inline_delimiter(})>content(.)delimiter(""")>(\))
+ ident(b)operator(.)ident(p)operator(()string<delimiter(""")content(You have ordered )inline<inline_delimiter(${)ident(param)operator(()string<delimiter(')content(sweater_count)delimiter(')>(\))inline_delimiter(})>content(
+ sweaters of size )inline<inline_delimiter(${)ident(param)operator(()string<delimiter(')content(sweater_size)delimiter(')>(\))inline_delimiter(})>content(
+ and color )inline<inline_delimiter(${)ident(param)operator(()string<delimiter(')content(sweater_color)delimiter(')>(\))inline_delimiter(})>content(.)delimiter(""")>(\))
(})
keyword(if) operator(()operator(!)ident(sweaters) operator(&&) operator(!)ident(shirts)(\)) ident(b)operator(.)ident(p)operator(()string<delimiter(")content(Nothing!)delimiter(")>(\))
- ident(b)operator(.)ident(p)operator(()string<delimiter(")content(For a total cost of )inline<inline_delimiter(${)ident(calcPrice(\))inline_delimiter(})>delimiter(")>(\))
+ ident(b)operator(.)ident(p)operator(()string<delimiter(")content(For a total cost of )inline<inline_delimiter(${)ident(calcPrice)operator(()(\))inline_delimiter(})>delimiter(")>(\))
(})
keyword(def) method(label)operator(()ident(text)(\)) operator({) ident(b)operator(.)ident(span)operator(()ident(text)(\)) (})
@@ -10448,12 +10448,12 @@ keyword(def) method(dropDown)operator(()ident(name)operator(,) ident(values)(\))
ident(b)operator(.)ident(br)operator(()(\))
(})
keyword(def) method(hidden)operator(()ident(name)(\)) operator({)
- keyword(if) operator(()ident(binding)operator(.)ident(variables)operator(.)ident(containsKey)operator(()ident(name)(\)\)) ident(v) operator(=) ident(binding)operator([)ident(name)(])
+ keyword(if) operator(()ident(binding)operator(.)ident(variables)operator(.)ident(containsKey)operator(()ident(name)(\))(\)) ident(v) operator(=) ident(binding)operator([)ident(name)(])
keyword(else) ident(v) operator(=) string<delimiter(')delimiter(')>
ident(hidden)operator(()ident(name)operator(,) ident(v)(\))
(})
keyword(def) method(hidden)operator(()ident(name)operator(,) ident(value)(\)) operator({) ident(b)operator(.)ident(input)operator(()key(type)operator(:)string<delimiter(')content(hidden)delimiter(')>operator(,) key(name)operator(:)ident(name)operator(,) key(value)operator(:)ident(value)(\)) (})
-keyword(def) method(textfield)operator(()ident(name)(\)) operator({) ident(b)operator(.)ident(input)operator(()key(type)operator(:)string<delimiter(')content(text)delimiter(')>operator(,) key(name)operator(:)ident(name)operator(,) key(value)operator(:)ident(param)operator(()ident(name)operator(,)string<delimiter(')delimiter(')>(\)\))operator(;) ident(b)operator(.)ident(br)operator(()(\)) (})
+keyword(def) method(textfield)operator(()ident(name)(\)) operator({) ident(b)operator(.)ident(input)operator(()key(type)operator(:)string<delimiter(')content(text)delimiter(')>operator(,) key(name)operator(:)ident(name)operator(,) key(value)operator(:)ident(param)operator(()ident(name)operator(,)string<delimiter(')delimiter(')>(\))(\))operator(;) ident(b)operator(.)ident(br)operator(()(\)) (})
keyword(def) method(param)operator(()ident(name)(\)) operator({) ident(request)operator(.)ident(getParameter)operator(()ident(name)(\)) (})
keyword(def) method(param)operator(()ident(name)operator(,) ident(defValue)(\)) operator({)
keyword(def) ident(val) operator(=) ident(request)operator(.)ident(getParameter)operator(()ident(name)(\))
@@ -10568,14 +10568,14 @@ comment(// @@PLEAC@@_20.4)
comment(//----------------------------------------------------------------------------------)
comment(// split paragraphs)
ident(LS) operator(=) pre_type(System)operator(.)ident(properties)operator(.)string<delimiter(')content(line.separator)delimiter(')>
-keyword(new) pre_type(File)operator(()ident(args)operator([)integer(0)(]\))operator(.)ident(text)operator(.)ident(split)operator(()string<delimiter(")inline<inline_delimiter($)ident(LS)>inline<inline_delimiter($)ident(LS)>delimiter(")>(\))operator(.)ident(each)operator({) ident(para) operator(->)
- keyword(if) operator(()ident(para)operator(.)ident(startsWith)operator(()string<delimiter(")content( )delimiter(")>(\)\)) ident(println) string<delimiter(")content(<pre>)char(\\n)inline<inline_delimiter($)ident(para)>char(\\n)content(</pre>)delimiter(")>
+keyword(new) pre_type(File)operator(()ident(args)operator([)integer(0)(])(\))operator(.)ident(text)operator(.)ident(split)operator(()string<delimiter(")inline<inline_delimiter($)ident(LS)>inline<inline_delimiter($)ident(LS)>delimiter(")>(\))operator(.)ident(each)operator({) ident(para) operator(->)
+ keyword(if) operator(()ident(para)operator(.)ident(startsWith)operator(()string<delimiter(")content( )delimiter(")>(\))(\)) ident(println) string<delimiter(")content(<pre>)char(\\n)inline<inline_delimiter($)ident(para)>char(\\n)content(</pre>)delimiter(")>
keyword(else) operator({)
- ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?m\)^(>.*?\))content($)delimiter(/)>operator(,) regexp<delimiter(/)content($)content(1<br )content(\\/)content(>)delimiter(/)>(\)) comment(// quoted text)
- ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(<URL:(.*\)>)delimiter(/)>operator(,) regexp<delimiter(/)content(<a href=")content($)content(1">)content($)content(1<)content(\\/)content(a>)delimiter(/)>(\)) comment(// embedded URL)
- ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((http:)char(\\S)content(+\))delimiter(/)>operator(,) regexp<delimiter(/)content(<a href=")content($)content(1">)content($)content(1<)content(\\/)content(a>)delimiter(/)>(\)) comment(// guessed URL)
- ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()string<delimiter(')char(\\\\)content(*()char(\\\\)content(S+\))char(\\\\)content(*)delimiter(')>operator(,) regexp<delimiter(/)content(<strong>)content($)content(1<)content(\\/)content(strong>)delimiter(/)>(\)) comment(// this is *bold* here)
- ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\b)content(_()char(\\S)content(+\)_)char(\\b)delimiter(/)>operator(,) regexp<delimiter(/)content(<em>)content($)content(1<)content(\\/)content(em>)delimiter(/)>(\)) comment(// this is _italic_ here)
+ ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?m\)^(>.*?\))content($)delimiter(/)>operator(,) regexp<delimiter(/)content($)content(1<br )char(\\/)content(>)delimiter(/)>(\)) comment(// quoted text)
+ ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(<URL:(.*\)>)delimiter(/)>operator(,) regexp<delimiter(/)content(<a href=")content($)content(1">)content($)content(1<)char(\\/)content(a>)delimiter(/)>(\)) comment(// embedded URL)
+ ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((http:)char(\\S)content(+\))delimiter(/)>operator(,) regexp<delimiter(/)content(<a href=")content($)content(1">)content($)content(1<)char(\\/)content(a>)delimiter(/)>(\)) comment(// guessed URL)
+ ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()string<delimiter(')char(\\\\)content(*()char(\\\\)content(S+\))char(\\\\)content(*)delimiter(')>operator(,) regexp<delimiter(/)content(<strong>)content($)content(1<)char(\\/)content(strong>)delimiter(/)>(\)) comment(// this is *bold* here)
+ ident(para) operator(=) ident(para)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)char(\\b)content(_()char(\\S)content(+\)_)char(\\b)delimiter(/)>operator(,) regexp<delimiter(/)content(<em>)content($)content(1<)char(\\/)content(em>)delimiter(/)>(\)) comment(// this is _italic_ here)
ident(println) string<delimiter(")content(<p>)char(\\n)inline<inline_delimiter($)ident(para)>char(\\n)content(</p>)delimiter(")> comment(// add paragraph tags)
(})
(})
@@ -10583,9 +10583,9 @@ keyword(new) pre_type(File)operator(()ident(args)operator([)integer(0)(]\))opera
keyword(def) method(encodeEmail)operator(()ident(email)(\)) operator({)
ident(println) string<delimiter(")content(<table>)delimiter(")>
ident(email) operator(=) pre_type(URLEncoder)operator(.)ident(encode)operator(()ident(email)(\))
- ident(email) operator(=) ident(text)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(()char(\\n)content([ )char(\\t)content(]+\))delimiter(/)>operator(,) operator(/) operator(.) regexp<delimiter(/)content(\) )delimiter(/)>operator(/) ident(continuation) ident(lines)
+ ident(email) operator(=) ident(text)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content(()char(\\n)content([ )char(\\t)content(]+\))delimiter(/)>operator(,) regexp<delimiter(/)content( . )delimiter(/)>(\)) comment(// continuation lines)
ident(email) operator(=) ident(text)operator(.)ident(replaceAll)operator(()regexp<delimiter(/)content((?m\)^()char(\\S)content(+?:\))char(\\s)content(*(.*?\))content($)delimiter(/)>operator(,)
- regexp<delimiter(/)content(<tr><th align="left">)content($)content(1<)content(\\/)content(th><td>)content($)content(2<)content(\\/)content(td><)content(\\/)content(tr>)delimiter(/)>(\))operator(;)
+ regexp<delimiter(/)content(<tr><th align="left">)content($)content(1<)char(\\/)content(th><td>)content($)content(2<)char(\\/)content(td><)char(\\/)content(tr>)delimiter(/)>(\))operator(;)
ident(println) ident(email)
ident(println) string<delimiter(")content(</table>)delimiter(")>
(})
@@ -10673,11 +10673,11 @@ ident(urls)operator(.)ident(each)operator({) ident(url) operator(->)
ident(head) operator(=) keyword(new) ident(HeadMethod)operator(()ident(url)(\))
ident(client)operator(.)ident(executeMethod)operator(()ident(head)(\))
ident(lastModified) operator(=) ident(head)operator(.)ident(getResponseHeader)operator(()string<delimiter(")content(last-modified)delimiter(")>(\))operator(?)operator(.)ident(value)
- ident(urlInfo)operator([)ident(df)operator(.)ident(parse)operator(()ident(lastModified)(\)])operator(=)ident(url)
+ ident(urlInfo)operator([)ident(df)operator(.)ident(parse)operator(()ident(lastModified)(\))(])operator(=)ident(url)
(})
ident(urlInfo)operator(.)ident(keySet)operator(()(\))operator(.)ident(sort)operator(()(\))operator(.)ident(each)operator({) ident(key) operator(->)
- ident(println) string<delimiter(")inline<inline_delimiter($)ident(key)>content( )inline<inline_delimiter(${)ident(urlInfo[key])inline_delimiter(})>delimiter(")>
+ ident(println) string<delimiter(")inline<inline_delimiter($)ident(key)>content( )inline<inline_delimiter(${)ident(urlInfo)operator([)ident(key)(])inline_delimiter(})>delimiter(")>
(})
comment(// =>)
comment(// Sun Jan 07 21:48:15 EST 2007 http://www.apache.org/)
@@ -10706,9 +10706,9 @@ ident(println) ident(htmlStr)
comment(// SimpleTemplateEngine version:)
keyword(def) ident(html) operator(=) string<delimiter(''')content(
<!-- simple.template for internal template(\) function -->
-<HTML><HEAD><TITLE>Report for )inline<inline_delimiter($)ident(username)>content(</TITLE></HEAD>
-<BODY><H1>Report for )inline<inline_delimiter($)ident(username)>content(</H1>
-)inline<inline_delimiter($)ident(username)>content( logged in )inline<inline_delimiter($)ident(count)>content( times, for a total of )inline<inline_delimiter($)ident(total)>content( minutes.
+<HTML><HEAD><TITLE>Report for $username</TITLE></HEAD>
+<BODY><H1>Report for $username</H1>
+$username logged in $count times, for a total of $total minutes.
)delimiter(''')>
keyword(def) ident(engine) operator(=) keyword(new) ident(groovy)operator(.)ident(text)operator(.)ident(SimpleTemplateEngine)operator(()(\))
@@ -10722,7 +10722,7 @@ ident(user) operator(=) string<delimiter(')content(Peter)delimiter(')>
keyword(def) ident(sql) operator(=) ident(Sql)operator(.)ident(newInstance)operator(()string<delimiter(')content(jdbc:mysql://localhost:3306/mydb)delimiter(')>operator(,) string<delimiter(')content(dbuser)delimiter(')>operator(,)
string<delimiter(')content(dbpass)delimiter(')>operator(,) string<delimiter(')content(com.mysql.jdbc.Driver)delimiter(')>(\))
ident(sql)operator(.)ident(query)operator(()string<delimiter(")content(SELECT COUNT(duration\),SUM(duration\) FROM logins WHERE username=')inline<inline_delimiter($)ident(user)>content(')delimiter(")>(\)) operator({) ident(answer) operator(->)
- ident(println) operator(()ident(template)operator(.)ident(make)operator(()key(username)operator(:)ident(user)operator(,) key(count)operator(:)ident(answer)operator([)integer(0)(])operator(,) key(total)operator(:)ident(answer)operator([)integer(1)(]\)\))
+ ident(println) operator(()ident(template)operator(.)ident(make)operator(()key(username)operator(:)ident(user)operator(,) key(count)operator(:)ident(answer)operator([)integer(0)(])operator(,) key(total)operator(:)ident(answer)operator([)integer(1)(])(\))(\))
(})
comment(//----------------------------------------------------------------------------------)
@@ -10740,8 +10740,8 @@ ident(println) ident(connection)operator(.)ident(responseCode)
comment(// manually setting header field)
ident(connection) operator(=) ident(url)operator(.)ident(openConnection)operator(()(\))
ident(df) operator(=) keyword(new) ident(java)operator(.)ident(text)operator(.)ident(SimpleDateFormat) operator(()string<delimiter(")content(EEE, dd MMM yyyy HH:mm:ss 'GMT')delimiter(")>(\))
-ident(df)operator(.)ident(setTimeZone)operator(()pre_type(TimeZone)operator(.)ident(getTimeZone)operator(()string<delimiter(')content(GMT)delimiter(')>(\)\))
-ident(connection)operator(.)ident(setRequestProperty)operator(()string<delimiter(")content(If-Modified-Since)delimiter(")>operator(,)ident(df)operator(.)ident(format)operator(()keyword(new) pre_type(Date)operator(()integer(2007)operator(,)integer(1)operator(,)integer(18)(\)\)\))operator(;)
+ident(df)operator(.)ident(setTimeZone)operator(()pre_type(TimeZone)operator(.)ident(getTimeZone)operator(()string<delimiter(')content(GMT)delimiter(')>(\))(\))
+ident(connection)operator(.)ident(setRequestProperty)operator(()string<delimiter(")content(If-Modified-Since)delimiter(")>operator(,)ident(df)operator(.)ident(format)operator(()keyword(new) pre_type(Date)operator(()integer(2007)operator(,)integer(1)operator(,)integer(18)(\))(\))(\))operator(;)
ident(connection)operator(.)ident(connect)operator(()(\))
ident(println) ident(connection)operator(.)ident(responseCode)
comment(//----------------------------------------------------------------------------------)
@@ -10778,8 +10778,8 @@ ident(regex) operator(=) regexp<delimiter(/)content(^()char(\\S)content(+\) ()ch
ident(LOGFILE)operator(.)ident(trim)operator(()(\))operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(each)operator({) ident(line) operator(->)
ident(m) operator(=) ident(line) operator(=~) ident(regex)
- keyword(if) operator(()ident(m)operator(.)ident(matches)operator(()(\)\)) operator({)
- keyword(for) operator(()ident(idx) keyword(in) integer(0)operator(..<)ident(fields)operator(.)ident(size)operator(()(\)\)) operator({) ident(println) string<delimiter(")inline<inline_delimiter(${)ident(fields[idx])inline_delimiter(})>content(=)inline<inline_delimiter(${)ident(m[0][idx+1])inline_delimiter(})>delimiter(")> (})
+ keyword(if) operator(()ident(m)operator(.)ident(matches)operator(()(\))(\)) operator({)
+ keyword(for) operator(()ident(idx) keyword(in) integer(0)operator(..<)ident(fields)operator(.)ident(size)operator(()(\))(\)) operator({) ident(println) string<delimiter(")inline<inline_delimiter(${)ident(fields)operator([)ident(idx)(])inline_delimiter(})>content(=)inline<inline_delimiter(${)ident(m)operator([)integer(0)(])operator([)ident(idx)operator(+)integer(1)(])inline_delimiter(})>delimiter(")> (})
ident(println)operator(()(\))
(})
(})
@@ -10821,12 +10821,12 @@ type(class) class(Summary) operator({)
ident(totals) operator(=) operator([)operator(:)(])
ident(LOGFILE)operator(.)ident(trim)operator(()(\))operator(.)ident(split)operator(()string<delimiter(')content(\\n)delimiter(')>(\))operator(.)ident(each)operator({) ident(line) operator(->)
ident(m) operator(=) ident(line) operator(=~) ident(regex)
- keyword(if) operator(()ident(m)operator(.)ident(matches)operator(()(\)\)) operator({)
+ keyword(if) operator(()ident(m)operator(.)ident(matches)operator(()(\))(\)) operator({)
ident(date) operator(=) ident(m)operator([)integer(0)(])operator([)ident(fields)operator(.)ident(indexOf)operator(()string<delimiter(')content(date)delimiter(')>(\))operator(+)integer(1)(])
- ident(s) operator(=) ident(totals)operator(.)ident(get)operator(()ident(date)operator(,) keyword(new) ident(Summary)operator(()(\)\))
+ ident(s) operator(=) ident(totals)operator(.)ident(get)operator(()ident(date)operator(,) keyword(new) ident(Summary)operator(()(\))(\))
ident(s)operator(.)ident(accessCount)operator(++)
keyword(if) operator(()ident(m)operator([)integer(0)(])operator([)ident(fields)operator(.)ident(indexOf)operator(()string<delimiter(')content(method)delimiter(')>(\))operator(+)integer(1)(]) operator(==) string<delimiter(')content(POST)delimiter(')>(\)) ident(s)operator(.)ident(postCount)operator(++)
- ident(s)operator(.)ident(totalBytes) operator(+=) operator(()ident(m)operator([)integer(0)(])operator([)ident(fields)operator(.)ident(indexOf)operator(()string<delimiter(')content(bytes)delimiter(')>(\))operator(+)integer(1)(]\))operator(.)ident(toInteger)operator(()(\))
+ ident(s)operator(.)ident(totalBytes) operator(+=) operator(()ident(m)operator([)integer(0)(])operator([)ident(fields)operator(.)ident(indexOf)operator(()string<delimiter(')content(bytes)delimiter(')>(\))operator(+)integer(1)(])(\))operator(.)ident(toInteger)operator(()(\))
keyword(def) ident(url) operator(=) ident(m)operator([)integer(0)(])operator([)ident(fields)operator(.)ident(indexOf)operator(()string<delimiter(')content(url)delimiter(')>(\))operator(+)integer(1)(])
keyword(if) operator(()ident(url) operator(==) string<delimiter(')content(/)delimiter(')>(\)) ident(s)operator(.)ident(homeCount)operator(++)
ident(s)operator(.)ident(what)operator([)ident(url)(]) operator(=) ident(s)operator(.)ident(what)operator(.)ident(get)operator(()ident(url)operator(,) integer(0)(\)) operator(+) integer(1)
@@ -10839,11 +10839,11 @@ ident(totals)operator(.)ident(each)operator({) ident(key)operator(,) ident(s) op
ident(report)operator(()ident(key)operator(,) ident(s)operator(.)ident(hosts)operator(.)ident(size)operator(()(\))operator(,) ident(s)operator(.)ident(accessCount)operator(,) ident(s)operator(.)ident(what)operator(.)ident(size)operator(()(\))operator(,) ident(s)operator(.)ident(postCount)operator(,) ident(s)operator(.)ident(homeCount)operator(,) ident(s)operator(.)ident(totalBytes)(\))
(})
ident(v) operator(=) ident(totals)operator(.)ident(values)operator(()(\))
-ident(report)operator(()string<delimiter(')content(Grand Total)delimiter(')>operator(,) ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(hosts)operator(.)ident(size)operator(()(\)})operator(,) ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(accessCount)(})operator(,) ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(what)operator(.)ident(size)operator(()(\)})operator(,)
+ident(report)operator(()string<delimiter(')content(Grand Total)delimiter(')>operator(,) ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(hosts)operator(.)ident(size)operator(()(\))(})operator(,) ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(accessCount)(})operator(,) ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(what)operator(.)ident(size)operator(()(\))(})operator(,)
ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(postCount)(})operator(,) ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(homeCount)(})operator(,) ident(v)operator(.)ident(sum)operator({)local_variable(it)operator(.)ident(totalBytes)(}) (\))
keyword(def) method(report)operator(()ident(a)operator(,) ident(b)operator(,) ident(c)operator(,) ident(d)operator(,) ident(e)operator(,) ident(f)operator(,) ident(g)(\)) operator({)
- ident(printf) operator(()string<delimiter(")content(%12s %6s %8s %8s %8s %8s %10s)char(\\n)delimiter(")>operator(,) operator([)ident(a)operator(,)ident(b)operator(,)ident(c)operator(,)ident(d)operator(,)ident(e)operator(,)ident(f)operator(,)ident(g)(]\))
+ ident(printf) operator(()string<delimiter(")content(%12s %6s %8s %8s %8s %8s %10s)char(\\n)delimiter(")>operator(,) operator([)ident(a)operator(,)ident(b)operator(,)ident(c)operator(,)ident(d)operator(,)ident(e)operator(,)ident(f)operator(,)ident(g)(])(\))
(})
comment(// =>)
comment(// Date Hosts Accesses Unidocs POST Home Bytes)
@@ -10893,7 +10893,7 @@ comment(//----------------------------------------------------------------------
ident(WordReplaceFilter)operator(()ident(b)operator(,) ident(a)(\)) operator({) ident(before) operator(=) ident(b)operator(;) ident(after) operator(=) ident(a) (})
type(void) ident(characters)operator(()ident(XMLString) ident(text)operator(,) ident(Augmentations) ident(augs)(\)) operator({)
type(char)type([]) ident(c) operator(=) ident(text)operator(.)ident(toString)operator(()(\))operator(.)ident(replaceAll)operator(()ident(before)operator(,) ident(after)(\))
- local_variable(super)operator(.)ident(characters)operator(()keyword(new) ident(XMLString)operator(()ident(c)operator(,) integer(0)operator(,) ident(c)operator(.)ident(size)operator(()(\)\))operator(,) ident(augs)(\))
+ local_variable(super)operator(.)ident(characters)operator(()keyword(new) ident(XMLString)operator(()ident(c)operator(,) integer(0)operator(,) ident(c)operator(.)ident(size)operator(()(\))(\))operator(,) ident(augs)(\))
(})
type(void) ident(setProperty)operator(()pre_type(String) ident(s)operator(,) pre_type(Object) ident(o)(\))operator({)(})
(})
@@ -10903,7 +10903,7 @@ comment(//----------------------------------------------------------------------
(])
ident(parser) operator(=) keyword(new) ident(DOMParser)operator(()(\))
ident(parser)operator(.)ident(setProperty)operator(()string<delimiter(")content(http://cyberneko.org/html/properties/filters)delimiter(")>operator(,) ident(filters)(\))
- ident(parser)operator(.)ident(parse)operator(()keyword(new) ident(InputSource)operator(()keyword(new) pre_type(StringReader)operator(()ident(input)(\)\)\))
+ ident(parser)operator(.)ident(parse)operator(()keyword(new) ident(InputSource)operator(()keyword(new) pre_type(StringReader)operator(()ident(input)(\))(\))(\))
comment(//----------------------------------------------------------------------------------)
@@ -10936,7 +10936,7 @@ type(class) class(HrefReplaceFilter) directive(extends) ident(DefaultFilter) ope
keyword(def) ident(idx) operator(=) ident(attributes)operator(.)ident(getIndex)operator(()string<delimiter(')content(href)delimiter(')>(\))
keyword(if) operator(()ident(idx) operator(!=) operator(-)integer(1)(\)) operator({)
keyword(def) ident(newtext) operator(=) ident(attributes)operator(.)ident(getValue)operator(()ident(idx)(\))operator(.)ident(replaceAll)operator(()ident(before)operator(,) ident(after)(\))
- ident(attributes)operator(.)ident(setValue)operator(()ident(idx)operator(,) pre_type(URLEncoder)operator(.)ident(encode)operator(()ident(newtext)(\)\))
+ ident(attributes)operator(.)ident(setValue)operator(()ident(idx)operator(,) pre_type(URLEncoder)operator(.)ident(encode)operator(()ident(newtext)(\))(\))
(})
local_variable(super)operator(.)ident(startElement)operator(()ident(element)operator(,) ident(attributes)operator(,) ident(augs)(\))
(})
@@ -10948,6 +10948,6 @@ ident(XMLDocumentFilter)type([]) ident(myfilters) operator(=) operator([)
(])
ident(parser) operator(=) keyword(new) ident(DOMParser)operator(()(\))
ident(parser)operator(.)ident(setProperty)operator(()string<delimiter(")content(http://cyberneko.org/html/properties/filters)delimiter(")>operator(,) ident(myfilters)(\))
-ident(parser)operator(.)ident(parse)operator(()keyword(new) ident(InputSource)operator(()keyword(new) pre_type(StringReader)operator(()ident(input)(\)\)\))
+ident(parser)operator(.)ident(parse)operator(()keyword(new) ident(InputSource)operator(()keyword(new) pre_type(StringReader)operator(()ident(input)(\))(\))(\))
comment(//----------------------------------------------------------------------------------)
diff --git a/test/scanners/groovy/strange.expected.raydebug b/test/scanners/groovy/strange.expected.raydebug
new file mode 100644
index 0000000..d7882fe
--- /dev/null
+++ b/test/scanners/groovy/strange.expected.raydebug
@@ -0,0 +1 @@
+ident(foo)operator(?)ident(bar)operator(:)string<delimiter(')content(unknown)delimiter(')> comment(// bar is not a key!) \ No newline at end of file
diff --git a/test/scanners/groovy/strange.in.groovy b/test/scanners/groovy/strange.in.groovy
new file mode 100644
index 0000000..a844c9a
--- /dev/null
+++ b/test/scanners/groovy/strange.in.groovy
@@ -0,0 +1 @@
+foo?bar:'unknown' // bar is not a key! \ No newline at end of file
diff --git a/test/scanners/groovy/strings.expected.raydebug b/test/scanners/groovy/strings.expected.raydebug
new file mode 100644
index 0000000..df244cc
--- /dev/null
+++ b/test/scanners/groovy/strings.expected.raydebug
@@ -0,0 +1,34 @@
+comment(/* This is valid Groovy code. */)
+
+ident(var) operator(=) integer(1)
+keyword(def) method(another)operator(()ident(a)operator(,)ident(b)operator(,)ident(c)operator(,)ident(d)(\)) operator({) (})
+
+comment(// "\\/" Error?)
+string<delimiter(")content(text )inline<inline_delimiter($)ident(var)>content( )inline<inline_delimiter($)ident(var)>content(.meth text )inline<inline_delimiter(${)keyword(if) operator(()integer(1)(\)) operator({)ident(another)operator(()string<delimiter(")content(st)delimiter(")>operator(,) string<delimiter(')content(ri)delimiter(')>operator(,) regexp<delimiter(/)content(ng)delimiter(/)>operator(,) string<delimiter(")content(})delimiter(")>(\))(})inline_delimiter(})>content( )char(\\t)content( text )char(\\n)content( text )char(\\uafaf)content( text )char(\\$)content(novar text )char(\\')char(\\")char(\\\\)content( )delimiter(")> comment(//';)
+
+string<delimiter(')content(text $novar text ${not_interpreted} \\t text \\n text \\uafaf text \\$novar text )char(\\')content(\\")char(\\\\)content( )delimiter(')>operator(;)
+
+regexp<delimiter(/)content(text )inline<inline_delimiter($)ident(var)>content( )inline<inline_delimiter($)ident(var)>content(.meth text )inline<inline_delimiter(${)keyword(if) operator(()integer(1)(\)) operator({)ident(another)operator(()string<delimiter(")content(st)delimiter(")>operator(,) string<delimiter(')content(ri)delimiter(')>operator(,) regexp<delimiter(/)content(ng)delimiter(/)>operator(,) string<delimiter(")content(})delimiter(")>(\))(})inline_delimiter(})>content( )char(\\t)content( text )char(\\n)content( text )char(\\uafaf)content( text )content(\\$)content(var )char(\\\\)inline<inline_delimiter($)ident(var)>content( text )char(\\')char(\\")char(\\\\)char(\\/)content( )delimiter(/)>operator(;)
+
+ident(youcannotescape) operator(=) integer(0)operator(;)
+ident(println)operator(()regexp<delimiter(/)content(\\$)content(youcannotescape)inline<inline_delimiter($)ident(var)>delimiter(/)>(\))
+
+comment(// "\\/" Error?)
+operator(~)string<delimiter(")content(text )inline<inline_delimiter($)ident(var)>content( )inline<inline_delimiter($)ident(var)>content(.meth text )inline<inline_delimiter(${)keyword(if) operator(()integer(1)(\)) operator({)ident(another)operator(()string<delimiter(")content(st)delimiter(")>operator(,) string<delimiter(')content(ri)delimiter(')>operator(,) regexp<delimiter(/)content(ng)delimiter(/)>operator(,) string<delimiter(")content(})delimiter(")>(\))(})inline_delimiter(})>content( )char(\\t)content( text )char(\\n)content( text )char(\\uafaf)content( text )char(\\$)content(novar text )char(\\')char(\\")char(\\\\)content( )delimiter(")> comment(//';)
+
+operator(~)string<delimiter(')content(text $novar text ${0} \\t text \\n text \\uafaf text \\$novar text )char(\\')content(\\")char(\\\\)content( )delimiter(')>operator(;)
+
+operator(~)regexp<delimiter(/)content(text )inline<inline_delimiter($)ident(var)>content( )inline<inline_delimiter($)ident(var)>content(.meth text )inline<inline_delimiter(${)keyword(if) operator(()integer(1)(\)) operator({)ident(another)operator(()string<delimiter(")content(st)delimiter(")>operator(,) string<delimiter(')content(ri)delimiter(')>operator(,) regexp<delimiter(/)content(ng)delimiter(/)>operator(,) string<delimiter(")content(})delimiter(")>(\))(})inline_delimiter(})>content( )char(\\t)content( (text\) )char(\\n)content( text )char(\\uafaf)content( text )content(\\$)content(var )char(\\\\)inline<inline_delimiter($)ident(var)>content( text )char(\\')char(\\")char(\\\\)char(\\/)content( )delimiter(/)>operator(;)
+
+ident(println)operator(()operator(~)regexp<delimiter(/)content(\\$)content(youcannotescape)inline<inline_delimiter($)ident(var)>delimiter(/)>(\))
+
+ident(println) string<delimiter(")content(Age )inline<inline_delimiter($)ident(age)>content(: )inline<inline_delimiter(${)ident(list)operator(.)ident(collect)operator({)local_variable(it)operator(.)string<delimiter(')content(name)delimiter(')>(})operator(.)ident(join)operator(()string<delimiter(')content(, )delimiter(')>(\))inline_delimiter(})>delimiter(")>
+
+string<delimiter(""")content(
+text )inline<inline_delimiter($)ident(var)>content( )inline<inline_delimiter($)ident(var)>content(.meth text )inline<inline_delimiter(${)keyword(if) operator(()integer(1)(\)) operator({)ident(another)operator(()string<delimiter(")content(st)delimiter(")>operator(,) string<delimiter(')content(ri)delimiter(')>operator(,) regexp<delimiter(/)content(ng)delimiter(/)>operator(,) string<delimiter(")content(})delimiter(")>(\))(})inline_delimiter(})>content( )char(\\t)content( text )char(\\n)content( text )char(\\uafaf)content( text )char(\\$)content(novar text )char(\\')char(\\")char(\\\\)content( )char(\\")content(""
+)delimiter(""")>
+
+string<delimiter(''')content(
+text $novar text ${not_interpreted} )content(\\t)content( text )content(\\n)content( text )content(\\uafaf)content( text )content(\\$)content(novar text )char(\\')content(\\")char(\\\\)content( )char(\\')content(''
+)delimiter(''')>
+
diff --git a/test/scanners/groovy/strings.in.groovy b/test/scanners/groovy/strings.in.groovy
new file mode 100644
index 0000000..1f6310d
--- /dev/null
+++ b/test/scanners/groovy/strings.in.groovy
@@ -0,0 +1,34 @@
+/* This is valid Groovy code. */
+
+var = 1
+def another(a,b,c,d) { }
+
+// "\/" Error?
+"text $var $var.meth text ${if (1) {another("st", 'ri', /ng/, "}")}} \t text \n text \uafaf text \$novar text \'\"\\ " //';
+
+'text $novar text ${not_interpreted} \t text \n text \uafaf text \$novar text \'\"\\ ';
+
+/text $var $var.meth text ${if (1) {another("st", 'ri', /ng/, "}")}} \t text \n text \uafaf text \$var \\$var text \'\"\\\/ /;
+
+youcannotescape = 0;
+println(/\$youcannotescape$var/)
+
+// "\/" Error?
+~"text $var $var.meth text ${if (1) {another("st", 'ri', /ng/, "}")}} \t text \n text \uafaf text \$novar text \'\"\\ " //';
+
+~'text $novar text ${0} \t text \n text \uafaf text \$novar text \'\"\\ ';
+
+~/text $var $var.meth text ${if (1) {another("st", 'ri', /ng/, "}")}} \t (text) \n text \uafaf text \$var \\$var text \'\"\\\/ /;
+
+println(~/\$youcannotescape$var/)
+
+println "Age $age: ${list.collect{it.'name'}.join(', ')}"
+
+"""
+text $var $var.meth text ${if (1) {another("st", 'ri', /ng/, "}")}} \t text \n text \uafaf text \$novar text \'\"\\ \"""
+"""
+
+'''
+text $novar text ${not_interpreted} \t text \n text \uafaf text \$novar text \'\"\\ \'''
+'''
+