mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-19 20:39:01 +00:00
82 lines
1.6 KiB
C#
82 lines
1.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace Cosmos.VS.Windows {
|
|
public abstract class AsmLine {
|
|
}
|
|
|
|
public class AsmCode : AsmLine {
|
|
protected string mText = "";
|
|
public string Text {
|
|
get { return mText; }
|
|
set {
|
|
mText = value;
|
|
mIsDebugCode = mText.Trim().ToUpper().EndsWith("INT3");
|
|
}
|
|
}
|
|
|
|
public override string ToString() {
|
|
return mText;
|
|
}
|
|
|
|
protected AsmLabel mAsmLabel;
|
|
public AsmLabel AsmLabel {
|
|
get { return mAsmLabel; }
|
|
set { mAsmLabel = value; }
|
|
}
|
|
|
|
protected bool mIsDebugCode;
|
|
public bool IsDebugCode {
|
|
get { return mIsDebugCode; }
|
|
}
|
|
|
|
public bool LabelMatches(string aLabel) {
|
|
return (AsmLabel != null && AsmLabel.Label == aLabel);
|
|
}
|
|
|
|
public AsmCode(string aText) {
|
|
// Use prop setter as it has checks
|
|
Text = aText;
|
|
}
|
|
}
|
|
|
|
public class AsmComment : AsmLine {
|
|
protected string mComment;
|
|
|
|
public override string ToString() {
|
|
return "; " + mComment;
|
|
}
|
|
|
|
public AsmComment(string aComment) {
|
|
mComment = aComment;
|
|
}
|
|
}
|
|
|
|
public class AsmLabel : AsmLine {
|
|
protected string mLabel;
|
|
public string Label {
|
|
get { return mLabel; }
|
|
}
|
|
|
|
protected string mComment = "";
|
|
public string Comment {
|
|
get { return mComment; }
|
|
set { mComment = value; }
|
|
}
|
|
|
|
public override string ToString() {
|
|
string xResult = mLabel + ":";
|
|
if (mLabel.Length > 0) {
|
|
xResult = xResult + " ;" + mComment;
|
|
}
|
|
return xResult;
|
|
}
|
|
|
|
public AsmLabel(string aLabel) {
|
|
mLabel = aLabel;
|
|
}
|
|
}
|
|
|
|
}
|