^[ ]*((@[A-Za-z_][A-Za-z0-9_]*(\([^()]*\))?[ ]+)*([a-z]+[ ]+)*(actor|class|deinit|enum|extension|func|init|protocol|struct|subscript)[ !(