def self.keywords
@keywords ||= Set.new %w(
abstract allocatable allocate assign assignment associate asynchronous
backspace bind block blockdata call case class close codimension
common concurrent contains contiguous continue critical cycle data
deallocate deferred dimension do elemental else elseif elsewhere end
endassociate endblock endblockdata enddo endenum endfile endforall
endfunction endif endinterface endmodule endprogram endselect
endsubmodule endsubroutine endtype endwhere endwhile entry enum
enumerator equivalence exit extends external final flush forall format
function generic goto if implicit import in include inout inquire
intent interface intrinsic is lock module namelist non_overridable
none nopass nullify only open operator optional out parameter pass
pause pointer print private procedure program protected public pure
read recursive result return rewind save select selectcase sequence
stop submodule subroutine target then type unlock use value volatile
wait where while write
)
end