Количество управляющих структур

Я хочу подсчитать используемые управляющие структуры (IF - statmens, switch case,..) в простом классе Java и просто сохранить сумму в переменной.

У вас есть идеи, как я могу это сделать?


person Ricky77719    schedule 19.05.2015    source источник


Ответы (2)


Если я правильно понял ваш вопрос, речь идет о чтении шаблонов из текстового файла.

Если вы просто хотите иметь программу для проверки другого фрагмента кода, вы можете прочитать .java так же, как прочитать текстовый файл.

Когда вы встречаете такие слова, как if или switch, добавляйте единицу к вашей переменной.

Конечно, вы хотели бы убедиться, что вы не читаете закомментированные строки (т.е. игнорируете строки после //, а не внутри /* */)


Как это сделать?

Вы можете читать строки кода как String, использовать методы String, такие как contains, или даже использовать регулярное выражение в Java, чтобы проверить, содержит ли эта строка искомое слово.

Вы также можете обратить внимание на такие символы, как ;, чтобы помочь определить конец оператора в коде.

person user3437460    schedule 19.05.2015
comment
Идея состоит в том, чтобы сгенерировать случайный граф со случайным количеством узлов и случайным определением ребер между этими узлами. Эти узлы имеют и количество управляющих структур, которые используются во время выполнения. Я хочу иметь класс Interpreter, который подсчитывает количество используемых управляющих структур (например, операторов If,..) в каждом узле и, следовательно, в графе. Цель состоит в том, что я могу сохранить количество использованных, например. Операторы if, операции switch-case и т. д. для дальнейшей цели. - person Ricky77719; 20.05.2015
comment
Таким образом, ваш график будет сгенерирован другим фрагментом кода Java. После генерации графа расчет может включать x количество условных проверок (в зависимости от количества ребер на графе). Вы заинтересованы в написании кода для подсчета количества этих условных проверок? Это то, что вы говорили? Кстати, что вы подразумеваете под классом интерпретатора? - person user3437460; 20.05.2015
comment
После того, как граф был сгенерирован, программа просматривает структуру графа. Если узел имеет более одного ребра, он выберет ребро с помощью случайной функции. В зависимости от того, сколько ребер имеет узел, он имеет больше или меньше операторов if, которые необходимо проверить. Итак, когда я правильно понял ваш вопрос об условных проверках, тогда да, я хочу написать код, который подсчитывает эти проверки. Класс-интерпретатор просто складывает все эти проверки вместе и проверяет, как долго длится весь процесс. Но этот класс не так важен для этого вопроса ^^ - person Ricky77719; 20.05.2015

Как правило, информация о вашей исходной структуре не будет сохранена в вашем классе среды выполнения. Компилятор может изменить его, оптимизировать, добавить к нему и т.д. и т.п.

Если вы действительно имеете в виду лексический анализ исходного файла, а не класса, есть несколько доступных пакетов, которые помогут вам сделать это, но вы должны передать в них исходный код, и результаты не будут (вплоть до нотации O()). ) отражают значения этих счетчиков во время выполнения.

person BadZen    schedule 19.05.2015