Project

General

Profile

Actions

Task #4128

closed

Вычисление константных выражений

Added by Alexander Kamkin over 11 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Normal
Target version:
Start date:
04/19/2013
Due date:
% Done:

0%

Estimated time:
Detected in build:
svn
Published in build:

Description

Реализовать вычислитель константных выражений:

  1. Подстановка значений параметров.
  2. Вычисление константных выражений (подвыражений).
  3. Замена константных выражений на константы.
  4. Простейшие трансформации выражений (replication -> concatenation).
Actions #1

Updated by Alexander Kamkin over 10 years ago

  • Target version set to 0.1
Actions #2

Updated by Alexander Kamkin over 10 years ago

В Fortress эта возможность появилась - нужно использовать.

Actions #3

Updated by Alexander Kamkin over 10 years ago

Подставлять параметры нельзя, они могут быть изменены при инстанциации. Можно подставлять localparam (это нужно проверить).

Константные выражения можно разделить на два типа:
  1. чистое константное выражение;
  2. выражение, зависящее от параметра.

Выполняется схлопывание константных выражений. После этого константные выражения становятся константами.

  1. expression.isConstant() - проверка, является ли выражение константным.
  2. expression.evaluate() - получение значения выражения (null, если выражение не является константным).
  3. expression.evaluateInteger() - результат типа int (-1, если выражение не является константным).
  4. expression.evaluate(parameters) - получение значения выражения для заданных значений параметров (null, если не все параметры заданы).
  5. expression.evaluateInteger(parameters) - результат типа int (-1, если выражение не является константным).
Actions #4

Updated by Alexander Kamkin over 10 years ago

  • Status changed from New to Open
Actions #5

Updated by Alexander Kamkin almost 10 years ago

Вместо int использовать BigInteger.

Actions #6

Updated by Alexander Kamkin over 6 years ago

  • Status changed from Open to Resolved
Actions #7

Updated by Alexander Kamkin over 6 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF