Project

General

Profile

Task #4128

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

Added by Alexander Kamkin almost 7 years ago. Updated almost 2 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).

History

#1

Updated by Alexander Kamkin over 5 years ago

  • Target version set to 0.1
#2

Updated by Alexander Kamkin over 5 years ago

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

#3

Updated by Alexander Kamkin over 5 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, если выражение не является константным).
#4

Updated by Alexander Kamkin over 5 years ago

  • Status changed from New to Open
#5

Updated by Alexander Kamkin about 5 years ago

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

#6

Updated by Alexander Kamkin almost 2 years ago

  • Status changed from Open to Resolved
#7

Updated by Alexander Kamkin almost 2 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF