これ以降は、バージョン 1.0.x は安定版として、上位互換性を重視します。
Visitor.visitNode(TopLevelClass.Node)
を追加し、Visitor.visitAll(TopLevelClass.Node)
の仕様を変更しました。従来の仕様では、visitAll
は行きがけ順で部分木をトラバースするとだけ書かれていましたが、新しい仕様では、visitNode
を呼び出し、子について再帰的に visitAll
を呼び出すと明記されました。また、オーバーライドによって挙動を変更してもよいことにしました。parseType(File)
は廃止されました。--target version:array
が動作していなかった。--debug
オプションが常に有効だった。Visitor#visit(...)
をすべて protected
にしました。visitAll
と間違えてvisit
を呼び出してしまうのを防ぐため。parseType(File)
はVersion 1.0.0で廃止されます。また、parseType(file)
はparseType(file.getName(), file, null, 8)
の呼び出しと等価でしたが、parseType(file, encoding)
はparseType(file.getPath(), file, encoding, 8)
の呼び出しと等価になり、file.getName()
から file.getPath()
に変更されました。modifyWholeTree
についてドキュメントを追加。$package
。代替手段は $parser
です。#
)。代替手段はありません。$Node.accept
。代替手段は Visitor#visitAll(Node)
です。$WHITE_TOKEN
)。代替手段は、$white
修飾子です。$parsable $protected
と $protected $parsable
。代替手段は、$protected-parsable $protected
です。Node
で親のノードへのポインタを持つのはやめました(DAGを作れない、ノードを書き換えるときに考慮するのが面倒、といった
理由から)。Node#setParentNode
、Node#getParentNode
は廃止されました。Default.Node#replace
も廃止され、代わりにreplaceChild
がpublic
になりました。ただし、コンパイル時に --x-parent-support
オプションを用いることで、古いバージョンと互換性のあるコードが出力されます。||
&&
--
getGCCStylePositionString()
をカラム番号も出力するように変更しました。--debug
オプションを用いてコンパイルすることで、出力されるパーザは、
System.err
へ出力します。System.err
へ出力します。!!
**
++
??
$parser 完全限定名;
の形式で指定するようになりました。従来の、$package
と入力されるファイルの名前によって指定する方式も利用できますが、将来のバージョンではサポートされません。従来の方式を用いた場合、警告メッセージが出力されます。Visitor.visitAll
がトラバースしていなかった$protected $constructor
, $protected-parsable
追加
Token#isWhite()
を追加Default.LexicalAnalyzer#nextChar()
を追加Token#getOriginalImage()
を追加Token
コンストラクタの引数に originalImage
を追加Default.Token#toString()
を仕様変更(getImage
→getOriginalImage
)--target
オプションが指定されていない場合、警告するようにした--target
オプションの引数がサポートされていない値の場合、警告するようにした--target 1.5
で generics をサポートしたバージョンを出力しますが、テストされていません。Token
コンストラクタを呼び出しているプログラムは修正が必要です。Default.LexicalAnalyzer
に、text の一部分を解析するためのコンストラクタを追加Default.LexicalAnalyzer#length
を改名して仕様変更ParseException
に、getGCCStylePositionString()
を追加Default.Type
の extends
を仕様変更、Default.Type
が出力される条件を変更Default.LexicalAnalyzer#length
が改名されたため、互換性はありません。それ以外は互換性があります。TopLevelClass.Default.Type#replaceChild()
のシグネチャが間違っていた--target 1.2
を追加getParentNode
が null
を返していたmain
が出力されるタイミングが、仕様通りでなかった$protected $parsable
が文法上 modifiers
として許されていなかったDefault.Token
に、Token
を引数に取るコンストラクタを追加assert
をサポートしないバージョン(未テスト)NullPointerException
が発生していたparseFoo
の1つが、エンコーディング名を要求するようになりましたreplaceSubtree
は、replace
に改名され、引数とレシーバが逆になりましたmain
は常には出力されなくなりましたFoo
が protected の場合、parseFoo
も protected になりましたLexicalAnalizer
→ LexicalAnalyzer
LexicalAnalyzer#next()
の仕様変更:EOF時にnull
を返さないA { x:"a" "b" | y:"a" "c" }
をコンパイル可能にAmbiguousGrammarError
追加LexicalAnalyzer
が改名されたため、LexicalAnalyzer
に関して互換性がありませんVisitor#visit
のディスパッチは、Visitor#visit(Node)
ではなく Node#accept
が行うようになりました。このため、Visitor#visit(Node)
をオーバーライドしても、他のvisit
は呼び出されますcreateNode throws ParseException
AntTask
が、casesensitive
をサポートするようになりました$private
追加
createNode
がParseException
を投げるようになったため、createNode
を呼び出しているプログラムに修正が必要になる可能性があります。