Deneyimlerim, kodumun düzgün bir şekilde derlenmiş olup olmadığını kontrol etmenin en kolay yolunun otomatik testleri çalıştırmasıdır. Derleyici, testleri çalıştırmak için derleme veya yalnızca dosyaların doğru bir şekilde okunup denetlenmediği konusunda aynı işi yapacak. Bunu yapmanın bir yolu olmadığına emin değilim ama
MRG
MRI'lar ayrıştırıcı, bunu nasıl erişileceği belirli bir başvuru bulamadık C ile yazılmış. Geçerli bir yakut için
rbx-2.2.10 :039 > Rubinius::ToolSets::Runtime::Melbourne.parse_file("./todo.txt")
SyntaxError: expecting keyword_do or '{' or '(': ./todo.txt:2:17
ve: Sadece birisi Rubinius Rubinius yılında
... Yakut daha Yakut farkında yapım biraz zaman geçirdim olsaydı, doğrudan Melbourne aracılığıyla ayrıştırıcı erişim vardır dosya:
rbx-2.2.10 :044 > Rubinius::ToolSets::Runtime::Melbourne.parse_file('./valid.rb')
=> #<Rubinius::ToolSets::Runtime::AST::Class:0x1e6b4 @name=# <Rubinius::ToolSets::Runtime::AST::ClassName:0x1e6b8 @name=:RubyStuff @line=1 @superclass=#<Rubinius::ToolSets::Runtime::AST::NilLiteral:0x1e6bc @line=1>> @body=#<Rubinius::ToolSets::Runtime::AST::EmptyBody:0x1e6c8 @line=1> @line=1 @superclass=#<Rubinius::ToolSets::Runtime::AST::NilLiteral:0x1e6bc @line=1>>
Komut Satırı
Şu anda usin ediyoruz Ruby'yi ayrıştırmak için g komut satırı araçları. Eğer Ruby dosyalar arasında döngü bazı yapıyorsanız, belki sadece yanı komut satırı götürme ve benzeri şeyler yapmalıyım: Ruby şöyle
[email protected]:/projects/open/compile-test$ find . | grep ".rb$" | xargs ruby -c
Syntax OK
[email protected]:/projects/open/compile-test$ find . | grep ".rb$" | xargs ruby -c
./invalid.rb:2: expecting $end: ./invalid.rb:2:3
:
system "find . | grep ".rb$" | xargs ruby -c"
Kaynaklar
http://rubini.us/doc/en/bytecode-compiler/parser/
görünüyor. Sizin için ilginç olabilir: https://github.com/cypher/git-ruby-syntax-check/blob/master/pre-commit –
Çalışma zamanında sözdizimini kontrol edin? –
Bu satırı nereye koydunuz? – Stefan