これ以降は、バージョン 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 → LexicalAnalyzerLexicalAnalyzer#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 ParseExceptionAntTask が、casesensitiveをサポートするようになりました$private 追加
createNode がParseExceptionを投げるようになったため、createNodeを呼び出しているプログラムに修正が必要になる可能性があります。