2019-08-09 23:45:49 +00:00
|
|
|
package com.bytezone.diskbrowser.applefile;
|
|
|
|
|
|
|
|
import com.bytezone.diskbrowser.gui.BasicPreferences;
|
|
|
|
|
2020-09-13 00:22:49 +00:00
|
|
|
// -----------------------------------------------------------------------------------//
|
2019-08-09 23:45:49 +00:00
|
|
|
public abstract class BasicProgram extends AbstractFile
|
2020-09-13 00:22:49 +00:00
|
|
|
// -----------------------------------------------------------------------------------//
|
2019-08-09 23:45:49 +00:00
|
|
|
{
|
|
|
|
static final byte ASCII_QUOTE = 0x22;
|
2020-12-26 08:32:40 +00:00
|
|
|
static final byte ASCII_DOLLAR = 0x24;
|
|
|
|
static final byte ASCII_PERCENT = 0x25;
|
|
|
|
static final byte ASCII_LEFT_BRACKET = 0x28;
|
2019-08-09 23:45:49 +00:00
|
|
|
static final byte ASCII_COLON = 0x3A;
|
|
|
|
static final byte ASCII_SEMI_COLON = 0x3B;
|
|
|
|
static final byte ASCII_CARET = 0x5E;
|
|
|
|
|
2019-09-04 20:44:43 +00:00
|
|
|
static BasicPreferences basicPreferences; // set by MenuHandler
|
2019-08-09 23:45:49 +00:00
|
|
|
|
2020-09-13 00:22:49 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2019-08-09 23:45:49 +00:00
|
|
|
public static void setBasicPreferences (BasicPreferences basicPreferences)
|
2020-09-13 00:22:49 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2019-08-09 23:45:49 +00:00
|
|
|
{
|
2019-09-04 20:44:43 +00:00
|
|
|
BasicProgram.basicPreferences = basicPreferences;
|
2019-08-09 23:45:49 +00:00
|
|
|
}
|
|
|
|
|
2020-09-13 00:22:49 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2019-08-09 23:45:49 +00:00
|
|
|
public BasicProgram (String name, byte[] buffer)
|
2020-09-13 00:22:49 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2019-08-09 23:45:49 +00:00
|
|
|
{
|
|
|
|
super (name, buffer);
|
|
|
|
}
|
|
|
|
|
2020-09-13 00:22:49 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2019-09-04 20:44:43 +00:00
|
|
|
boolean isHighBitSet (byte value)
|
2020-09-13 00:22:49 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2019-08-09 23:45:49 +00:00
|
|
|
{
|
|
|
|
return (value & 0x80) != 0;
|
|
|
|
}
|
|
|
|
|
2020-09-13 00:22:49 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2019-08-09 23:45:49 +00:00
|
|
|
boolean isControlCharacter (byte value)
|
2020-09-13 00:22:49 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2019-08-09 23:45:49 +00:00
|
|
|
{
|
2019-09-04 20:44:43 +00:00
|
|
|
int val = value & 0xFF;
|
|
|
|
return val > 0 && val < 32;
|
2019-08-09 23:45:49 +00:00
|
|
|
}
|
|
|
|
|
2020-09-13 00:22:49 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2019-08-09 23:45:49 +00:00
|
|
|
boolean isDigit (byte value)
|
2020-09-13 00:22:49 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2019-08-09 23:45:49 +00:00
|
|
|
{
|
2020-12-26 08:32:40 +00:00
|
|
|
return value >= 0x30 && value <= 0x39;
|
|
|
|
}
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
boolean isLetter (byte value)
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
{
|
|
|
|
return value >= 0x41 && value <= 0x5A;
|
|
|
|
}
|
|
|
|
|
2020-12-29 04:39:29 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2020-12-26 08:32:40 +00:00
|
|
|
boolean isPossibleVariable (byte value)
|
2020-12-29 04:39:29 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2020-12-26 08:32:40 +00:00
|
|
|
{
|
|
|
|
return isDigit (value) || isLetter (value) || value == ASCII_DOLLAR
|
|
|
|
|| value == ASCII_PERCENT;
|
2019-08-09 23:45:49 +00:00
|
|
|
}
|
|
|
|
}
|