GithubHelp home page GithubHelp logo

Comments (1)

uroboro avatar uroboro commented on June 15, 2024

Hopefully it's as easy as fixing the regex filtering for %properties here https://github.com/theos/theos/blob/master/bin/logos.pl#L566: /\G%property\s*(?:\((\s*\w+\s*(?:,\s*(?:\w|\=|:)+\s*)*)\))?\s*((?:\w+\s+\**)+)(\w+)\s*;/gc, ((?:\w+\s+\**)+)(\w+) being the main part to change.
It might also be beneficial to support more than just \w+ named properties.

This might be a suitable replacement for that part ([a-zA-Z_$][\w$]*(?:\s*[a-zA-Z_$][\w$]*)*(?:\s*\*+)?)\s*(\b[a-zA-Z_$][\w$]*+) such that the resulting regex would be /\G%property\s*(?:\((\s*\w+\s*(?:,\s*(?:\w|\=|:)+\s*)*)\))?\s*([a-zA-Z_$][\w$]*(?:\s*[a-zA-Z_$][\w$]*)*(?:\s*\*+)*)\s*(\b[a-zA-Z_$][\w$]*+)\s*;/gc. It's awkwardly longer because \w matches [a-zA-Z0-9_] but you can't start symbols with a number so I used [a-zA-Z_$] as first character and [\w$] for the following ($ is a valid character in symbols).

These should match:

%property (retain, getter=string2) NSString *string;
%property NSString *string;
%property NSNumber* number;
%property NSSet * set2;
%property BOOL bool;
%property struct dirent _dir;
%property char **list;
%property char2 **list2;
%property char_3 **list_3;
%property char$4 **list$4;
%property char5$ * *list5$;

While these shouldn't match:

%property 2 broken;
%property 2NSString* string;
%property NSNumber* 2number;
%property 2NSSet* 2set;

To compare, current version vs this version

from logos.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.